Am Server anmelden-Drucker auslesen-für jeden Server eine txt- Datei erstellen- kleiner Fehler im Skript
Hallo zusammen,
ich möchte, dass das Skript, in einer Textdatei angegebenen Server, durchläuft und dort jeweils nach installierten Drucker schaut und diese in jeweils eine Text-Datei aufschreibt.
Es klappt schon ganz viel, ich habe nur das Problem, dass im Moment nur eine Textdatei erstellt wird egal für wie viele Server. In dieser Ergebnis-Textdatei stehen dann auch lediglich die Drucker von einem Server. Alle anderen Server in der tssserver-Datei werden einfach vergessen - weiß jemand was ich falsch gemacht habe ?
Zum Verständnis:
In der Datei: tssserver.txt stehen alle Server von denen ich die installierten Drucker auslesen möchte
und die Datei: "C:\druckerliste_" & strServer &".txt" soll für jeden Server seperat erstellt werden.
Danke schonmal.
Hier mal mein Skript: (Ich hoffe, es ist verständlich)
ich möchte, dass das Skript, in einer Textdatei angegebenen Server, durchläuft und dort jeweils nach installierten Drucker schaut und diese in jeweils eine Text-Datei aufschreibt.
Es klappt schon ganz viel, ich habe nur das Problem, dass im Moment nur eine Textdatei erstellt wird egal für wie viele Server. In dieser Ergebnis-Textdatei stehen dann auch lediglich die Drucker von einem Server. Alle anderen Server in der tssserver-Datei werden einfach vergessen - weiß jemand was ich falsch gemacht habe ?
Zum Verständnis:
In der Datei: tssserver.txt stehen alle Server von denen ich die installierten Drucker auslesen möchte
und die Datei: "C:\druckerliste_" & strServer &".txt" soll für jeden Server seperat erstellt werden.
Danke schonmal.
Hier mal mein Skript: (Ich hoffe, es ist verständlich)
'1. Schritt: An den Servern anmelden (Server1, Server2 usw.)'
Const WbemAuthenticationLevelPktPrivacy = 6
Set objWbemLocator = CreateObject("WbemScripting.SWbemLocator")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set oArg = wscript.arguments
strNamespace = "root\cimv2"
'--------Datei einlesen und in ein Array schreiben--------'
Set fso = CreateObject("Scripting.FileSystemObject")
Set oFile = fso.OpenTextFile("C:\tssserver.txt")
i=0
' ---------Erstmal zählen wieviele Einträge----------
while not oFile.AtEndOfStream
i=i+1
oFile.ReadLine
Wend
oFile.Close
' Array definieren
REDIM arrServer(i)
Set oFile = fso.OpenTextFile("C:\tssserver.txt")
i=0
' Jetzt Werte ins Array übernehmen
while not oFile.AtEndOfStream
arrServer(i)=oFile.ReadLine
i=i+1
Wend
servername =0
servernummer =0
servernummerT =0
'--------Servernamen befinden sich nun im Array--------
'-------Für jeden Server eine extra datei anlegen ! '
'--------------------------------------------Schleifen- ANFANG-------------
For Each strServer In arrServer
ifertig = "False"
i2fertig = "False"
If isOnline(strServer) Then
'--------------------------------------------Username und Passwort---------------------------------------------------'
strUser = "domäne\admin"
strPassword = "PW"
'--------------------------------------------Einstellung Ende-------------------------------------------------------'
'--------------------------------------------Am Server anmelden-------------------------------------------------------'
Set objWMI = objwbemLocator.ConnectServer _
(strServer, strNamespace, strUser, strPassword)
objWMI.Security_.authenticationLevel = WbemAuthenticationLevelPktPrivacy
'-------------------------Hier muss die Abfrage kommen---------------------------------------------------------------'
'Set objWMIService = GetObject("winmgmts:\\domäne"& strServer &"\root\cimv2")
Set colItems = objWMI.ExecQuery("Select * from Win32_Printer",,48)
Set Ausgabedatei = objFSO.CreateTextFile("C:\druckerliste_" & strServer &".txt",1)
For Each objItem in colItems
Ausgabedatei.WriteLine "Servername: " & strServer
Ausgabedatei.WriteLine "Drucker: " & objItem.Name
Ausgabedatei.WriteLine "Model und Kommentar: " & objItem.Comment
Ausgabedatei.WriteLine "DriverName: " & objItem.DriverName
Ausgabedatei.WriteLine "-----------------------------------------"
Next
servername= servername +1
servernummer = servernummer +1
End If
Next
oFile.Close
'
'--------------------------------------------Schleifen- ENDE-------------
MsgBox "Fertig!", Abgeschlossen, vbInfo
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 155158
Url: https://administrator.de/contentid/155158
Ausgedruckt am: 05.11.2024 um 14:11 Uhr
6 Kommentare
Neuester Kommentar
Hallo Azubi1452!
Ersetze mal die ohnehin unnötigen Zeilen 62 und 63 durch
Ansonsten noch eine Anmerkung:
Das Einlesen der Servernamen in ein Array (Zeilen 11 - 26) ließe sich auch etwas knapper formulieren:
Grüße
bastla
Ersetze mal die ohnehin unnötigen Zeilen 62 und 63 durch
Ausgabedatei.Close
Das Einlesen der Servernamen in ein Array (Zeilen 11 - 26) ließe sich auch etwas knapper formulieren:
arrServer = Split(fso.OpenTextFile("C:\tssserver.txt").ReadAll, vbCrLf)
bastla
Hallo Azubi1452!
Bei ActiveXperts findest Du eine Zusammenfassung diverser Scripts (auch) aus dem technet-Script Center ...
Grüße
bastla
Bei ActiveXperts findest Du eine Zusammenfassung diverser Scripts (auch) aus dem technet-Script Center ...
Grüße
bastla