Microsoft Teams PowerShell: comandos, conexión y ejemplos

Microsoft Teams PowerShell administra lo que se ve aquí: un portátil con el chat de Microsoft Teams abierto en tema oscuro, sobre un escritorio con un ratón y un bolígrafo

Microsoft Teams PowerShell es la forma de administrar Teams con comandos, en lugar de hacerlo con clics en el centro de administración. Con una línea se saca la lista de todos los equipos con sus propietarios, se asigna una directiva de reuniones a cien personas o se archiva un equipo que ya cumplió su función. Esta guía explica qué es, cómo instalar el módulo, cómo conectarse a Microsoft Teams y qué comandos usa a diario un administrador. Además, incluye escenarios completos, una lista de errores con su solución y la lógica de las directivas, que es donde más se equivoca la gente.

Está escrita para dos lectores. Si usted no es de sistemas, las primeras secciones le explican qué hace esta herramienta y por qué su equipo de TI la usa. En cambio, si administra Microsoft 365, encontrará los comandos listos para copiar, con sus límites y sus trampas.

No copiamos el manual sin más. Comprobamos cada comando y cada parámetro contra el módulo vigente, la versión 8.0.0, y contra la referencia oficial de Microsoft. Además, medimos el módulo en Windows PowerShell 5.1 y en PowerShell 7, y ahí apareció un detalle que la documentación no cuenta.

Qué es Microsoft Teams PowerShell y para qué sirve

Microsoft Teams es la aplicación de chat, reuniones y trabajo en equipo de Microsoft 365. Cada equipo de Teams es, por debajo, un grupo de Microsoft 365, con su sitio de SharePoint para los archivos y su buzón para el calendario.

Microsoft Teams PowerShell es el conjunto de comandos, llamados cmdlets, que administran ese servicio desde la consola. Microsoft los distribuye en un módulo gratuito, MicrosoftTeams. En la práctica, mucha gente lo llama Teams PowerShell a secas.

Para entenderlo sin tecnicismos, piense en un edificio de oficinas con muchas salas de reunión. El centro de administración es la recepción: cómoda, pero atiende de a una sala o de a una persona. En cambio, Microsoft Teams PowerShell es el tablero de control del edificio. Desde él se revisan, se ajustan o se cierran todas las salas a la vez.

Sirve, sobre todo, para cinco trabajos:

  • Hacer inventario: qué equipos existen, quién es propietario de cada uno y cuáles quedaron sin dueño.
  • Cambiar muchos equipos o usuarios a la vez, con la misma orden y sin olvidar ninguno.
  • Asignar directivas, como las de reuniones o mensajería, a grupos enteros o a miles de personas.
  • Revisar con quién puede comunicarse su organización: dominios externos e invitados.
  • Automatizar tareas que se repiten, como el informe mensual de equipos sin propietario.

Por qué conviene frente al centro de administración de Teams

El centro de administración de Teams sigue siendo útil para el caso suelto. Sin embargo, trabaja de a un objeto, no deja registro reutilizable de lo que se hizo y algunas opciones solo existen en la consola. Por eso, los administradores combinan las dos herramientas.

TareaCentro de administración de TeamsMicrosoft Teams PowerShell
Listar los equipos con sus propietariosUna vista por páginas, sin propietarios juntosUn informe en un archivo CSV
Encontrar los equipos sin propietarioRevisando equipo por equipoUn filtro sobre todos los equipos
Asignar una directiva a miles de personasPor lotes desde la lista de usuariosUn lote de hasta 5.000 personas por orden
Saber de dónde viene la directiva de un usuarioNo lo muestraGet-CsUserPolicyAssignment dice si es directa, de grupo o global
Bloquear también los subdominios de un dominio externoNo-BlockAllSubdomains
Repetir la misma tarea el mes siguienteVolver a hacer cada clicEjecutar el mismo script

En resumen, el panel sirve para lo puntual. Microsoft Teams PowerShell sirve para lo que se repite, para lo masivo y para lo que hay que poder demostrar después.

Si todavía no conoce los paneles, empiece por nuestra guía del centro de administración de Microsoft 365. Allí se crean los usuarios y se asignan las licencias que luego usa Teams.

Dos familias de comandos en el mismo módulo

