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