web-dev-qa-db-ja.com

Windows 10で壁紙を変更するスクリプト?

すべてのクライアントにWin10を展開するため、Windows 10のデフォルトの壁紙を変更するスクリプトを機能させようとしています。以下のバッチコードを実行しても、デフォルトの壁紙は変更されません。 img0ファイルは正しいディレクトリC:\ Windows\Web\Wallpaper\Windowsにありますが、背景は変更されていません。以下のコードは私が使用しているものです。 C:\ Windows\Web\4K\Wallpaper\Windows\img0_1366x768.jpgアクセスを拒否しようとすると、アクセス拒否エラーが発生します。

takeown /f c:\windows\WEB\wallpaper\Windows\img0.jpg
takeown /f C:\Windows\Web\4K\Wallpaper\Windows\*.*
icacls c:\windows\WEB\wallpaper\Windows\img0.jpg /Grant System:(F)
icacls C:\Windows\Web\4K\Wallpaper\Windows\*.* /Grant System:(F)
del c:\windows\WEB\wallpaper\Windows\img0.jpg
del /q C:\Windows\Web\4K\Wallpaper\Windows\*.*
copy %~dp0img0.jpg c:\windows\WEB\wallpaper\Windows\img0.jpg
copy %~dp04k\*.* C:\Windows\Web\4K\Wallpaper\Windows

私が間違っていることはありますか? TIA

5
user1342164

Powershellを使用して壁紙を変更します。まず、次のような関数を作成します。

Function Set-WallPaper($Value) { Set-ItemProperty -path 'HKCU:\Control Panel\Desktop\' -name wallpaper -value $value rundll32.exe user32.dll, UpdatePerUserSystemParameters }

次に、関数を呼び出します。

Set-WallPaper -value "path to wallpaper"
7
Michael Palermo

私はこれがすでに回答されていることを知っていますが、誰かがバッチファイルでこれを実行したい場合、icacls行は/ grantではなく/ resetを使用する必要があります...

takeown /f c:\windows\WEB\wallpaper\Windows\img0.jpg
icacls c:\windows\WEB\wallpaper\Windows\img0.jpg /reset
copy %~dp0img0.jpg c:\windows\WEB\wallpaper\Windows\img0.jpg
copy %~dp04k\*.* C:\Windows\Web\4K\Wallpaper\Windows

動作するはずです(管理者アカウントで実行されている限り)。

2
set WshShell = WScript.CreateObject("WScript.Shell")
    WshShell.SendKeys("^ ")
    WshShell.SendKeys("+{F10}")
    WshShell.SendKeys("N")
    WshShell.SendKeys("{DOWN}")
    WshShell.SendKeys("{DOWN}")
    WshShell.SendKeys("{DOWN}")
    WshShell.SendKeys("{DOWN}")
    WshShell.SendKeys("{DOWN}")
    WshShell.SendKeys("{DOWN}")
    WshShell.SendKeys("{DOWN}")
    WshShell.SendKeys("{DOWN}")
    WshShell.SendKeys("{DOWN}")
    WshShell.SendKeys("{DOWN}")
    WshShell.SendKeys("{ENTER}")
0
Richard Goh