El módulo MicrosoftTeams junta dos mundos que conviene distinguir. Los contamos en la versión 8.0.0:

FamiliaEjemplosCuántos hayQué administra
Comandos de equiposGet-Team, Add-TeamUser, New-TeamChannel28 con «Team» en el nombreLos equipos, sus canales y sus miembros
Comandos CsGet-CsOnlineUser, Grant-CsTeamsMeetingPolicy627Directivas, configuración de la organización, usuarios y telefonía
Total del módulo679

El prefijo Cs viene de Skype Empresarial, el antecesor de Teams. El antiguo conector de Skype Empresarial Online se retiró y sus comandos pasaron a este módulo. Por eso, si encuentra un script viejo con New-CsOnlineSession, cámbielo por Connect-MicrosoftTeams, como indica Microsoft.

Una aclaración de alcance: la telefonía de Teams, con números, colas de llamadas y operadores automáticos, tiene sus propios comandos en este módulo. Esta guía no la cubre.

Requisitos de Microsoft Teams PowerShell

Para usar Microsoft Teams PowerShell hacen falta tres cosas: una cuenta con permisos, una versión de PowerShell compatible y el propio módulo. Ninguna exige comprar nada adicional.

Permisos: qué rol pide Microsoft Teams PowerShell

Para administrar todo Teams, la cuenta necesita el rol de administrador de Teams, según la guía de roles de Microsoft. Hay roles más acotados, como los de comunicaciones, que solo cubren reuniones, llamadas y su soporte. El administrador global también puede, pero Microsoft recomienda reservarlo para emergencias y usar el rol con menos privilegios que permita hacer la tarea.

Según Microsoft, el rol de administrador de comunicaciones de Teams, por ejemplo, está pensado para las llamadas y las reuniones, con sus directivas. Si una orden se rechaza, revise primero qué rol tiene la cuenta.

Versión de PowerShell que pide el módulo de Teams

La guía de instalación de Microsoft indica que el módulo funciona en Windows PowerShell 5.1, con .NET Framework 4.7.2 o posterior, y en PowerShell 7.2 o posterior. Lo comprobamos: el manifiesto de la 8.0.0 declara las dos ediciones, y el módulo cargó en las dos consolas con sus 679 comandos.

Si no sabe qué versión de PowerShell tiene, nuestra guía de PowerShell explica cómo verlo y cómo instalar la versión 7.

Instalar el módulo de Microsoft Teams PowerShell

El módulo se instala desde la Galería de PowerShell. Primero, compruebe si ya lo tiene:

Get-Module -Name MicrosoftTeams -ListAvailable | Select-Object Name, Version, ModuleBase

Si no aparece, instálelo solo para su usuario, sin permisos de administrador. Para instalarlo para todo el equipo, cambie CurrentUser por AllUsers y abra la consola como administrador:

Install-Module -Name MicrosoftTeams -Scope CurrentUser

La primera vez, PowerShell puede avisar de que la Galería es un repositorio que no es de confianza. Acepte para continuar. Después, actualícelo con la misma vía con la que lo instaló:

Update-Module -Name MicrosoftTeams

Microsoft solo da soporte a las versiones 4.x y posteriores. Además, publica a menudo: en los doce meses anteriores a esta guía salieron seis versiones estables, de la 7.5.0, en noviembre de 2025, a la 8.0.0, en septiembre de 2026. Cada una añade o cambia parámetros, así que un script escrito con una versión vieja puede fallar con la nueva.

Lo que medimos en Microsoft Teams PowerShell 8.0.0

En el equipo de prueba el módulo no estaba instalado. Por eso descargamos la 8.0.0 de la Galería a una carpeta temporal, sin instalarla, y la cargamos desde allí. Sin conectarnos a ninguna organización, esto es lo que dio:

MedidaResultado
Tamaño80,7 MB en 217 archivos
Comandos679, todos con verbos aprobados por PowerShell
Carga en PowerShell 7.6.73,7 segundos
Avisos al importarNinguno
Mensaje sin conexión, comandos de equiposYou must call the Connect-MicrosoftTeams cmdlet before calling any other cmdlets.
Mensaje sin conexión, comandos CsSession is not established, run Connect-MicrosoftTeams before requesting access token

