Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

VBScript - Ergebniss in .log ausgeben

Frage Microsoft

Mitglied: FaBMiN

FaBMiN (Level 2) - Jetzt verbinden

09.09.2005, aktualisiert 17.10.2012, 18777 Aufrufe, 11 Kommentare

Ich brauche einen Befehl, der die Ergebnisse des VBScipt

<font class=code>
'* 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
</font>

in ein %MACHINENAME%.log auf \\zbw2ksv01\laufwerke schreibt.
Am liebsten wäre mit gleich, das gemoddete VBScipt.
Danke schonmal
Mitglied: gemini
09.09.2005 um 17:51 Uhr
01.
strLog = "\\zbw2ksv01\laufwerke\" & strComputerName & ".log" 
02.
Set objFSO = CreateObject("Scripting.FileSystemObject") 
03.
Set objLog = objFSO.CreateTextFile(strLog, True) 
04.
objLog.Write strMSG  
05.
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.
Bitte warten ..
Mitglied: gemini
09.09.2005 um 18:13 Uhr
Das hat mir jetzt keine Ruhe gelassen.
Logfiles, die überschrieben werden sind es nicht Wert überhaupt geschrieben zu werden.

01.
Function GenLogfileName 
02.
strLog = "\\zbw2ksv01\laufwerke\" 
03.
strExt = ".log" 
04.
arrDate = Split(FormatDateTime(Date, 2),".") 
05.
strLogFile = strComputerName & "_" & arrDate(2) & "." & arrDate(1) & "." & arrDate(0) 
06.
strTemp = strLogFile 
07.
For i = 001 To 999 
08.
    If objFSO.FileExists(strLog & strLogFile & strExt) Then 
09.
        strLogFile = strTemp & "_" & i 
10.
    Else 
11.
        GenLogFileName = strLog & strLogFile & strExt 
12.
        Exit Function 
13.
    End If 
14.
Next 
15.
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.
Bitte warten ..
Mitglied: Biber
09.09.2005 um 19:07 Uhr
@gemini

Das hat mir jetzt keine Ruhe gelassen, Logfiles, die überschrieben werden sind
es nicht Wert überhaupt geschrieben zu werden.
Seh ich auch so.

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:
01.
Function GenLogfile4AllName  
02.
strLogPath = "\\zbw2ksv01\laufwerke\"  
03.
strExt = ".log"  
04.
arrDate = Split(FormatDateTime(Date, 2),".")  
05.
strLogFile =  arrDate(2) & "-" & arrDate(1) & "-" & arrDate(0)  
06.
GenLog4AllFileName = strLogPath & strLogFile & strExt  
07.
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
01.
  
02.
... 
03.
If !objFSO.FileExists(strTodaysLogfile) Then 
04.
   Set  objLog = CreateTextFile( strTodaysLogFile, True) 
05.
else 
06.
   Set objLog = OpenTextFile( strTodaysLogFile,,FOR_APPEND) ' oder wie immer das FOR_APPEND in *vbs heißen mag 
07.
End If 
08.
objLog.Write 
09.
objLog.Close 
10.
..
Oder mach ich jetzt einen Denkfehler?
[Edit]
Ganz vergessen:
Schönes und baldiges Wochenende an alle!
Biber
[/Edit]
Bitte warten ..
Mitglied: gemini
09.09.2005 um 19:48 Uhr
@Biber
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
01.
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Die 8 macht nichts anderes als ans Ende der Datei zu schreiben, also in etwa
01.
DiesIstEinText >> LogFile.log
Bitte warten ..
Mitglied: Biber
10.09.2005 um 00:24 Uhr
@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.
Bitte warten ..
Mitglied: gemini
10.09.2005, aktualisiert 17.10.2012
@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.
http://www.administrator.de/wissen/microsoft-windows-xp-service-pack-2- ...
Habs erst jetzt gesehen und gleich mal gebookmarkt.
Bitte warten ..
Mitglied: FaBMiN
12.09.2005 um 07:44 Uhr
<font class=code>
'* Benötigte Deklarationen
Set MyFiles = CreateObject("Scripting.FileSystemObject")
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

If Not MyFiles.FileExists("\\zbw2ksv01\laufwerke\" & strComputerName & ".log") Then MyFiles.CreateTextFile("\\zbw2ksv01\laufwerke\"& strComputerName & ".log")

Set logfile = MyFiles.OpenTextFile("\\zbw2ksv01\laufwerke\" & strComputerName & ".log",8)

'* 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 = cRLF & "------------------" & CRLF & "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
logfile.write(strMsg)
End If
logfile.close
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
</font>


@gemini ...haste auch artig bewertet? ;)
Ich hab das jetzt mal so gelöst.Danke an alle eifrigen helfer
...gelogen - der Harry (Inti31) hats gelöst
Bitte warten ..
Mitglied: Inti31
12.09.2005 um 08:38 Uhr
...soso... - So hast DU das jetzt gelöst...

Gruß Inti31
Bitte warten ..
Mitglied: FaBMiN
12.09.2005 um 08:45 Uhr
habs verbessert ;) *auf Knien seinen Gott anbetend*
Danke :D
Bitte warten ..
Mitglied: Biber
12.09.2005 um 11:05 Uhr
@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
Bitte warten ..
Mitglied: FaBMiN
12.09.2005 um 11:10 Uhr
...lol
Es lacht grade eine ganze Abteilung mit Dir und mich hats vom stuhl gehauen ;=
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Entwicklung
gelöst Get ip from external txt file and use in vbscript (5)

Frage von thankusomuch zum Thema Entwicklung ...

Batch & Shell
gelöst Batch ausgabe zeilenweise stat spaltenweise ausgeben (4)

Frage von sugram zum Thema Batch & Shell ...

Windows Server
gelöst Event logs on system - In 24 hours more than 200,000 log events are generated (7)

Frage von Daywalker75 zum Thema Windows Server ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (17)

Frage von JayyyH zum Thema Switche und Hubs ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

DSL, VDSL
DSL-Signal bewerten (14)

Frage von SarekHL zum Thema DSL, VDSL ...