入域的机器想保持屏幕不关闭,但是Policy不允许,一个小脚本可以帮你!

大家都懂得。大公司嘛,肯定有规则不允许这不允许那。

那我们运维需要做的就是合理的绕过去,帮助他们得到信任,以后做事就方便了。

案情分析。
某部门需要演示PPT在电视上,需要保持24小时屏幕不会Lock mon,

在此之前,他们一贯用法就是用硬物砸着键盘,但是有时候你懂的 肯定会掉落导致又成了lock mon啊,而且这种很愚蠢好不好!
你是IT,你是运维,如果你想技术积累肯定需要自己来啊!
而且大公司一般都有规矩的,不可以随便下载外网的东西,软件。
这个时候就可以通过系统自带的东西来耍了!
不废话直接上代码

dim objWMIService, objprocess, colprocess 
dim strComputer, strList, ppPresent, i 
dim oReg, strKeyPath

set objshell = WScript.CreateObject("WScript.shell")

strcomputer = "."

Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" _
& strComputer & "\root\cimv2")

i = 1

Do while i = 1 

	Dim Processnum 
	Processnum=0 
	set colProcess = objWMIService.ExecQuery("SELECT * FROM Win32_Process") 

	For Each objProcess in colprocess 

    if objprocess.Name="wscript.exe" then
	
	
	
	if Instr(objprocess.commandline,"WNS_CWD_Lock_Mon") >0 then
	
	Processnum=Processnum+1
	
	end if
	end if

	next

	if processnum>1 then msgbox "do not run twice" : wscript.quit

	objshell.sendkeys "{NUMLOCK}"
	objshell.sendkeys "{NUMLOCK}"
	wscript.sleep 6000


	loop

'end of script

请复制保存为WNS_CWD_Lock_Mon.vbs 即可食用。

代码解析:

其实关键就三句话

objshell.sendkeys "{NUMLOCK}"
objshell.sendkeys "{NUMLOCK}"
wscript.sleep 6000
loop

数字开关键 点两下
sleep 你懂的吧
然后loop。。。

上面的代码那么长是因为加上防止多次点击。

完毕。

你可能感兴趣的:(知识库,IT桌面运维)