Los dos mensajes distintos tienen una explicación práctica. Los comandos de equipos y los Cs viven en piezas distintas del módulo. Así que, si un script falla con uno u otro, la causa es la misma: falta Connect-MicrosoftTeams.

Una trampa del módulo de Teams en Windows PowerShell 5.1: las rutas largas

Aquí apareció el hallazgo. Al importar la 8.0.0 en Windows PowerShell 5.1 desde la carpeta temporal, salieron siete errores como este: «No se encontró el elemento», seguido del nombre de un archivo terminado en .format.ps1xml.

El módulo cargó igual, con sus 679 comandos, pero sin esos siete archivos, que definen cómo se muestran en pantalla algunas configuraciones. La causa es la longitud de la ruta. El archivo de nombre más largo del módulo tiene 106 caracteres, y en esa carpeta la ruta completa llegaba a 283. Windows PowerShell 5.1 no abre rutas de 260 caracteres o más si Windows no tiene activadas las rutas largas, y en ese equipo no lo estaban.

Lo comprobamos de dos formas. Cargando la misma copia desde una unidad de ruta corta, los errores desaparecieron. Y en una instalación normal no pasa: en la carpeta Documentos de ese usuario, la ruta más larga mediría 205 caracteres.

Por tanto, el problema solo aparece si el módulo se copia a una carpeta muy profunda, algo habitual al llevarlo a mano a un servidor sin internet. Si lo hace, déjelo en una ruta corta. PowerShell 7 no tuvo el problema.

Cómo conectarse a Microsoft Teams con PowerShell

Para conectarse a Microsoft Teams basta una orden. Se abre la ventana de inicio de sesión de Microsoft, con su contraseña y su segundo factor:

Connect-MicrosoftTeams

Tenga en cuenta estas opciones de la referencia oficial de Connect-MicrosoftTeams:

  • En un servidor sin navegador, use -UseDeviceAuthentication. La consola muestra un código y una dirección para iniciar sesión desde otro equipo.
  • Si administra varias organizaciones, indique cuál con -TenantId.
  • Las nubes especiales, como las del Gobierno de Estados Unidos, se indican con -TeamsEnvironmentName. Para una empresa normal no hace falta.

Al terminar, cierre la conexión:

Disconnect-MicrosoftTeams

Hay otra vía sin instalar nada. Desde el centro de administración de Teams se abre Azure Cloud Shell, una consola en el navegador, y allí se ejecuta Connect-MicrosoftTeams.

Errores al conectarse a Teams con PowerShell

Estos son los mensajes que vimos en el equipo de prueba o que documenta Microsoft, con su causa:

Mensaje o síntomaCausaSolución
You must call the Connect-MicrosoftTeams cmdlet before calling any other cmdlets.No se ha conectado, o la conexión se cerróEjecute Connect-MicrosoftTeams
Session is not established, run Connect-MicrosoftTeams before requesting access tokenLo mismo, en un comando CsEjecute Connect-MicrosoftTeams
«No se encontró el elemento…» con archivos .format.ps1xml al importarEl módulo está en una ruta demasiado larga para Windows PowerShell 5.1Muévalo a una ruta corta o use PowerShell 7
El comando existe en la documentación pero no en su consolaSu versión del módulo es anteriorActualice con Update-Module
Un script viejo usa New-CsOnlineSessionEs del conector de Skype Empresarial, retiradoCámbielo por Connect-MicrosoftTeams
La orden se rechaza por permisosLa cuenta no tiene el rol necesarioPida el rol de administrador de Teams o el que cubra esa tarea

Comandos de Microsoft Teams PowerShell más usados

Con casi 700 comandos, conviene saber cuáles se usan de verdad. Los agrupamos por tarea. Todos exigen haberse conectado antes.

Equipos y miembros

ComandoPara qué sirve
Get-TeamListar equipos, con filtros por nombre, visibilidad o archivado
New-TeamCrear un equipo
Set-TeamCambiar el nombre, la descripción o los permisos de un equipo
Remove-TeamBorrar un equipo y su grupo de Microsoft 365
Set-TeamArchivedStateArchivar o reactivar un equipo
Get-TeamUserListar propietarios, miembros e invitados de un equipo
Add-TeamUserAñadir a alguien como miembro o como propietario
Remove-TeamUserQuitar a alguien de un equipo
Get-AssociatedTeamVer los equipos a los que pertenece una persona

