Ativar “Mostrar animações no Windows” via GPO/Registro (RDS/FSLogix) para GIFs do Outlook

Precisa que o toggle “Mostrar animações no Windows” permaneça ligado para todos os usuários em Windows Server 2019 + RDS/FSLogix e que os GIFs das assinaturas do Outlook animem por padrão? Este guia mostra a chave certa (UserPreferencesMask) e três formas de aplicar via GPO, script e PowerShell.

Índice

Visão geral do problema

Em ambientes de Área de Trabalho Remota (RDS) com perfis FSLogix, é comum a necessidade de padronizar a experiência visual e garantir que o Outlook exiba GIFs animados na assinatura sem depender da ação manual do usuário. O caminho óbvio costuma ser alterar:

  • HKCU\Control Panel\Desktop\WindowMetrics\MinAnimate (às vezes citado incorretamente como WindowsMetrics), e/ou
  • HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\VisualEffects\VisualFXSetting.

Na prática, esses ajustes não ligam o toggle global “Mostrar animações no Windows”. O comportamento permanece inalterado após logon em muitos cenários de RDS. O que, então, realmente controla o estado desse toggle?

Solução direta e comprovada

A configuração eficaz está no bitmask de efeitos visuais do usuário, armazenado em REG_BINARY:

ItemValor / Observação
ChaveHKEYCURRENTUSER\Control Panel\Desktop\UserPreferencesMask
TipoREG_BINARY
Valor recomendado9E 3E 07 80 (hexadecimal)
AplicaçãoDefinir para cada usuário (HKCU). Requer logoff/logon (ou reinicialização) para surtir efeito.

Observações práticas

  • Os ajustes tentados anteriormente — HKCU\Control Panel\Desktop\WindowMetrics\MinAnimate=1 e HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\VisualEffects\VisualFXSetting=1 — não bastam para ativar o toggle “Mostrar animações no Windows”.
  • Tipo do valor: use REGBINARY. Embora haja relatos isolados de REGSZ funcionar em ambientes específicos, o tipo correto de UserPreferencesMask é binário.
  • Efeito colateral: UserPreferencesMask controla vários efeitos visuais (fade, sombras, Peek etc.). Teste em piloto antes de padronizar no domínio.

Por que “MinAnimate” e “VisualFXSetting” não bastam?

MinAnimate altera a animação de minimizar/maximizar janelas; VisualFXSetting altera um perfil geral de efeitos (melhor desempenho vs. aparência), mas o estado efetivo do toggle “Mostrar animações no Windows” — visível em Configurações > Acessibilidade > Efeitos visuais — é consolidado em UserPreferencesMask. Se a máscara binária entrar em conflito com chaves “semânticas”, a máscara prevalece.

Como implementar em escala

Abaixo, três estratégias práticas e seguras para ambientes corporativos.

Opção A — Group Policy Preferences (GPP) – Usuário

  1. Abra o Group Policy Management e edite um GPO de User Configuration que se aplique aos usuários RDS.
  2. Navegue até User Configuration ▸ Preferences ▸ Windows Settings ▸ Registry.
  3. Adicione um novo item Registry com:
    • Action: Update (ou Replace para forçar a cada logon)
    • Hive: HKEYCURRENTUSER
    • Key Path: Control Panel\Desktop
    • Value name: UserPreferencesMask
    • Value type: REG_BINARY
    • Value data: 9E 3E 07 80
  4. Se quiser garantir padronização, use Replace e aplique o GPO ao grupo de usuários do RDS. Em ambientes com FSLogix, a preferência seguirá o perfil (container).
  5. Peça logoff/logon (ou reinício) após a primeira aplicação.

Opção B — Script de logon (reg.exe)

Perfeito para quem já tem uma cadeia de scripts de logon em GPO:

reg add "HKCU\Control Panel\Desktop" ^
  /v UserPreferencesMask /t REG_BINARY /d 9E,3E,07,80 /f

Opção C — PowerShell (logon script)

Para quem prefere PowerShell e quer garantir idempotência:

$path = 'HKCU:\Control Panel\Desktop'
New-Item -Path $path -Force | Out-Null
if (-not (Get-ItemProperty -Path $path -Name UserPreferencesMask -ErrorAction SilentlyContinue)) {
  New-ItemProperty -Path $path -Name UserPreferencesMask -PropertyType Binary -Value ([byte[]](0x9E,0x3E,0x07,0x80)) | Out-Null
} else {
  Set-ItemProperty -Path $path -Name UserPreferencesMask -Value ([byte[]](0x9E,0x3E,0x07,0x80))
}

