How TO: Como implementar fundos corporativos no novo Teams

Publicado a 2/29/2024 por SuperUser Account em How-to
image

No How To deste mês iremos demonstrar uma alternativa ao Teams Premium para a disponibilização de fundos corporativos a toda a organização.

Primeiro, gostaríamos de avisar que, embora este workaround funcione, não é uma solução oficialmente suportada pela Microsoft e existe a possibilidade que deixe de funcionar com algum update do Teams.

Para que o Teams reconheça as imagens de forma automática, é preciso cumprir dois requisitos:

1) As imagens precisam de ter um nome específico e é necessário existirem sempre duas (uma que será o fundo propriamente dito e outra que servirá como thumbnail).
2) As imagens precisarão de ser colocadas numa pasta especifica do AppData de cada utilizador.

Começando com o ponto 1), as imagens necessitam de ter como nome um GUID. Um exemplo de uma imagem que seria reconhecida pelo Teams seria:

Notem que na imagem acima temos dois ficheiros e isso leva-nos ao segundo requisito, a existência do fundo propriamente dito e do respetivo thumbnail (na imagem acima é o ficheiro com a terminação _thumb).

Para que consigamos facilmente atribuir um GUID à imagem e gerar o respetivo thumbnail, podemos fazer recurso ao seguinte script de Powershell:

Add-Type -AssemblyName System.Drawing
Add-Type -AssemblyName System.Drawing

function dummyCallback { return $false }

$sourceFolder = "C:\temp"
$destinationFolder = "C:\temp"

Get-ChildItem -Path $sourceFolder -File | ForEach-Object {

    #Criação imagem com GUID como nome
    $guid = [guid]::NewGuid().ToString()
    $originalImage = [System.Drawing.Image]::FromFile($_.FullName)
    $originalImage.Save("$destinationFolder\$guid.png",

[System.Drawing.Imaging.ImageFormat]::Png)


    #Criação thumbnail
    $thumbWidth = 278
    $thumbHeight = 159
    $thumbnailImage = $originalImage.GetThumbnailImage($thumbWidth, $thumbHeight, [System.Drawing.Image+GetThumbnailImageAbort]$dummyCallback, [System.IntPtr]::Zero)
    $thumbnailImage.Save("$destinationFolder\$guid`_thumb.png",

[System.Drawing.Imaging.ImageFormat]::Png)


    $originalImage.Dispose()
    $thumbnailImage.Dispose()

O resultado será a imagem original e as duas novas geradas pelo script. Poderão incluir mais do que uma imagem e todas serão processadas.

Avançando para o ponto 2), com os ficheiros gerados, precisamos de os colocar na seguinte pasta:

%LOCALAPPDATA%\Packages\MSTeams_8wekyb3d8bbwe\LocalCache\Microsoft\MSTeams\Backgrounds\Uploads

A nossa sugestão para uma cópia dos ficheiros para todas as workstations passa pelo uso de uma GPO para o efeito. Em primeiro lugar, precisamos de um share onde colocar as imagens. Este share precisará de ter permissões de leitura aos utilizadores que irão receber as imagens, dado que a GPO executará no contexto do utilizador final.

A configuração a efetuar será: User Configuration -> Preferences -> Windows Settings ->Files.

No caminho de destino, podemos fazer uso da variável %LogonUser% para que consigamos referenciar o Appdata de cada utilizador automaticamente.

Nota: No menu de contexto de configuração de um novo File, podemos clicar em F3 para ver uma lista de variáveis que podemos usar nos caminhos!

No nosso caso, o caminho de destino ficaria: 

C:\Users\%LogonUser%\AppData\Local\Packages\MSTeams_8wekyb3d8bbwe\LocalCache\Microsoft\MSTeams\Backgrounds\Uploads

Por fim, não esquecer de selecionar a seguinte opção:


Comments