Hilfe bei VB Skript
Hallo zusammen. Ich habe ein Skript für die Übernahme von Druckern vom alten Servern zum neuen Server bekommen. Diese muss ich jetzt genauer beschreiben. Ich bin jedoch nicht so ein Experte bei VB Skripte und würde mich über eure Hilfe freuen. Kann mir da jemand helfen?
Grüße
'Definition des alten und neuen Servers
strOldServer = "AlterServer"
strNewServer = "NeuerServer"
'
strComputer = "Rechner001"
Set WSHNetwork = CreateObject("WScript.Network")
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colInstalledPrinters = objWMIService.ExecQuery("Select * from Win32_Printer")
'
strOldServer = prepServer(strOldServer)
strNewServer = prepServer(strNewServer)
'
For Each objPrinter in colInstalledPrinters
strName = objPrinter.Name
iPrinterLocation = InStr(UCase(objPrinter.Name),UCase(strOldServer))
If iPrinterLocation > 0 then
strPrinter = strNewServer & Right(strName, Len(strName) - Len(strOldServer))
objPrinter.Delete_
WSHNetwork.AddWindowsPrinterConnection strPrinter
If objPrinter.Default = True Then
WSHNetwork.SetDefaultPrinter strPrinter
End If
End If
Next
'
Function prepServer(strServer)
If Left(strServer, 2) <> "\\" then
strServer = "\\" & strServer
End If
If Right(strServer, 1) <> "\" then
strServer = strServer & "\"
End If
prepServer = strServer
End Function
Grüße
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 288818
Url: https://administrator.de/forum/hilfe-bei-vb-skript-288818.html
Ausgedruckt am: 22.04.2025 um 20:04 Uhr
1 Kommentar

'Definition des alten und neuen Servers
strOldServer = "AlterServer"
strNewServer = "NeuerServer"
' Computer auf dem die Drucker ausgetauscht werden
strComputer = "Rechner001"
' COM Objekt erstellen was die Funktion zum Verbinden mit einem Drucker bereitstellt
Set WSHNetwork = CreateObject("WScript.Network")
' Mit dem WMI-Dienst auf dem oben a. Computer verbinden
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
' Alle installierten Drucker via WMI aus der Klasse Win32_Printer abfragen
Set colInstalledPrinters = objWMIService.ExecQuery("Select * from Win32_Printer")
' Übergebene Servernamen mit der Funktion **prepServer** in diesem Skript auf führende Backslashes und einem abschließenden Backslash überprüfen und bei nicht vorhandensein ergänzen
strOldServer = prepServer(strOldServer)
strNewServer = prepServer(strNewServer)
' Für jeden Drucker in der Liste der Drucker auf dem o.a. Computer
For Each objPrinter in colInstalledPrinters
' hole den Druckernamen
strName = objPrinter.Name
' Überprüfe ob im Druckernamen der alte Servername enthalten ist oder nicht
iPrinterLocation = InStr(UCase(objPrinter.Name),UCase(strOldServer))
' ist der alte Servername enthalten dann ...
If iPrinterLocation > 0 then
' Baue den neuen Namen des Druckers mit dem neuen Servernamen zusammen
strPrinter = strNewServer & Right(strName, Len(strName) - Len(strOldServer))
' Löscht den Drucker um Ihn dann gleich mit dem neuen Servernamen erneut zu verbinden
objPrinter.Delete_
WSHNetwork.AddWindowsPrinterConnection strPrinter
' war der gelöschte Drucker der Standarddrucker, setze den neu verbundenen ebenfalls wieder als Standard.
If objPrinter.Default = True Then
WSHNetwork.SetDefaultPrinter strPrinter
End If
End If
Next
' Funktion um eventuell fehlende Usereingaben bei den Servernamen zu ergänzen
Function prepServer(strServer)
If Left(strServer, 2) <> "\\" then
strServer = "\\" & strServer
End If
If Right(strServer, 1) <> "\" then
strServer = strServer & "\"
End If
prepServer = strServer
End Function