Após aplicar: oriente os usuários a fazer logoff/logon para que a alteração entre em vigor.

Validação: como confirmar que deu certo

  1. No host RDS, com um usuário-alvo, faça logoff e logon.
  2. Abra Configurações > Acessibilidade > Efeitos visuais (Windows 11) ou Configurações > Facilidade de Acesso > Exibir (Windows 10/Server 2019).
  3. Verifique se o toggle “Mostrar animações no Windows” está Ativado.
  4. No Outlook, crie uma nova mensagem e confira se a assinatura com GIF anima automaticamente.

Opcionalmente, confirme o valor no Registro:

Get-ItemProperty -Path 'HKCU:\Control Panel\Desktop' -Name UserPreferencesMask |
  Select-Object -ExpandProperty UserPreferencesMask |
  ForEach-Object { '{0:X2} ' -f $_ } | Out-String

Ambiente RDS/FSLogix: dicas práticas

  • Perfil itinerante (FSLogix): como a configuração fica em HKCU, ela é carregada com o perfil do usuário. Se você quer garantir a padronização, use GPP com Action = Replace a cada logon.
  • Timing: alterações no UserPreferencesMask são consolidadas na sessão de usuário. Por isso, aplique no logon (ou force novo logon) para evitar inconsistências.
  • Session Hosts múltiplos: garanta que o mesmo GPO/GPP alcance todos os hosts RDS do farm.

Política complementar de Acessibilidade

Se o seu pacote ADMX expõe a política “Desativar animações desnecessárias (quando possível)”, configurá-la como Desabilitado em User Configuration ▸ Administrative Templates ▸ Ease of Access/Facilidade de Acesso também tende a permitir animações. Ainda assim, a experiência mostra que a chave determinante é UserPreferencesMask. Se necessário, aplique ambas (política + GPP) para remover ambiguidades.

Boas práticas antes do rollout

  • Faça backup do valor atual para referência/rollback: reg export "HKCU\Control Panel\Desktop" "%TEMP%\DesktopbeforeUserPreferencesMask.reg" /y
  • Teste por amostra (piloto) com usuários de perfis e hardwares diferentes (VDI/RDS, thin clients, conexões WAN diversas).
  • Documente qual GPO/GPP injeta a configuração e o motivo (ex.: “Exibir GIFs do Outlook em RDS”).

Como reverter (caso precise)

Se precisar desfazer a padronização, escolha uma das opções:

  • No mesmo GPP, altere a Action para Delete (ou remova o item) e force logoff/logon.
  • Restaure o backup exportado (.reg) do usuário.
  • Ou substitua UserPreferencesMask por um valor exportado de uma sessão com o toggle desativado.

Tabela de referência rápida

Chave/ConfiguraçãoTipoFunçãoObservações
HKCU\Control Panel\Desktop\UserPreferencesMaskREG_BINARYBitmask que consolida efeitos visuais do usuário.Determinante para “Mostrar animações no Windows”. Valor prático: 9E 3E 07 80.
HKCU\Control Panel\Desktop\WindowMetrics\MinAnimateREGSZ ou REGDWORD (varia)Animação de minimizar/maximizar.Não liga o toggle global de animações.
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\VisualEffects\VisualFXSettingREG_DWORDPerfil de efeitos (apariência x desempenho).Sem efeito por si só no toggle “Mostrar animações”.

Perguntas frequentes

Isso afeta outras opções visuais?

Sim. UserPreferencesMask é uma máscara consolidada. Ao padronizá-la, você pode, por exemplo, reativar efeitos de fade/sombras. Por isso o piloto é essencial, especialmente em hosts com hardware/latência mais restritos.

Funciona em Windows 10/11 e Windows Server 2019?

Sim. A chave é a mesma em Windows 10, Windows 11 e Windows Server 2019. Em RDS, priorize GPP de User Configuration para atingir todos os usuários que abram sessão no farm.

É obrigatório o logoff/logon?

Recomendado. Muitos efeitos visuais são processados no início da sessão (Explorer shell). Sem novo logon, a mudança pode não refletir — ou refletir parcialmente — durante a sessão em andamento.

