voner1502
Goto Top

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?

'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

Content-Key: 288818

Url: https://administrator.de/contentid/288818

Printed on: April 16, 2024 at 11:04 o'clock

Mitglied: 114757
114757 Nov 19, 2015 updated at 15:24:44 (UTC)
Goto Top
'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