Top-Themen

Aktuelle Themen (A bis Z)

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

Mitglied: FaBMiN

FaBMiN (Level 2) - Jetzt verbinden

09.09.2005, aktualisiert 17.10.2012, 20277 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.
https://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 ..
Ähnliche Inhalte
VB for Applications

Mehrere Spalten Durchsuchen und Ergebnisse in neuer Tabelle Ausgeben

Frage von Mr.GreenVB for Applications3 Kommentare

Hallo liebe Community. Ich würde gerne mit einer VBA mehrere Spalten ("A:W") in einer Tabelle nach einem oder mehreren ...

VB for Applications

VbScript: Textdatei nach Suchbegriff nur die nächsten drei Zeilen ausgeben

gelöst Frage von Host-essVB for Applications10 Kommentare

Moin, Moin, ich bin neu hier im Forum und auch Neuling was Vbscript betrifft. Vielleicht kann mir ja jemand ...

Batch & Shell

Robocopy Log - gelöschte Dateien nicht in Logfile ausgeben

Frage von DirmhirnBatch & Shell3 Kommentare

Hi, nutze Robocopy um verschiedene Ordner auf unserem Backup Server zu "sammeln". mit der Option /MIR Problem ist aber, ...

Batch & Shell

Remote auf einem Rechner CMD-Befehl ausgeben und in ein Log schreiben

gelöst Frage von SyncedBatch & Shell1 Kommentar

Hallo, Was ich will: Ein Skript das sich bei einem Rechner in meiner Domäne anmeldet, einen CMD-Befehl eingibt und ...

Neue Wissensbeiträge
Microsoft

Neuigkeiten zu Server und Office 365 was läuft mit was und was nicht

Tipp von AlFalcone vor 1 TagMicrosoft3 Kommentare

Server Betriebssysteme auf dem die verschiedenen Offices nicht supported sind: • Office 365 ist und wird nicht supported auf Windows ...

Speicherkarten

Neuer Speicherkartentyp - zunächst nur für Huawei-Smartphones (künftig auch für Notebooks u. Tablets?)

Tipp von VGem-e vor 1 TagSpeicherkarten1 Kommentar

Servus, als ob das "Chaos" i.S. Speicherkarten noch nicht groß genug wäre?! Evtl. kommt dieser neue Kartentyp bald auch ...

Sicherheit

Diverse D-Link-Router durch drei Schwachstellen kompromittierbar

Information von kgborn vor 1 TagSicherheit

Hat jemand D-Link-Router in Verwendung? Einige Modelle sind sicherheitstechnisch offen wie ein Scheunentor. Äußerst unschöne Sache, aber nichts neues ...

Hardware

100.000 Mikrotik-Router ungefragt von Hacker abgesichert

Information von 7Gizmo7 vor 2 TagenHardware1 Kommentar

Hallo zusammen, da hier ja öfters mal von Mikrotik gesprochen wird. Trotz Updates klafft eine Sicherheitslücke in Hundertausenden Mikrotik-Routern. ...

Heiß diskutierte Inhalte
Sicherheitsgrundlagen
EuGH-Urteil - Internetanschluss für die ganze Familie - Filesharer haften trotzdem
Frage von StefanKittelSicherheitsgrundlagen39 Kommentare

Hallo, In diesem Artikel geht es darum, dass Jemand aus der Familie ein Hörbuch illegal hochgeladen hat. Der Vater ...

Apple
MacBook Pro 2018 mit 8 GB oder 16 GB
Frage von SysAdm81Apple25 Kommentare

Hallo zusammen, ich steh vor der Überlegung mir ein MacBook Pro 13 (2018) zu kaufen. Bzgl. SSD habe ich ...

Off Topic
SysAdmin im öffentlichen Dienst - jemand Erfahrungen?
Frage von JohnDorianOff Topic19 Kommentare

Hallo zusammen, hat jemand Erfahrung wie es so ist als SysAdmin im öffentlichen Dienst (Landkreis) im Südwesten der Republik ...

Datenbanken
MS SQL DB-Daten archivieren?
gelöst Frage von SchelinhoDatenbanken16 Kommentare

Hallo zusammen! Ich habe eine Anwendung, welche MSSQL (SQL Server 2014 SP2) nutzt. Auf der DB-Instanz laufen diverse Datenbanken. ...