Como garantir que todo mundo mantenha o padrão?

Use GPP com Action = Replace a cada logon, ou agende uma checagem periódica via script (ex.: no perfil do usuário) para regravar a máscara quando necessário.

E se houver conflito com uma política que desabilita animações?

Verifique políticas de Acessibilidade como “Desativar animações desnecessárias (quando possível)”. Se estiver Habilitada, ela pode anular a animação. Ajuste para Desabilitado e mantenha o GPP para o UserPreferencesMask.

Modelo de comunicação para os usuários

Para reduzir chamados no pós-rollout, envie um comunicado simples:

Assunto: Atualização de experiência visual no ambiente RDS
Corpo: A partir de hoje, animações do Windows estarão ativas nas sessões RDS para melhor compatibilidade com assinaturas animadas do Outlook. Caso não veja o efeito imediatamente, encerre a sessão e entre novamente. Dúvidas? Abra um chamado pelo Service Desk.

Checklist de rollout

  • ✅ Definiu o GPO (User Configuration) e escopo (grupos/OU corretos)?
  • ✅ Inseriu o item GPP UserPreferencesMask com REG_BINARY e valor 9E 3E 07 80?
  • ✅ Testou em 3–5 perfis com FSLogix (fatiando por hardware/rede) e validou Outlook?
  • ✅ Preparou comunicação aos usuários e instrução de logoff/logon?
  • ✅ Planejou rollback (backup do registro e remoção do item GPP) se necessário?

Exemplos práticos de scripts

Forçar a cada logon (PowerShell) — ideal quando se quer garantia absoluta:

$bytes = [byte[]](0x9E,0x3E,0x07,0x80)
$path  = 'HKCU:\Control Panel\Desktop'
New-Item -Path $path -Force | Out-Null
$current = (Get-ItemProperty -Path $path -Name UserPreferencesMask -ErrorAction SilentlyContinue).UserPreferencesMask
if (-not $current -or ($current -join ',') -ne ($bytes -join ',')) {
  Set-ItemProperty -Path $path -Name UserPreferencesMask -Value $bytes
}

Verificar e registrar em log (PowerShell) — útil para auditoria:

$log = "$env:ProgramData\UserPrefMask.log"
$val = (Get-ItemProperty -Path 'HKCU:\Control Panel\Desktop' -Name UserPreferencesMask -ErrorAction SilentlyContinue).UserPreferencesMask
$hex = if ($val) { ($val | ForEach-Object { '{0:X2}' -f $_ }) -join ' ' } else { '(não definido)' }
Add-Content -Path $log -Value "$(Get-Date -Format o) - UserPreferencesMask = $hex"

Quando não aplicar

  • Se sua organização adotou uma política de desempenho agressivo em hosts subdimensionados, reativar animações pode elevar ligeiramente a carga gráfica. Meça antes.
  • Se você precisa que o usuário escolha manualmente (por requisito de acessibilidade individual), prefira orientar o uso do toggle nas Configurações, sem forçar via GPP.

Resumo em uma linha

Para ligar “Mostrar animações no Windows” por padrão (e fazer GIFs do Outlook animarem em RDS/FSLogix), defina HKCU\Control Panel\Desktop\UserPreferencesMask = REG_BINARY 9E 3E 07 80 via GPP/script e solicite logoff/logon.


Apêndice: mapeamento prático e dicas de laboratório

Embora a Microsoft não documente oficialmente cada bit de UserPreferencesMask, a experiência mostra que a forma mais segura de customizar sem afetar outras escolhas do usuário é:

  1. Num host de laboratório, ative o toggle “Mostrar animações no Windows”.
  2. Exporte HKCU\Control Panel\Desktop do usuário-teste → guarde o UserPreferencesMask como “Com animações”.
  3. Desative o toggle e repita a exportação → guarde como “Sem animações”.
  4. Compare os binários para ver exatamente quais bytes/bits mudam no seu build e imagem corporativa.

Esse procedimento permite definir um valor que respeite outros efeitos visuais já padronizados no seu SO de referência.


Dica final: se o tópico original mencionou um número em decimal que não bate com o hex informado, prefira sempre definir o REG_BINARY exatamente como mostrado: 9E 3E 07 80. Isso elimina ambiguidades de conversão.

Índice