Isso pode ser feito com o PowerShell:
$user = Get-WMIObject -Query "select * from Win32_UserAccount where Name='<username>'"
$path = 'Registry::HKEY_USERS\' + $user.SID + '\Control Panel\Desktop\'
Set-ItemProperty -path $path -name Wallpaper -value 'C:\path\to\wallpaper.jpg'
rundll32.exe user32.dll UpdatePerUserSystemParameters
Explicação:
- A primeira linha obtém as informações do usuário fornecido usando o WMI. Especificamente, você precisa do SID que identifica esse usuário na seção
HKEY_USERS
do registro. Para obter mais informações, consulte Get-WMIObject , Win32_UserAccount class e Consultando com WQL . - A segunda linha simplesmente constrói o caminho para a chave de registro correta.
- A terceira linha define o valor da entrada fornecida sob a chave de registro fornecida. Consulte Set-ItemProperty para obter mais informações.
- A quarta linha força uma atualização do papel de parede. Isso é necessário apenas se o usuário especificado estiver conectado e você precisar que a alteração entre em vigor imediatamente.