Einzelnen Beitrag anzeigen
Ungelesen 23.11.12, 19:51   #2
neozion
Anfänger
 
Registriert seit: Aug 2009
Beiträge: 21
Bedankt: 45
neozion ist noch neu hier! | 0 Respekt Punkte
Standard

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.
neozion ist offline   Mit Zitat antworten