可能重复:
无需附加应用程序即可安排 Windows XP 墙纸更改 我认为这不是重复的,因为我问的是“如何更改其他用户的背景,而不是当前登录的用户”。我已经知道如何做到这一点。请投票重新提出我的问题。
我想知道如何更改特定用户的桌面背景。我知道你必须研究一下,HKEY_USERS
但我不知道从哪里开始。我也需要在批处理文件中执行此操作。这是针对 Windows XP 的。
答案1
这可以通过 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
解释:
- 第一行使用 WMI 获取给定用户的信息。具体来说,您需要在注册表配置单元下标识此用户的 SID
HKEY_USERS
。有关更多信息,请参阅获取 WMIObject,Win32_UserAccount 类和使用 WQL 查询。 - 第二行只是构建正确注册表项的路径。
- 第三行设置给定注册表项下的给定条目的值。请参见设置项目属性了解更多信息。
- 第四行强制刷新壁纸。仅当指定用户登录并且您需要更改立即生效时才需要执行此操作。