http://dieseyer.de • all rights reserved • © 2011 v11.4

'*** v7.A *** www.dieseyer.de *******************************
'
' Datei: wmi-pcreboot.vbs
' Autor: dieseyer@gmx.de
' Auf: www.dieseyer.de
'
' Sendet mit WMI eine Reboot-Auforderung an einen PC.
'
'************************************************************

Option Explicit ' Siehe http://dieseyer.de/dse-wsh-lernen.html#OptionExpl

Dim WSHNet : Set WSHNet = WScript.CreateObject("WScript.Network")
Dim oArgs : Set oArgs = Wscript.Arguments
Dim WSHShell : Set WSHShell = WScript.CreateObject("WScript.Shell")

Dim i, PCName

For i = 0 to oArgs.Count - 1 ' hole alle Argumente
If i = 0 Then PCName = oArgs.item(i)
Next

' PCName = WScript.CreateObject("WScript.Network").ComputerName

' PCName = wshnet.ComputerName
' PCName = "53.73.179.56"

If PCName = "" Then PCName = InputBox( vbCRLF & vbCRLF & "Welcher PC soll neu gestartet werden?", WScript.ScriptName, PCName )

LogDatei( Now() & vbTab & PCName & " " & vbTab & " soll eine ReBoot-Anforderung bekommen." )

' PCreboot( PCName )
remoteShutdown( PCName )

LogDatei( Now() & vbTab & PCName & " " & vbTab & " hat eine ReBoot-Anforderung erhalten." )

WSHShell.Popup PCName & vbCRLF & vbCRLF & "hat eine ReBoot-Anforderung erhalten." ,15 , "0036 :: " & WScript.ScriptName, 64 + 4096 + 0


'*******************************************************
Sub remoteShutdown(remotename) ' 5.3 - http://dieseyer.de
'*******************************************************
' http://groups.google.de/groups?hl=de&lr=&newwindow=1&frame=right&th=43c55ccb528dbbc3&seekm=ebO58v50DHA.2480%40TK2MSFTNGP10.phx.gbl#link5

Const EWX_LOGOFF = 0
Const EWX_SHUTDOWN = 1
Const EWX_REBOOT = 2
Const EWX_FORCE = 4
Const EWX_POWEROFF = 8

Dim wmi : Set wmi = GetObject( "winmgmts:{(RemoteShutdown)}!//" & remotename & "/root/cimv2" )
Dim objset : set objset = wmi.instancesof("win32_operatingsystem")

Dim obj, os

for each obj in objset
obj.security_.privileges.add 18, true
set os = obj : exit for
next

os.win32shutdown 6

End Sub ' remoteShutdown(remotename) 5.3 - http://dieseyer.de




'*******************************************************
Sub PCreboot( strComputer ) ' 5.3 - http://dieseyer.de
'*******************************************************
Dim objWMIService, colOperatingSystems, ObjOperatingSystem

' On Error Resume Next ' wird immer ausgeführt

Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate,(Shutdown)}!\\" & strComputer & "\root\cimv2")
Set colOperatingSystems = objWMIService.ExecQuery ("Select * from Win32_OperatingSystem")
For Each objOperatingSystem in colOperatingSystems
ObjOperatingSystem.Reboot()
Next

On Error GoTo 0

End Sub ' PCreboot( strComputer ) 5.3 - http://dieseyer.de


'*******************************************************
Sub LogDatei( Txt ) ' Anfang
'*******************************************************
CreateObject("Scripting.FileSystemObject").OpenTextFile( WScript.ScriptName & ".log" , 8, true ).WriteLine( Txt )
End Sub ' LogDatei

http://dieseyer.de • all rights reserved • © 2011 v11.4