设置壁纸:PowerShell只能暂时使用

时间:2015-01-26 15:42:05

标签: windows powershell batch-file vbscript wallpaper

我在使用PowerShell和Batch文件时遇到了一些麻烦。当我运行一个调用Powershell脚本的批处理文件时,它会正常运行。注销并登录之后就好像什么也没发生一样。

这是批处理文件(SetWallpaper.bat):

@ECHO OFF
PowerShell.exe -NoProfile -Command "& {Start-Process PowerShell.exe -ArgumentList '-ExecutionPolicy Bypass -File ""%~dpn0.ps1""' -Verb RunAs}"
PAUSE

这是我的Powershell代码(SetWallpaper.ps1):

Set-ItemProperty -path 'HKCU:\Control Panel\Desktop\' -name wallpaper -value "<root>\Users\temp\Tree_Updown.jpg"
 rundll32.exe user32.dll, UpdatePerUserSystemParameters

正如我所说,它有效,但在注销后,壁纸是默认的Windows图片。

好奇心是,当我单独启动Powershell代码而没有批处理时,它的工作非常完美。

我在网上搜索了其他一些替代方案,比如通过VBS启动文件,但它没有用。

VBS代码(LaunchSetWallpaper.vbs):

command = "powershell.exe -nologo -command <root>\Users\temp\SetWallpaper.ps1"
set shell = CreateObject("WScript.Shell")
shell.Run command,0

由于某种原因未知,它什么也没做。

此时,我不知道还能做什么。希望有人能给我一些建议。

感谢。

Martin Leiva

0 个答案:

没有答案