在 VBScript 中强制注销
Force logout in VBS Script
我一直在编写一个脚本,每当用户登录时该脚本都会 运行。它会检查包含机器名称和用户名的 .csv 文件。如果用户登录的机器在 .csv 文件中并且用户不是 "assigned",它将注销。这对某些帐户非常有用,但有一些帐户有限制,并且由于政策原因不能 "run/execute" 命令提示符。
我一直在用
Set oShell = WScript.CreateObject("WScript.Shell")
oShell.Run "cmd.exe /C timeout.exe /t 10 /nobreak && shutdown.exe /l", 0, False
对于没有适当限制的用户来说效果很好。我想知道是否有任何方法可以在不使用 VBS 中的 cmd.exe 的情况下强制注销?我能想到的唯一解决方案是 calling/running 将脚本作为具有正确权限的单独用户。
休眠 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 的脚本更好。
我一直在编写一个脚本,每当用户登录时该脚本都会 运行。它会检查包含机器名称和用户名的 .csv 文件。如果用户登录的机器在 .csv 文件中并且用户不是 "assigned",它将注销。这对某些帐户非常有用,但有一些帐户有限制,并且由于政策原因不能 "run/execute" 命令提示符。
我一直在用
Set oShell = WScript.CreateObject("WScript.Shell")
oShell.Run "cmd.exe /C timeout.exe /t 10 /nobreak && shutdown.exe /l", 0, False
对于没有适当限制的用户来说效果很好。我想知道是否有任何方法可以在不使用 VBS 中的 cmd.exe 的情况下强制注销?我能想到的唯一解决方案是 calling/running 将脚本作为具有正确权限的单独用户。
休眠 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 的脚本更好。