Vbscript 如何检查我的工作站是否已锁定?

Vbscript 如何检查我的工作站是否已锁定?,vbscript,Vbscript,有人可以帮助检查工作站是否被锁定的代码片段吗?我尝试获取document.title,因此当工作站被锁定时,document.title返回空白。这是行不通的 我正在用驻留在HTML中的vbscript对wscript进行编码 任何关于Javascript的帮助都可以 不确定是否可以通过脚本检查。大多数函数将按预期运行。一件不起作用的事情是发送按键(模拟按键或鼠标移动),但您不能从html上的脚本执行此操作。 也许您可以改为检查自用户上次活动以来的空闲时间?如果有屏幕保护程序,您可能会看到类似“

有人可以帮助检查工作站是否被锁定的代码片段吗?我尝试获取document.title,因此当工作站被锁定时,document.title返回空白。这是行不通的

我正在用驻留在HTML中的vbscript对wscript进行编码


任何关于Javascript的帮助都可以

不确定是否可以通过脚本检查。大多数函数将按预期运行。一件不起作用的事情是发送按键(模拟按键或鼠标移动),但您不能从html上的脚本执行此操作。

也许您可以改为检查自用户上次活动以来的空闲时间?

如果有屏幕保护程序,您可能会看到类似“logon.scr”的过程。如果你没有运行屏幕保护程序,那就不行了。尽管使用代码,但使用.Net还是很容易


您可以将其创建为COM对象并从VBScript调用。

通常,您应该使用wmi查询查看事件日志的安全日志。 然而,XP没有锁定事件ID(vista/win7/2008同时具有锁定和解锁事件ID)

不过XP确实有一个解锁事件。大多数人没有意识到解锁事件同时涉及登录/注销事件(事件ID 528/538,几乎同时发生)。登录类型将为EventType 7,这就是您告诉某人正在解锁工作站的方式。登录类型7(无论是登录还是注销)是一个解锁事件

对于Vista/Win7/2008,新的工作站锁定事件id为4800,确定解锁事件的更新方式为事件id 4801。但是,post Vista操作系统中的源日志不是安全日志,而是Microsoft Windows安全审核日志

如果你有Win7幸运的话,你应该写一个wmi查询。XP,我看不出一个好方法,除非你想尝试空闲时间

一个有效的指标(在Windows 7 SP1上,只有一个用户,没有远程桌面)是检查是否存在
LogonUI.exe
进程,该进程仅在工作站锁定时存在。请参阅以下
islocked.vbs
,它也可以传递远程计算机名

' Source:
'   http://community.spiceworks.com/scripts/show/1965-detect-screen-lock-status
Dim computer : computer = "."
If WScript.Arguments.Count = 1 Then
    computer = WScript.Arguments(0)
End If

Function IsWorkstationLocked( computer )
    Dim wmi : Set wmi = GetObject("winmgmts://" & computer & "/root/cimv2")
    Dim logonScreenCount : logonScreenCount = wmi.ExecQuery ("SELECT * FROM Win32_Process WHERE Name = 'LogonUI.exe'").Count

    IsWorkstationLocked = (logonScreenCount > 0)
End Function

If IsWorkstationLocked(computer) Then
    WScript.Quit(0)
Else
    WScript.Quit(1)
End If

我认为如果你包括你所指的操作系统,这会很有帮助。你想用这个来完成什么?更多信息可能会有所帮助。根据“没有可以调用的函数来确定工作站是否被锁定。”必须使用SessionSwitchEventHandler来监视这一点。关于这个问题可以找到更多信息:您能否澄清如何查找特定于“当前桌面/运行当前进程的站点”的锁定/解锁事件?谢谢