Canales

ComandoPara qué sirve
Get-TeamAllChannelListar todos los canales de un equipo, incluidos los que otros equipos comparten con él
New-TeamChannelCrear un canal estándar, privado o compartido
Add-TeamChannelUserAñadir a alguien a un canal privado o compartido
Get-TeamChannelUserVer quién está en un canal privado o compartido

Directivas, usuarios y organización

ComandoPara qué sirve
Get-CsOnlineUserVer un usuario de Teams y sus directivas
Get-CsTeamsMeetingPolicyVer las directivas de reuniones
Set-CsTeamsMeetingPolicyCambiar una directiva de reuniones
Grant-CsTeamsMeetingPolicyAsignar una directiva de reuniones a un usuario o a un grupo
Get-CsTeamsMessagingPolicyVer las directivas de mensajería
Get-CsUserPolicyAssignmentSaber qué directiva tiene un usuario y de dónde le viene
New-CsBatchPolicyAssignmentOperationAsignar una directiva a hasta 5.000 usuarios en un lote
New-CsGroupPolicyAssignmentAsignar una directiva a un grupo
Get-CsTenantFederationConfigurationVer con qué dominios externos se puede hablar
Set-CsTenantFederationConfigurationPermitir o bloquear dominios externos
Get-CsTeamsClientConfigurationVer ajustes generales, como el acceso de invitados
Get-TeamsAppListar las aplicaciones del catálogo de la organización

Cómo funcionan las directivas de Teams

Las directivas de Teams deciden qué puede hacer cada persona: si graba reuniones, si edita mensajes enviados o quién entra directo a una reunión. Casi todos los problemas con ellas vienen de no conocer cómo se reparten. Según la guía de asignación de directivas de Microsoft, cada usuario recibe una sola directiva de cada tipo, elegida en este orden:

  1. La asignada directamente al usuario. Gana siempre, sin importar sus grupos.
  2. La de un grupo al que pertenece. Si está en varios grupos con directivas del mismo tipo, gana la del grupo con mejor rango: el 1 gana al 2.
  3. La global, llamada Global (Org-wide default), si no tiene ninguna de las anteriores.

Hay dos detalles que explican muchos «no funciona». Primero, la asignación por grupo solo llega a los miembros directos: los integrantes de un grupo anidado dentro de otro no la reciben. Segundo, llega en segundo plano, y en grupos grandes puede tardar.

Por eso, antes de cambiar nada, pregunte a Teams de dónde viene la directiva de esa persona. El escenario de directivas, más abajo, muestra cómo.

Escenarios de Microsoft Teams PowerShell paso a paso

Estos escenarios cubren lo que más se pide en una mesa de servicio. En los ejemplos, contoso es el nombre de la organización: cámbielo por el suyo. Cada bloque supone que ya ejecutó Connect-MicrosoftTeams.

Inventario de equipos con propietarios y miembros

El primer informe que conviene tener es la lista de equipos con sus propietarios y el número de miembros e invitados. Este bloque lo guarda en un CSV que se abre con Excel:

$informe = foreach ($equipo in Get-Team) {
    $usuarios = @(Get-TeamUser -GroupId $equipo.GroupId)
    [pscustomobject]@{
        Equipo       = $equipo.DisplayName
        Visibilidad  = $equipo.Visibility
        Archivado    = $equipo.Archived
        Propietarios = ($usuarios | Where-Object Role -eq 'Owner' | ForEach-Object User) -join '; '
        Miembros     = @($usuarios | Where-Object Role -eq 'Member').Count
        Invitados    = @($usuarios | Where-Object Role -eq 'Guest').Count
    }
}
$informe | Export-Csv -Path "$env:USERPROFILE\Desktop\equipos-teams.csv" -NoTypeInformation -Encoding UTF8

En una organización con muchos equipos tarda, porque consulta los miembros de cada uno. Déjelo correr y no lo repita a mitad de camino.

Encontrar los equipos sin propietario

Un equipo sin propietario no tiene quién apruebe a los miembros nuevos ni quién lo cierre cuando termina. Ocurre cuando el único propietario se va de la empresa. Con el informe anterior en memoria, basta un filtro:

$informe | Where-Object { -not $_.Propietarios } | Select-Object Equipo, Miembros, Archivado

