我一直在研究一个在用户登录时就运行的脚本。它检查包含机器名和用户名的.csv文件。如果用户要登录的计算机位于.csv文件中,并且未“分配”用户,则将其注销。这对某些帐户效果很好,但是有些帐户有限制,由于策略原因不能“运行/执行”命令提示符。
我一直在使用
Set oShell = WScript.CreateObject("WScript.Shell")
oShell.Run "cmd.exe /C timeout.exe /t 10 /nobreak && shutdown.exe /l", 0, False
在没有适当限制的情况下,这对于用户而言效果很好。我想知道是否有任何方法可以在不使用VBS中使用cmd.exe的情况下强制注销?我唯一能想到的解决方案是以具有适当权限的单独用户身份调用/运行脚本。
答案 0 :(得分:3)
睡眠10秒钟,然后致电logoff.exe
(如果愿意,请致电shutdown.exe /l
)。
Set oShell = CreateObject("WScript.Shell")
WScript.Sleep 10000
oShell.Run "logoff.exe", 0, False
只需在脚本中使用 cmd /c
,这是因为您通过timeout.exe
链接了两个命令(shutdown.exe
和&&
),这是CMD内置功能。但是由于您无论如何都不允许用户中断超时,因此您也可以致电Sleep
。
但是,由于您说要控制用户可以登录和不能登录的计算机:您可以在Active Directory中的用户设置中指定允许的计算机列表(帐户→登录到。。 )。这可能比在登录时运行脚本来检查CSV更好。