バッチファイルで特定のユーザーのデスクトップの背景を変更する方法

バッチファイルで特定のユーザーのデスクトップの背景を変更する方法

重複の可能性あり:
追加アプリなしで 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。詳細については、取得-WMIオブジェクトWin32_UserAccount クラスそしてWQL によるクエリ
  • 2 行目は、正しいレジストリ キーへのパスを構築するだけです。
  • 3行目は、指定されたレジストリキーの指定されたエントリの値を設定します。アイテムプロパティの設定詳細については。
  • 4 行目は壁紙を強制的に更新します。これは、指定されたユーザーがログインしていて、変更をすぐに有効にする必要がある場合にのみ必要です。

関連情報