Para cada equipo de la lista, nombre a un responsable con Add-TeamUser y el rol de propietario:

Add-TeamUser -GroupId 00000000-0000-0000-0000-000000000000 -User ana.gomez@contoso.com -Role Owner

El identificador del equipo, el GroupId, sale en el inventario o con Get-Team -DisplayName "Nombre del equipo". Es el mismo identificador del grupo de Microsoft 365. Conviene que cada equipo tenga al menos dos propietarios, para que la salida de uno no lo deje huérfano; Teams admite hasta 100.

Crear un equipo con sus canales

Crear el equipo de un proyecto nuevo con la misma estructura siempre evita olvidos. Este bloque crea un equipo privado, le añade un canal estándar y uno privado, y suma a dos personas:

$equipo = New-Team -DisplayName "Proyecto Sede Norte" -Description "Obra y compras de la sede norte" -Visibility Private
New-TeamChannel -GroupId $equipo.GroupId -DisplayName "Compras"
New-TeamChannel -GroupId $equipo.GroupId -DisplayName "Dirección" -MembershipType Private -Owner ana.gomez@contoso.com
Add-TeamUser -GroupId $equipo.GroupId -User luis.perez@contoso.com
Add-TeamUser -GroupId $equipo.GroupId -User ana.gomez@contoso.com -Role Owner

Los valores de visibilidad son Public, Private y HiddenMembership. Los canales pueden ser Standard, Private o Shared. Para entrar en un canal privado, la persona tiene que ser antes miembro del equipo, y después se le añade con Add-TeamChannelUser.

Un límite que importa al planear: un equipo admite hasta 1.000 canales, y en esa cuenta entran también los canales borrados.

Añadir a una persona a varios equipos

Cuando alguien entra a un área, suele necesitar varios equipos a la vez. Con una lista basta un bucle:

$equipos = "Proyecto Sede Norte", "Compras", "Comité de obra"
foreach ($nombre in $equipos) {
    $equipo = Get-Team -DisplayName $nombre
    Add-TeamUser -GroupId $equipo.GroupId -User nuevo.empleado@contoso.com
}
Get-AssociatedTeam -User nuevo.empleado@contoso.com | Select-Object DisplayName

La última línea comprueba en qué equipos quedó. Un aviso: -DisplayName filtra por nombre, y dos equipos pueden llamarse igual. Si el nombre se repite, use el GroupId.

Archivar un equipo terminado, antes que borrarlo

Cuando un proyecto termina, archivar es casi siempre mejor que borrar. El equipo deja de tener actividad, pero su contenido se puede seguir consultando y se puede reactivar:

Set-TeamArchivedState -GroupId 00000000-0000-0000-0000-000000000000 -Archived $true -SetSpoSiteReadOnlyForMembers $true
Get-Team -Archived $true | Select-Object DisplayName, GroupId

Con -SetSpoSiteReadOnlyForMembers $true, los miembros tampoco pueden cambiar los archivos del sitio de SharePoint del equipo. Para reactivarlo, repita la orden con -Archived $false.

Borrar es distinto. Remove-Team elimina el equipo y su grupo de Microsoft 365, con el chat de los canales y los archivos. Según la guía de Microsoft para archivar o eliminar un equipo, un equipo borrado no se restaura directamente: lo que se restaura es su grupo, durante 30 días, y con él vuelve el equipo. Pasado ese plazo, se pierde. Si quiere ver qué más se puede recuperar en Microsoft 365, y qué no, lo explicamos en la guía de backup de Microsoft 365.

Ver qué directiva tiene un usuario y por qué

Este es el escenario que más tiempo ahorra. Cuando alguien dice «a mí no me deja grabar la reunión», esta orden muestra su directiva efectiva de reuniones y de dónde le viene:

Get-CsUserPolicyAssignment -Identity ana.gomez@contoso.com -PolicyType TeamsMeetingPolicy | Select-Object -ExpandProperty PolicySource

La respuesta dice si la directiva le llega por asignación directa o por un grupo, y con qué rango. Si le llega directa, ningún cambio en sus grupos la afectará. En cambio, si no aparece ninguna, rige la global. Para ver qué permite esa directiva:

Get-CsTeamsMeetingPolicy -Identity Global | Select-Object Identity, AllowCloudRecording, AllowTranscription, AutoAdmittedUsers

