deeluxx
Goto Top

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

Content-Key: 138441

Url: https://administrator.de/contentid/138441

Ausgedruckt am: 19.04.2024 um 04:04 Uhr

Mitglied: b-netix
b-netix 17.03.2010 um 21:42:11 Uhr
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.