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.
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 comoWindowsMetrics
), e/ouHKCU\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
:
Item | Valor / Observação |
---|---|
Chave | HKEYCURRENTUSER\Control Panel\Desktop\UserPreferencesMask |
Tipo | REG_BINARY |
Valor recomendado | 9E 3E 07 80 (hexadecimal) |
Aplicação | Definir 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
eHKCU\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 deREGSZ
funcionar em ambientes específicos, o tipo correto deUserPreferencesMask
é 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
- Abra o Group Policy Management e edite um GPO de User Configuration que se aplique aos usuários RDS.
- Navegue até User Configuration ▸ Preferences ▸ Windows Settings ▸ Registry.
- 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
- 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).
- 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
- No host RDS, com um usuário-alvo, faça logoff e logon.
- Abra Configurações > Acessibilidade > Efeitos visuais (Windows 11) ou Configurações > Facilidade de Acesso > Exibir (Windows 10/Server 2019).
- Verifique se o toggle “Mostrar animações no Windows” está Ativado.
- 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ção | Tipo | Função | Observações |
---|---|---|---|
HKCU\Control Panel\Desktop\UserPreferencesMask | REG_BINARY | Bitmask 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\MinAnimate | REGSZ ou REGDWORD (varia) | Animação de minimizar/maximizar. | Não liga o toggle global de animações. |
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\VisualEffects\VisualFXSetting | REG_DWORD | Perfil 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
comREG_BINARY
e valor9E 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 é:
- Num host de laboratório, ative o toggle “Mostrar animações no Windows”.
- Exporte
HKCU\Control Panel\Desktop
do usuário-teste → guarde oUserPreferencesMask
como “Com animações”. - Desative o toggle e repita a exportação → guarde como “Sem animações”.
- 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.