Asignar una directiva a un grupo o a muchos usuarios

Para que una directiva llegue a un área entera, asígnela a su grupo, con su rango. Las personas que entren después al grupo la recibirán solas:

Grant-CsTeamsMeetingPolicy -Group comercial@contoso.com -PolicyName "Reuniones con grabación" -Rank 1

Según Microsoft, la asignación por grupo se recomienda para grupos de hasta 50.000 personas. Si en cambio tiene una lista concreta, use un lote. Admite hasta 5.000 personas por orden y se procesa en segundo plano:

$personas = Import-Csv -Path "$env:USERPROFILE\Desktop\personas.csv" | ForEach-Object Correo
$lote = New-CsBatchPolicyAssignmentOperation -PolicyType TeamsMeetingPolicy -PolicyName "Reuniones con grabación" -Identity $personas -OperationName "Grabación para ventas"
Get-CsBatchPolicyAssignmentOperation -OperationId $lote | Select-Object OperationName, OverallStatus, CompletedCount, ErrorCount

El archivo personas.csv debe tener una columna llamada Correo. La última línea muestra cómo va el lote: cuántas personas están hechas y cuántas dieron error. Microsoft aconseja no enviar muchos lotes a la vez y esperar a que terminen.

Recuerde el orden de las directivas. Si una persona tiene una directiva asignada directamente, la de su grupo no le llegará. Para quitarle la directa y que herede la del grupo, asígnele $null:

Grant-CsTeamsMeetingPolicy -Identity ana.gomez@contoso.com -PolicyName $null

Revisar con quién puede hablar su organización

De fábrica, Teams permite chatear y reunirse con personas de cualquier otra organización de Microsoft 365. Microsoft lo llama acceso externo. Muchas empresas no lo saben hasta que lo revisan:

Get-CsTenantFederationConfiguration | Select-Object AllowFederatedUsers, AllowedDomains, BlockedDomains, BlockAllSubdomains, AllowTeamsConsumer
Get-CsTeamsClientConfiguration | Select-Object Identity, AllowGuestUser

La primera línea muestra el acceso externo: si está activo, qué dominios se permiten o bloquean y si se puede hablar con cuentas personales de Teams. La segunda muestra si los invitados pueden usar Teams.

Para bloquear un dominio concreto, Microsoft usa un patrón de dominio. Por defecto, bloquear contoso-externo.com no bloquea sus subdominios; para eso existe -BlockAllSubdomains:

$dominio = New-CsEdgeDomainPattern -Domain "dominio-no-deseado.com"
Set-CsTenantFederationConfiguration -BlockedDomains @{Add = $dominio}
Set-CsTenantFederationConfiguration -BlockAllSubdomains $true

Antes de cerrar el acceso externo, hable con las áreas que trabajan con clientes y proveedores. Cerrarlo de golpe corta conversaciones que la empresa necesita.

Revisar las aplicaciones del catálogo

Teams admite aplicaciones de terceros, y conviene saber cuáles publicó la propia organización. Este bloque lista las del catálogo de la empresa:

Get-TeamsApp -DistributionMethod organization | Select-Object DisplayName, Id, ExternalId

Automatizar Microsoft Teams PowerShell sin una persona delante

Un script programado no puede responder a una ventana de inicio de sesión. Para eso, el módulo admite conectarse con una aplicación registrada en Entra ID y un certificado, sin usuario:

Connect-MicrosoftTeams -CertificateThumbprint "3FAAAA1111AAAAAAAAAAA2222AAAAAAAAAAAAAAA" -ApplicationId 00000000-0000-0000-0000-000000000000 -TenantId 11111111-1111-1111-1111-111111111111

Según Microsoft, el certificado debe estar en el almacén de certificados del usuario que ejecuta el script. Además, la aplicación necesita un rol de Entra ID, como el de administrador de Teams, y el permiso de lectura de roles de Microsoft Graph. Trate esa aplicación como una cuenta de administrador más.

Hay una excepción que sorprende: con este tipo de conexión no funciona New-Team. Microsoft lo indica en su guía de autenticación por aplicación. Para crear equipos, use una conexión con usuario.

En el módulo, -CertificateThumbprint es otro nombre del parámetro -Certificate, que también acepta el objeto del certificado. Así lo vimos en la versión 8.0.0.

