Cerrar
InicioAzureMicrosoft Teams, conceptos y tecnología (Parte XX)

Microsoft Teams, conceptos y tecnología (Parte XX)

Poco a poco Microsoft Teams se va incorporando como herramienta de Comunicaciones Unificadas en las compañías, por lo que, para los administradores de IT nos empieza a ser necesario tratar de automatizar los despliegues del cliente Teams a los usuarios. Voy a mostraros algunos escenarios muy comunes que se os pueden presentar:

      • Usuarios locales: usuarios que están conectados en la red local y tienen acceso “directo” a los servidores de la compañía
      • Usuarios remotos: conectados vía VPN, DirectAccess o equipos inscritos en  Azure AD y manejados vía Intune

Prefiero diferenciar ambos escenarios, básicamente porque si el usuario está en la red local el origen del instalador estará en algún servidor de ficheros local, por lo que ahí el ancho de banda no será problema. Pero si el usuario está fuera de la red, aunque esté conectado por VPN o DirectAccess, si le damos como origen del instalado en un servidor de la red local,  estamos consumiendo recursos de red de forma ineficiente. Pensad que tenemos 100 usuarios itinerantes, los cuales, en su proceso de inicio de sesión lanzamos un Script o GPO que tenga como origen del instalador en la red local … estaremos consumiendo de forma “brutal” el ancho de banda de la compañía en un proceso 100% evitable.

Aquí os muestro la infografía sobre la cual se basa este artículo, tendremos usuarios conectados directamente en la red local donde tenemos algunos de los servidores de la empresa y otros que son usuarios conectados vía VPN o simplemente inician sesión en sus equipos registrados en Azure AD.

Para realizar la instalación de Teams necesitaremos realizar diferentes configuraciones en función de la ubicación del usuario, a continuación os las detallo:

  • Usuarios locales:
    • Opción 1: instalación del cliente de Teams (.msi) vía GPO y la directiva de instalación de aplicaciones
    • Opción 2: instalación del cliente Teams (.exe) vía GPO utilizando un script de PowerShell en el inicio de sesión del usuario
  • Usuarios remotos:
    • Opción 1: instalación del cliente Teams (.exe) vía GPO utilizando un script de PowerShell en el inicio de sesión del usuario
    • Opción 2: instalación del cliente Teams (.exe) vía Intune utilizando un script de PowerShell

