在Windows 10中更改壁纸的脚本?

时间:2015-11-05 18:17:34

标签: windows batch-file wallpaper

我正在尝试使用一个可以更改Windows 10默认壁纸的脚本,因为我将为所有客户端部署Win10。当我运行下面的批处理代码时,它不会更改默认墙纸。我看到img0文件位于正确的目录C:\ Windows \ Web \ Wallpaper \ Windows中,但它没有改变背景。下面的代码就是我正在使用的代码。尝试del 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

3 个答案:

答案 0 :(得分:9)

使用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"

答案 1 :(得分:2)

我知道这已经得到了解答,但如果有人想在批处理文件中执行此操作,则icacls行需要使用/ reset而不是/ grant ...类似于:

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 :(得分:0)

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}")