【发布时间】:2021-02-20 03:56:51
【问题描述】:
我遇到了一个要解决的挑战,就是要在办公室里找点乐子。因此,我尝试设置一个带有 Windows Server 2012 R2 和客户端 Windows 10 的 VM 实验室来进行测试。
我面临的挑战:
Windows 10 在设置时并不总是刷新壁纸,使用 psexec 使用命令:
rundll32.exe user32.dll, UpdatePerUserSystemParameters, 1, true
这似乎是由于 rundll32.exe 或 user32.dll 的限制,不知道为什么。
我必须使用我创建的新主题,将其复制到客户端并使用 psexec 加载它以立即将其呈现给用户,而无需注销或重新启动。尽管有时它只是不起作用,或者只是使背景变黑,就像当我多次运行脚本时它会完全删除墙纸一样,以确保即使我运行了多少次它也能正常工作。请记住,此脚本取决于客户端是否在线,这意味着 DNS 工作正常,您也可以 ping 主机。
如何确保墙纸始终处于刷新状态且正常工作? - 有没有更好的方法可以找到,然后请告诉我,因为我试图在互联网上搜索,但找不到任何像我迄今为止通过 powershell 在 Windows 10 上所做的那样好的方法。
我目前正在使用的脚本如下:
在此处下载源代码:
- 将 this 保存为 ChangeDesktopBackgroundRemotely.ps1 -- 您运行的主脚本
- 将this 保存为服务器上“C:\tmp”中的newtheme.theme
- 将this 保存为服务器上“C:\tmp”中的refreshbg.ps1
- 将FCK.jpg 保存为服务器上“C:\tmp”中的 FCK.jpg
- 将aalborg.jpg 保存为 aalborg.jpg 在您服务器上的“C:\tmp”中
【问题讨论】:
-
当您可以在GPO 中执行此操作时,为什么还要编写此脚本?
-
@postanote - 是的,确实如此,但由于我在办公室运行它,我无法访问 GPO,所以我使用 psexec 来解决这个问题,我可以看到它正在运行执行此操作时在另一台 PC 上使用 powershell 脚本,因此它可以工作 - 但无论我运行脚本多少次,壁纸的意图总是会改变,但它只是没有。它要么移除了bagground,要么移除了其他bagground。我正在我的 VM 实验室中使用 windows 10 和 windows server 2012 R2 测试 atm,所以它应该能够在没有 GPO 的情况下工作,这就是整个想法。
标签: powershell batch-file psexec user32 rundll32