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: