deeluxx

Windows 2k Client mit Scheduled Task herunterfahren

Folgende Problemstellung:
Ich will ein Windows 2k Client per VBScript und Scheduled Task zu einem bestimmten Zeitpunkt täglich herunterfahren.
Ist jedoch ein User am Client angemeldet (per RDP), darf der Computer nicht heruntergefahren werden.

Könnt ihr mir helfen wo der Fehler in diesem Script liegt?

On Error resume next

strComputer = "."  

'get username  
Set objWMIService = GetObject("winmgmts:" _  
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")  

Set colComputer = objWMIService.ExecQuery _
("Select * from Win32_ComputerSystem")  

For Each objComputer in colComputer
user = objComputer.UserName
Next

'if user is null then try to shutdown computer  

If isnull(user) Then

Set objWMIService = GetObject _
("winmgmts:{impersonationLevel=impersonate,(Shutdown)}\\" & _  
strComputer & "\root\cimv2")  

Set colOperatingSystems = objWMIService.ExecQuery _
("Select * from Win32_OperatingSystem")  

For Each objOperatingSystem in colOperatingSystems
objOperatingSystem.Win32Shutdown(8)
Next

Else

Wscript.Quit

End If

Wscript.Quit
Share on Facebook
Share on X (Twitter)
Share on Reddit
Share on Linkedin

Content-ID: 138441

Url: https://administrator.de/forum/windows-2k-client-mit-scheduled-task-herunterfahren-138441.html

Printed on: May 11, 2025 at 17:05 o'clock

b-netix
b-netix Mar 17, 2010 at 20:42:11 (UTC)
Goto Top
Hallo deeluxx,

in Zeile 13 schreibst weist du der Variablen "user" den Wert des Objects zu.

Welchen Wert hat diese Variable vorher?

Wenn du dies auswertest wie in Zeile 18 könntest du Probleme bekommen. Ich kenn das aus anderen Sprachen wie C oder C#, in der Variablen die nicht mit Werten belegt sind u.U. irgeetwas enthalten.
Versuch mal user einen Wert vor dem auslesen des UserName sprich vor Zeile 13 zu geben.

Gruß b-netix

PS: Lass mich wissen wo das scipt bei dir nicht die erwartete Wirkung zeigt.