VBScript - Ergebniss in .log ausgeben
Ich brauche einen Befehl, der die Ergebnisse des VBScipt
in ein %MACHINENAME%.log auf \\zbw2ksv01\laufwerke schreibt.
Am liebsten wäre mit gleich, das gemoddete VBScipt.
Danke schonmal
'* Benötigte Deklarationen
Set wshNetwork = WScript.CreateObject( "WScript.Network" )
Set WshShell = WScript.CreateObject("WScript.Shell")
Company = "Bardusch GmbH&Co.KG Laufwerksmapping"
'* Ermitteln des Nutzernamens, Computernamens un der Anmeldedomäne
'* Erfolgt bereits hier, da im Loginscript öfter benötigt
Do While wshNetwork.username = ""
WScript.Sleep 250
Loop
strComputerName = wshNetwork.computerName
strUserName = wshNetwork.userName
strDomainName = wshNetwork.userDomain
'* Aufruf der Subroutine
Call SubZusammenfassung
'* Die Routine
Sub SubZusammenfassung ()
'* Benötigte Deklarationen
Set colDrives = wshNetwork.EnumNetworkDrives
Set colPrinters = wshNetwork.EnumPrinterConnections
Dim CRLF
CRLF = Chr(13) & Chr(10)
'* Der Beginn des Wahnsinns ;-)
strMsg = "Anmelde Ergebnisse" & CRLF & CRLF & "Benutzername" & Chr(9) & "= " & strUserName & CRLF & "Computername" & Chr(9) & "= " & strComputerName & CRLF & "Domäne" & Chr(9) & Chr (9) & "= " & strDomainName & CRLF
'* Verbundene Laufwerke Listen
If colDrives.Count = 0 Then
strMsg = strMsg & CRLF & "Kein Netzlaufwerk ist verbunden." & CRLF
Else
strMsg = strMsg & CRLF & "Verbundene Netzlaufwerk(e):" & CRLF
For i = 0 To colDrives.Count - 1 Step 2
strMsg = strMsg & CRLF & colDrives(i) & Chr(9) & colDrives(i + 1)
Next
End If
'* Verbundene Drucker Listen
If colPrinters.Count = 0 Then
strMsg = strMsg & CRLF & CRLF & _
"Kein Netzwerk-Drucker ist verbunden." & CRLF
Else
strMsg = strMsg & CRLF & CRLF & _
"Verbundene Netzwerk-Drucker:" & CRLF
For i = 0 To colPrinters.Count - 1 Step 2
strMsg = strMsg & CRLF & colPrinters(i) & _
Chr(9) & colPrinters(i + 1)
Next
End If
strMsg = strMsg & CRLF & CRLF & "Dieses Fenster schließt sich in 10 Sekunden automatisch." & CRLF & "Wir wünschen noch einen schönen Arbeitstag"
BtnCode = WshShell.PopUp(strMsg,10,Company,64)
End Sub
in ein %MACHINENAME%.log auf \\zbw2ksv01\laufwerke schreibt.
Am liebsten wäre mit gleich, das gemoddete VBScipt.
Danke schonmal
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 15760
Url: https://administrator.de/forum/vbscript-ergebniss-in-log-ausgeben-15760.html
Ausgedruckt am: 22.12.2024 um 09:12 Uhr
11 Kommentare
Neuester Kommentar
strLog = "\\zbw2ksv01\laufwerke\" & strComputerName & ".log"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objLog = objFSO.CreateTextFile(strLog, True)
objLog.Write strMSG
objLog.Close
Nicht enthalten ist hier eine Prüfung, ob das Share erreichbar ist.
Außerdem wird das Log jedesmal überschrieben.
PS: Ich halte nicht sehr viel von Modding. Es sollte aber kein Problem für dich darstellen, das Schnipsel einzubauen.
Das hat mir jetzt keine Ruhe gelassen.
Logfiles, die überschrieben werden sind es nicht Wert überhaupt geschrieben zu werden.
Generiert einen Namen für das Logfile in der Form <<a>computername<a>>_2005.09.09.log
Wenn das Logfile bereits existiert wird der Name um einen dreistelligen Zähler erweitert.
Logfiles, die überschrieben werden sind es nicht Wert überhaupt geschrieben zu werden.
Function GenLogfileName
strLog = "\\zbw2ksv01\laufwerke\"
strExt = ".log"
arrDate = Split(FormatDateTime(Date, 2),".")
strLogFile = strComputerName & "_" & arrDate(2) & "." & arrDate(1) & "." & arrDate(0)
strTemp = strLogFile
For i = 001 To 999
If objFSO.FileExists(strLog & strLogFile & strExt) Then
strLogFile = strTemp & "_" & i
Else
GenLogFileName = strLog & strLogFile & strExt
Exit Function
End If
Next
End Function
Generiert einen Namen für das Logfile in der Form <<a>computername<a>>_2005.09.09.log
Wenn das Logfile bereits existiert wird der Name um einen dreistelligen Zähler erweitert.
@gemini
Aber, wenn ich FaBMiN richtig verstanden habe, will er sicherlich alle Rechner protokollieren lassen, sinnvollerweise auch nach Tagen getrennt, aber in eine LogDatei je Tag. Nicht in eine je Computer und Anmeldung und Tag. Der %Compostername% steht doch schon in Stefans Script-Part. Also dann müsste doch die Ermittlung des Tages-Log-Namens reichen:
Gibt den Namen der heutigen LogDatei zurück in der Form
"\\server\freigabepfad\2005-09-09.log"
Und oben in dem anderen Schnipsel ein
Oder mach ich jetzt einen Denkfehler?
[Edit]
Ganz vergessen:
Schönes und baldiges Wochenende an alle!
Biber
[/Edit]
Das hat mir jetzt keine Ruhe gelassen, Logfiles, die überschrieben werden sind
es nicht Wert überhaupt geschrieben zu werden.
Seh ich auch so.es nicht Wert überhaupt geschrieben zu werden.
Aber, wenn ich FaBMiN richtig verstanden habe, will er sicherlich alle Rechner protokollieren lassen, sinnvollerweise auch nach Tagen getrennt, aber in eine LogDatei je Tag. Nicht in eine je Computer und Anmeldung und Tag. Der %Compostername% steht doch schon in Stefans Script-Part. Also dann müsste doch die Ermittlung des Tages-Log-Namens reichen:
Function GenLogfile4AllName
strLogPath = "\\zbw2ksv01\laufwerke\"
strExt = ".log"
arrDate = Split(FormatDateTime(Date, 2),".")
strLogFile = arrDate(2) & "-" & arrDate(1) & "-" & arrDate(0)
GenLog4AllFileName = strLogPath & strLogFile & strExt
End Function
Gibt den Namen der heutigen LogDatei zurück in der Form
"\\server\freigabepfad\2005-09-09.log"
Und oben in dem anderen Schnipsel ein
...
If !objFSO.FileExists(strTodaysLogfile) Then
Set objLog = CreateTextFile( strTodaysLogFile, True)
else
Set objLog = OpenTextFile( strTodaysLogFile,,FOR_APPEND) ' oder wie immer das FOR_APPEND in *vbs heißen mag
End If
objLog.Write
objLog.Close
..
[Edit]
Ganz vergessen:
Schönes und baldiges Wochenende an alle!
Biber
[/Edit]
@Biber
Er wollte dass das Script die Daten
Man könnte es natürlich auch "Je Client Pro Monat" schreiben oder mit AD-Einsatz nach Gruppenmitgliedschaft|Standort. Der Spielleidenschaft sind hier keine Grenzen gesetzt
~~~~~~~~~~~~~~
Davon abgesehen, dass mit persönlich der Wert von Logfiles dieser Art verschlossen bleibt.
Wer sich wann angemeldet hat, sehe ich im Ereignisprotokoll.
Wenn das Laufwerks-/Druckermapping oder sonstwas nicht funktioniert, erfahre ich das lange bevor ich das Log gelesen habe.
FOR_APPEND meint zum Anfügen, aber das muss ich dir sicher nicht erklären
Wenn du ForAppending einsetzt musst du ihm vorher den Wert 8 zuweisen, also
Die 8 macht nichts anderes als ans Ende der Datei zu schreiben, also in etwa
Er wollte dass das Script die Daten
in ein %MACHINENAME%.log auf \\zbw2ksv01\laufwerke schreibt.
So habe ich das verstanden und so hab ich ihm im ersten Post auch gemacht.Man könnte es natürlich auch "Je Client Pro Monat" schreiben oder mit AD-Einsatz nach Gruppenmitgliedschaft|Standort. Der Spielleidenschaft sind hier keine Grenzen gesetzt
~~~~~~~~~~~~~~
Davon abgesehen, dass mit persönlich der Wert von Logfiles dieser Art verschlossen bleibt.
Wer sich wann angemeldet hat, sehe ich im Ereignisprotokoll.
Wenn das Laufwerks-/Druckermapping oder sonstwas nicht funktioniert, erfahre ich das lange bevor ich das Log gelesen habe.
FOR_APPEND meint zum Anfügen, aber das muss ich dir sicher nicht erklären
Wenn du ForAppending einsetzt musst du ihm vorher den Wert 8 zuweisen, also
Const ForReading = 1, ForWriting = 2, ForAppending = 8
DiesIstEinText >> LogFile.log
@gemini
Thx für die Erklärung und Du hast natürlich recht - hatte ich überlesen mit dem "> in ein %MACHINENAME%.log auf \\zbw2ksv01\laufwerke"
Zum Sinn oder Unsinn von Logfiles könnten wir sicherlich auch einen eigenen lustigen Thread aufmachen.
Habe auch schon mal -wahrscheinlich nicht als einziger hier im Forum- LogFiles auf Platten gefunden, die für die meisten gängigen Editoren eine echte Herausforderung sind (>64 MByte bis hin zu einer 1,2 GigaByte *.log-Datei, deren Dateieigner seit 1 Jahr nicht mehr im Unternehmen war)
Mein Lieblings-Logverzeichnis ist auch /dev/null.
Thx für die Erklärung und Du hast natürlich recht - hatte ich überlesen mit dem "> in ein %MACHINENAME%.log auf \\zbw2ksv01\laufwerke"
Zum Sinn oder Unsinn von Logfiles könnten wir sicherlich auch einen eigenen lustigen Thread aufmachen.
Habe auch schon mal -wahrscheinlich nicht als einziger hier im Forum- LogFiles auf Platten gefunden, die für die meisten gängigen Editoren eine echte Herausforderung sind (>64 MByte bis hin zu einer 1,2 GigaByte *.log-Datei, deren Dateieigner seit 1 Jahr nicht mehr im Unternehmen war)
Mein Lieblings-Logverzeichnis ist auch /dev/null.
@Biber
Na, mit nem 1,2 GB Log hast auf jeden Fall was zu lesen für lange Winterabende
@FaBMiN
Gehört zwar nicht zum Thread, aber Gratulation zu deinem sehr gelungenen RIS-Tut.
Microsoft Windows XP Service Pack 2 Unattended Installation RIS
Habs erst jetzt gesehen und gleich mal gebookmarkt.
Na, mit nem 1,2 GB Log hast auf jeden Fall was zu lesen für lange Winterabende
@FaBMiN
Gehört zwar nicht zum Thread, aber Gratulation zu deinem sehr gelungenen RIS-Tut.
Microsoft Windows XP Service Pack 2 Unattended Installation RIS
Habs erst jetzt gesehen und gleich mal gebookmarkt.
@FaBMiN
Zwei Dinge würde ich noch ändern:
1) Keine Variable verschwenden für den Zeilenumbruch. Da gibt es schon die vordefinierte vbCRLF .
2) Die Abschlussmeldung ändern von
ALT: "Dieses Fenster schließt sich in 10 Sekunden automatisch."
"Wir wünschen noch einen schönen Arbeitstag"
auf
NEU: "Mein Tagewerk ist in 10 Sekunden vollbracht.."
"Du hast noch fast 10 Stunden Arbeitstag vor Dir. Viel Spaß"
Stressarmen Wochenbeginn allen Admins und Adminen
Frank / der Biber aus Bremen
Zwei Dinge würde ich noch ändern:
1) Keine Variable verschwenden für den Zeilenumbruch. Da gibt es schon die vordefinierte vbCRLF .
2) Die Abschlussmeldung ändern von
ALT: "Dieses Fenster schließt sich in 10 Sekunden automatisch."
"Wir wünschen noch einen schönen Arbeitstag"
auf
NEU: "Mein Tagewerk ist in 10 Sekunden vollbracht.."
"Du hast noch fast 10 Stunden Arbeitstag vor Dir. Viel Spaß"
Stressarmen Wochenbeginn allen Admins und Adminen
Frank / der Biber aus Bremen