如何在批处理文件中更改特定用户的桌面背景

如何在批处理文件中更改特定用户的桌面背景

可能重复:
无需附加应用程序即可安排 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。有关更多信息,请参阅获取 WMIObjectWin32_UserAccount 类使用 WQL 查询
  • 第二行只是构建正确注册表项的路径。
  • 第三行设置给定注册表项下的给定条目的值。请参见设置项目属性了解更多信息。
  • 第四行强制刷新壁纸。仅当指定用户登录并且您需要更改立即生效时才需要执行此操作。

相关内容