'*** v10.3 *** www.dieseyer.de ***************************** ' ' Datei: remotewindir.vbs ' Autor: dieseyer@gmx.de ' Auf: www.dieseyer.de ' ' Die Prozedur ist Bestandteil von WinTuC_vbs.vbs (WinTuC.de) ' '*********************************************************** Option Explicit ' Siehe http://dieseyer.de/dse-wsh-lernen.html#OptionExpl Dim fso : Set fso = WScript.CreateObject("Scripting.FileSystemObject") Dim WSHShell : Set WSHShell = WScript.CreateObject("WScript.Shell") Dim WSHNet : Set WSHNet = WScript.CreateObject("WScript.Network") Dim Args : Set Args = Wscript.Arguments Dim LogDatei : LogDatei = WScript.ScriptFullName & ".log" LogDatei = WScript.ScriptFullName & ".log" LogDatei = WScript.ScriptFullName & "-" & WSHNet.ComputerName & "-.log" LogDatei = WScript.ScriptFullName & "-" & WSHNet.UserName & "-.log" ' Call Trace32Log( "-", 0 ) ' erstellt neue LogDatei Call Trace32Log( " ", 1 ) ' fügt Leerzeile in LogDatei ein Trace32Log " ", 1 ' fügt Leerzeile in LogDatei ein WSHShell.Popup "= = = S T A R T = = =", 2, "029 :: " & WScript.ScriptName Trace32Log "030 :: Start " & WScript.ScriptFullName & " ( " & fso.GetFile( WScript.ScriptFullName ).DateLastModified & " )", 1 Trace32Log "031 :: LogDatei: " & LogDatei, 1 Trace32Log "032 :: PCname: " & WSHNet.ComputerName, 1 Trace32Log "033 :: Angemeldeter User: " & WSHNet.UserName, 1 Do WScript.Sleep 1000 ' neue Sekunde abwarten Do ' warten, bis eine neue Minute (mit xx:yy:00) anfängt WScript.Sleep 20 If InStr( now(), ":00" ) = Len( now() ) - 2 Then Exit Do If InStr( now(), ":10" ) = Len( now() ) - 2 Then Exit Do If InStr( now(), ":20" ) = Len( now() ) - 2 Then Exit Do If InStr( now(), ":30" ) = Len( now() ) - 2 Then Exit Do If InStr( now(), ":40" ) = Len( now() ) - 2 Then Exit Do If InStr( now(), ":50" ) = Len( now() ) - 2 Then Exit Do Loop Trace32Log "049 :: VBSmodTest: " & VBSmodTest, 1 VBSmodTest = VBSmodTest + 1 : VBSbeenden() : VBSneustart() If VBSmodTest > 10 Then Exit Do Loop WSHShell.Popup "= = = E N D E = = =", 2, "056 :: " & WScript.ScriptName Trace32Log "057 :: Ende " & WScript.ScriptFullName & " ( " & fso.GetFile( WScript.ScriptFullName ).DateLastModified & " )", 1 Wscript.Quit '*** v10.3 *** www.dieseyer.de ***************************** Function RemoteWinDir( PCName ) '*********************************************************** ' http://msdn2.microsoft.com/en-us/library/aa394596(vs.85).aspx ' ermittelt %WINDIR% == %SYSTEMROOT%; häufig C:\Windows Dim objWMIService, colOperatingSystems, objOperatingSystem, Tst Dim WindowsDirectory, SystemDirectory On Error Resume Next err.Clear Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & PCName & "\root\cimv2") Tst = err.Number & " - " & err.Description On Error Goto 0 If Len( Tst ) > 4 Then : RemoteWinDir = "Fehler: WMI-Sys " & Tst : Exit Function On Error Resume Next err.Clear Set colOperatingSystems = objWMIService.ExecQuery("Select * from Win32_OperatingSystem") Tst = err.Number & " - " & err.Description On Error Goto 0 If Len( Tst ) > 4 Then : RemoteWinDir = "Fehler: WMI-SysOS " & Tst : Exit Function On Error Resume Next err.Clear For Each objOperatingSystem in colOperatingSystems Tst = err.Number & " - " & err.Description On Error Goto 0 If Len( Tst ) > 4 Then : RemoteWinDir = "Fehler: WMI-SysDir " & Tst : Exit Function WindowsDirectory = objOperatingSystem.WindowsDirectory SystemDirectory = objOperatingSystem.SystemDirectory Next Set colOperatingSystems = nothing Set objWMIService = nothing If WindowsDirectory = "" Then SystemDirectory = UCase( SystemDirectory ) If InStr( SystemDirectory, "\SYSTEM32" ) Then WindowsDirectory = Replace( SystemDirectory, "\SYSTEM32", "" ) End If RemoteWinDir = WindowsDirectory ' RemoteWinDir = "%..root%: " & RemoteWinDir End Function ' RemoteWinDir( PCName )