La primera configuración es muy sencilla, simplemente configuramos una GPO que realice la instalación del paquete MSI que tenemos compartido para los usuarios en algún servidor de la red. Editamos la GPO y en la sección de configuración de Usuario – Policies – Software Settings y ahora pulsamos con el botón secundario del ratón encima de Software Installation, buscamos la carpeta compartida donde tenemos el instalador .MSI (x64: https://aka.ms/teams64bitmsi y x86: https://aka.ms/teams32bitmsi) y lo configuramos como aplicación Asignada. De esta forma, en el inicio de sesión del usuario se les instala automáticamente:

Nota: En función de vuestra configuración de seguridad, en los .msi y .exe que tengáis en la red debéis desbloquear los instaladores de Teams sino, al usuario no se le instalará Teams porque le pedirá elevación de privilegios y os volverá locos el porque no se instala.

Con esta configuración, una vez que el usuario ha iniciado sesión en el equipo en cuestión de menos de un minuto tendrá el icono de Teams en el escritorio y de forma predeterminada estará preparado para que siempre se inicie el cliente de Teams en cada inicio de sesión. La instalación de un .msi se descomprime en %ProgramFiles% o ProgramFiles(x86) (según el sistema operativo):

Luego,  la instalación para cada usuario se realiza en %userprofile%\AppData\Local\Microsoft\Teams  (para los próximos usuarios que inicien sesión en el equipo, utilizarán como base de instalación la ruta de  %ProgramFiles% o ProgramFiles(x86)):

Y como os comentaba, en cuestión de menos de un minuto el usuario tendrá el icono de Teams en su escritorio y podrá iniciar sesión si tiene su licencia asignada (¿Cómo se puede obtener acceso a Teams de Microsoft?)

Este es el proceso “más sencillo”, ahora bien, si queremos hacerlo vía PowerShell también podemos hacerlo utilizando también una GPO. El proceso es también muy similar, en vez de el .msi utilizaré el .exe, crearemos una GPO y utilizaremos un script de PowerShell para lanzar la instalación de Teams. He utilizado como referencia el script de Paul Cunningham (Paul is a Microsoft MVP for Office Apps and Services and a Pluralsight author. He works as a consultant, writer, and trainer specializing in Office 365 and Exchange Server), el cual tenéis que descargaros desde aquí: Install Microsoft Teams Desktop Client. El es el autor del script, yo lo he adaptado un poco pero para darle una pequeña funcionalidad que ahora os comento, pero insisto, el script es de  Paul Cunningham y se agradece que gente como él nos lo ponga como disponible para que lo podamos utilizar. Yo he utilizado su base de script para realizar la instalación, comprobar si el cliente Teams está o no instalado, etc… esa funcionalidad ni la he tocado, de hecho no he tocado nada de su script, únicamente he añadido que para cada salida del script envíe un e-mail para conocer a que usuario se le ha instalado el cliente Teams o quien ha tenido algún problema con la instalación. Aquí os dejo el script que he utilizado:

Este script lo he guardado y configurado en la sección de User Configuration – Policies – Windows Settings – Scrtips (Logon/Logoff) y lo añado en la sección de Scrtips de Logon. La sintaxis de ejecución es tal cual la tiene en el script original: .\Install-MicrosoftTeams.ps1 -Source \\servidor\CarpetaCompartida\EjecutableTeams. En mi caso, tengo una carpeta compartida con el ejecutable de Teams (Teams_windows_x64.exe) y al iniciarse el proceso de logon del usuario se ejecutará dicho script y se realizará la instalación del cliente de Teams.

Nota: En función de vuestra configuración de seguridad, en los .msi y .exe que tengáis en la red debéis desbloquear los instaladores de Teams sino, al usuario no se le instalará Teams porque le pedirá elevación de privilegios y os volverá locos el porque no se instala.

Otra cosa importante que tenéis que hacer antes de que esta configuración os funcione, es configurar otra GPO con la siguiente configuración a nivel de equipo para que la ejecución el script se realice antes del inicio de sesión del usuario y el script se ejecute sin problema:

Una vez que se ha aplicado esta configuración, en el próximo inicio de sesión de los usuarios con la directiva de instalación de Teams vía logon script, se le instalará sin problema. Recordad, que el ejecutable debe estar compartido y que los usuarios tengan acceso al mismo, sino .. claramente no se podrá lanzar el proceso de instalación. Como os había comentado, yo había añadido dos secciones sencillas al script de Paul en función de los registros de salida de su script:

  • Write-Host -ForegroundColor Green “Microsoft Teams setup started without error”: yo envío un correo al equipo de IT (tenéis que cambiar las opciones de envío de correo en base a vuestras propias configuraciones) indicando que se ha instalado el cliente Teams sin problema:

  • Write-Warning “Installer exit code $($process.ExitCode): yo envío un correo al equipo de IT (tenéis que cambiar las opciones de envío de correo en base a vuestras propias configuraciones) indicando que se ha instalado el cliente Teams con errores

Con esto, tendríamos el proceso listo para instalar vía GPO (Instalación de Software o Script PowerShell) el cliente Teams a los usuarios. Además, si queremos  hacerlo de forma progresiva a diferentes usuarios únicamente tendríamos que filtrar la aplicación de la GPO por un grupo de seguridad que creemos para tal final. Aquí os dejo el script por si queréis utilizarlo: Install-MicrosoftTeams-RedLocal.zip

Los usuarios que se conectan desde la red local (o redes rápidas) hacia los servidores donde tenemos el cliente Teams lo tenemos cubierto, ahora toca empezar con los usuarios remotos o que tienen poca presencia en las oficinas de la compañía y utilizan redes lentas para conectarse a los servicios de la empresa. En este caso, yo utilizará la misma base del Script de Paul, pero ahora si le he añadido unas líneas de código para descargarme el cliente de Teams desde Internet, de esta forma, los usuarios utilizarán sus propias conexiones de Internet y no tendrá impacto en la red de la empresa. Aquí os dejo la parte inicial del script, que será lo único que cambie con respecto al script anterior. Marco una sección en amarillo, porque será lo que cambiará (algo tenía que tocarle) en el script de Paul, básicamente es donde estará el cliente de Teams que he descargado:

Como un script de inicio de sesión es posible vía GPO, con sus dificultades para los usuarios remotos sino están conectados a la VPN antes de iniciar sesión, porque sino se ponen en contacto con el dominio antes de iniciar sesión no se le aplicará la GPO con nuestro script. Si tienen DirectAccess no debería tener problema, porque el usuario no se tiene que preocupar de lanzar una conexión secundario, únicamente que su equipo ya tenga conexión de red y poco más. Aun así, siempre tendremos ciertos problemas (creo que son obvios), por lo que, si disponemos de Intune, vamos a configurar el script que hemos creado para que se ejecute en los equipos remotos. Aquí os dejo el script completo por si queréis utilizarlo: Install-MicrosoftTeamsInternet.zip

Lo primero, nos vamos a Azure y accedemos la configuración de Microsoft Intune, luego a Configuración del dispositivo – Scripts de PowerShell y pulsamos en Agregar

Buscamos el script para subirlo a Intune

En este caso cambiamos la configuración del script en su ejecución, debemos seleccionar que se ejecute el script con las credenciales de inicio de sesión del usuario:

Ahora debemos asignar el script a un grupo de seguridad de Azure, en el cual tengamos los usuarios a los que queremos que se les instale Teams:

Buscamos el grupo en cuestión y lo seleccionamos

Ahora, únicamente quedaría que se fuese aplicando a los usuarios en sus equipos. Para forzar su aplicación, desde el Portal de Empresa forzamos la sincronización

Esperamos unos segundo y verificamos que se ha sincronizado correctamente con Intune:

Ahora, yo para verificar que se está ejecutando el script voy a utilizar Process Monitor (herramienta indispensable para todos los IT Pro) y filtro por dos procesos: PowerShell.exe y Teams_Windows_x64.exe para no tener un debug enorme y no enterarnos de nada:

Y vemos como se está descargando el fichero de instalación de Teams: Teams_Windows_x64.exe

Si me voy a la carpeta donde le he indicado al script que debe utilizar como directorio temporal de descarga, veo el fichero que está en proceso de descarga: $FolderTemp = “$env:userprofile”

Curiosidad: como se está descargando el instalador de Internet, si vais al Monitor de recursos y filtráis por PowerShell.exe veréis que está utilizando la conexión a Internet para hacer una descarga (se supone que es el cliente de Teams)

En cuestión de unos minutos, se instalará cliente de Teams y se borrará el cliente Teams que se había descargado en $FolderTemp = “$env:userprofile”

Y como en el script teníamos que nos avise vía e-mail una vez haya finalizado el proceso de instalación (con éxito o no)  

Por último y por verificar, si nos vamos a Intune veremos que el proceso se ha completado correctamente (la ejecución del script, si luego el script no  hace lo que tiene que hacer no lo veremos aquí):

Pues listo, ya tenemos el cliente Teams desplegado en todos los equipos y con una utilización de recursos óptima.

Ahora. .. como siempre os toca probarlo a vosotros!!

Microsoft Teams, con
Autenticación en lo
NO HAY COMENTARIOS

DEJA UN COMENTARIO

Este sitio web utiliza cookies. Si continúas navegando, consideramos que aceptas su uso. Puedes obtener más información en nuestra política de cookies. ACEPTAR

Aviso de cookies
Share This