Da es für das Sperren keine WMI-Funktion gibt muss man hier auf die WINAPI zurückgreifen:
Code:
On Error Resume Next
Set objShell = CreateObject("Ws*****.Shell")
objShell.Run "%windir%\System32\rundll32.exe user32.dll,LockWorkStation"
Die Zeilen in einen Texteditor kopieren und z.B. als Lock.vbs abspeichern. Durch Doppelklick wird der Rechner automatisch gesperrt.
Für den Neustart kann man auf die WMI zurückgreifen wo es zusätzliche Optionen gibt:
Code:
strServer = "."
const nLogOff=0
const nReboot=2
const nForceLogOff=4
const nForceReboot=6
const nPowerDown=8
const nForcePowerDown=12
Set objWMI = GetObject("winmgmts:{(Shutdown)}!\\" & strServer & "\root\cimv2")
strWQL = "select * from Win32_OperatingSystem"
Set objInstances = objWMI.ExecQuery(strWQL,,48)
For Each objInstance in objInstances
p_Flag = nReboot
p_Reserved = 0
intResult = objInstance.Win32Shutdown(p_Flag, p_Reserved)
Next
Das ganze wie oben in einen Texteditor und z.B. als reboot.vbs speichern.
Ändert man den Wert von
p_Flag im Code z.B. auf
nLogOff wird kein Neustart sondern ein abmelden durchgeführt.