在VBS脚本中强制注销

时间:2018-07-30 07:25:35

标签: vbscript

我一直在研究一个在用户登录时就运行的脚本。它检查包含机器名和用户名的.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的情况下强制注销?我唯一能想到的解决方案是以具有适当权限的单独用户身份调用/运行脚本。

1 个答案:

答案 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更好。