监控 Windows 后台或 Windows 登录屏幕的变化

监控 Windows 后台或 Windows 登录屏幕的变化

这不是一个典型的问题,我考虑将其发布到 Programmers Stack Exchange,但我认为这里更合适。

我想要做的是监控 Windows 背景或登录屏幕是否被更改。我不太确定最好的解决方法是什么,但任何提示都很好。

答案1

有一个组策略指定了壁纸(或背景),另一个组策略拒绝用户更改壁纸

检查用户配置-管理模板-桌面

答案2

好的,我自己搞明白了。以下是我所做的。用于登录屏幕的文件位于此处:

C:\Windows\System32\oobe\info\backgrounds\BackgroundDefault.jpg

据我所知,实际上不需要更改注册表中的任何内容,但图像本身在大小和颜色深度方面必须满足某些要求。该文件是显示为 Windows 登录屏幕的文件。只需用您选择的图像替换该文件即可。

编辑:看来您需要在注册表中设置此标志,以便非 Windows 登录屏幕正常工作。只需将值设置为 1。如果您的计算机有 OEM 登录屏幕,那么它应该已经设置好了:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\Background 

这是我编写的用于监控文件夹更改的脚本。现在介绍一下背景,这个脚本的目的是阻止某人远程更改我的背景。某人一直在恶作剧,每当我离开办公桌时,他都会将我的登录屏幕更改为 Justin Beiber 或其他图像。但他通过将我当前的“BackgroundDefault.jpg”重命名为 .old 或其他图像,然后复制他的图像来实现这一点。

因此,我的脚本会监控文件夹中的文件数量。如果检测到多个文件,它会清空该文件夹并从其他位置恢复我的背景图像的副本。然后,作为报复,它会自动将后街男孩的图像复制到他的电脑上,使其成为他的电脑的登录图像。听起来很幼稚,但它让他停下来了。

@echo off
cd C:\Windows\System32\oobe\info\backgrounds
for /f %%A in ('dir ^| find "File(s)"') do set cnt=%%A

if %cnt% GEQ 2 GOTO :revenge
if %cnt% EQU 1 GOTO :exit

:revenge

del * /F /Q
copy C:\temp\temp2\mycomp\BackgroundDefault.jpg C:\Windows\System32\oobe\info\backgrounds
rename \\otherguy-pc\c$\Windows\System32\oobe\info\backgrounds\BackgroundDefault.jpg BackgroundDefaultOLD3318.jpg
copy C:\temp\temp2\otherguy\BackgroundDefault.jpg \\otherguy-pc\c$\Windows\System32\oobe\info\backgrounds\

:exit

由于我只是将此脚本作为计划任务来运行,因此我实际上是通过以下 .vbs 脚本运行该脚本的:

Set noShell = CreateObject("WScript.Shell")
noShell.Run chr(34) & "C:\Users\cblasko\Documents\revenge.bat" & Chr(34), 0
Set noShell = Nothing

使用 vbs 脚本的原因是,当脚本每 5 分钟运行一次时,我不会每 5 分钟闪烁一次命令提示符窗口。脚本会隐藏窗口,而是在后台运行它。

无论如何,任务完成了。唤醒电脑时不再有烦人的图片了。

相关内容