Recomendaciones para administrar Teams con PowerShell

Estas recomendaciones resumen lo que vimos en las fuentes de Microsoft y en el equipo de prueba:

  1. Use el rol de administración más acotado que permita hacer la tarea, no el de administrador global.
  2. Mantenga el módulo al día. Salen versiones cada uno o dos meses, y la documentación describe la vigente.
  3. Instálelo con Install-Module en su carpeta normal. Si lo copia a mano, déjelo en una ruta corta.
  4. Antes de cambiar una directiva, mire de dónde le viene al usuario con Get-CsUserPolicyAssignment.
  5. Asigne directivas a grupos con rango, y recuerde que no llegan a los grupos anidados.
  6. Archive antes de borrar. Un equipo borrado solo vuelve durante 30 días, y a través de su grupo.
  7. Revise cada mes los equipos sin propietario y los invitados.
  8. Guarde sus scripts y los CSV que generan. Son la prueba de qué se cambió, cuándo y por qué.

Lo que no probamos

Una guía honesta dice dónde termina su laboratorio:

  • No nos conectamos a ninguna organización real. Medimos el módulo 8.0.0 sin instalarlo y validamos cada comando y cada parámetro contra el módulo y contra la referencia oficial de Microsoft.
  • Por tanto, las salidas de los comandos con conexión no las vimos en pantalla. Los límites que citamos, como los 5.000 usuarios por lote o los 30 días, son los publicados por Microsoft.
  • No probamos la conexión con certificado ni la de Azure Cloud Shell.
  • No probamos el módulo en Linux ni en macOS.

Lo que sí medimos lo hicimos en Windows 11, con Windows PowerShell 5.1 y PowerShell 7.6.7, sin permisos de administrador.

Cuándo conviene delegar la administración de Teams

Microsoft Teams PowerShell resuelve en minutos lo que en el panel lleva días. Sin embargo, Teams no se ordena solo. Alguien tiene que revisar los equipos sin propietario, cerrar los de proyectos terminados y mantener las directivas al día.

En KHARONTE, ese trabajo forma parte de la administración de Microsoft 365 de nuestra línea de gestión de plataformas: usuarios, licencias, equipos y accesos. Cada solicitud entra por nuestra mesa de ayuda TI, queda registrada y se resuelve con su trazabilidad.

Si además quiere delegar el correo, los servidores y el soporte de los puestos de trabajo, todo eso entra en nuestros servicios administrados de TI. Para el correo y los archivos, tenemos también las guías de Exchange Online PowerShell y SharePoint Online PowerShell. Puede ver el alcance completo en la página de servicios de TI para empresas.

Preguntas frecuentes sobre Microsoft Teams PowerShell

¿Qué es Microsoft Teams PowerShell?

Es el conjunto de comandos de PowerShell que administra Teams en Microsoft 365. Se instala con el módulo gratuito MicrosoftTeams y se conecta con Connect-MicrosoftTeams.

¿Cómo me conecto a Microsoft Teams con PowerShell?

Instale el módulo con Install-Module -Name MicrosoftTeams -Scope CurrentUser y ejecute Connect-MicrosoftTeams. Se abrirá la ventana de inicio de sesión de Microsoft.

¿Funciona en Windows PowerShell 5.1 o necesito PowerShell 7?

Funciona en los dos. Microsoft pide Windows PowerShell 5.1 con .NET Framework 4.7.2, o PowerShell 7.2 o posterior.

¿Por qué una directiva asignada a un grupo no le llega a una persona?

Porque tiene otra asignada directamente, que siempre gana, o porque está en un grupo anidado, al que no llegan las asignaciones. Compruébelo con Get-CsUserPolicyAssignment.

¿Se puede recuperar un equipo borrado?

Sí, durante 30 días, restaurando su grupo de Microsoft 365. Después se pierde. Por eso conviene archivar antes de borrar.

¿Necesito una licencia especial?

No. El módulo es gratuito. Lo que necesita es una cuenta con un rol de administración de Teams.

Hablemos de la TI de su empresa

Cuéntenos qué necesita su operación y le enviamos una propuesta por escrito. Cada línea del portafolio se contrata por separado.

Compartir este artículo

Últimas entradas

Escríbanos ahora