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, 20063 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
Batch & Shell

VBScript String als hexadezimale Zahl ausgeben

Frage von citroendsvierBatch & Shell5 Kommentare

Hallo zusammen, ich suche eine Möglichkeit, eine Variable aus VBScript als hexadezimale Zahl auszugeben. Bevor ich das ganze manuell ...

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 ...

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
Drucker und Scanner
HP-MF-Drucker per Fax angreifbsr
Information von Lochkartenstanzer vor 1 TagDrucker und Scanner3 Kommentare

Endlich eine sinnvolle Verwendung für Faxe: Damit kann man offensichtlich den Drucker übernehmen. lks

Router & Routing

Das pfSense Buch ist jetzt für jeden kostenlos zu beziehen

Tipp von magicteddy vor 2 TagenRouter & Routing2 Kommentare

Bisher war das Buch nur für zahlende Unterstützer verfügbar, jetzt steht für Jedermann kostenlos zur Verfügung. Siehe auch The ...

Firewall

Möglicherweise neue Sicherheitslücke in Mikrotik-Firmware

Information von LordGurke vor 4 TagenFirewall3 Kommentare

Hallo zusammen, vor ein paar Monaten gab es ja bereits eine Sicherheitslücke in der Firmware von Mikrotik-Routern, über welche ...

Erkennung und -Abwehr
Rechner hacken mit Cortana, auch Remote
Information von Lochkartenstanzer vor 5 TagenErkennung und -Abwehr3 Kommentare

heise berichtet über den Vortrag von der Blackhat Open Sesame: Picking Locks with Cortana. Einige Fehler sind schon gefixt, ...

Heiß diskutierte Inhalte
Windows 10
WIN 10 1803 - LTE Stick kein Internetzugriff
Frage von killtecWindows 1023 Kommentare

Hallo, ich habe mit einem Windows 10 1803 Probleme mit einem LTE-Stick. Das gleiche Problem ist bei mehreren Rechnern ...

CPU, RAM, Mainboards
Xeon E5620: noch schnell genug?
Frage von ahussainCPU, RAM, Mainboards19 Kommentare

Hallo allerseits, ich habe die Möglichkeit, aus Restbeständen einen Tower mit Xeon E5620 CPU und 24 GB RAM zu ...

Datenbanken
MySQL Datenbank Import Aufgabe für mehrere .csv dateien
Frage von Marcel1989Datenbanken18 Kommentare

Hi, ich komm nicht weiter. Ich hab auf einem Windows Server 2012 r2 eine MariaDB/MySQL laufen. Nun soll diese ...

Peripheriegeräte
Steckdose(nleiste) mit Schwellwert für off und mit externem Taster
Frage von ahstaxPeripheriegeräte16 Kommentare

Hallo, ich suche eine Steckdose oder Steckdosenleiste mit externem Taster und Schwellwerterkennung. Zu realisieren ist folgendes: Ein PC soll ...