Drucker entfernen in VB-Script
Hallo ich habe eine kleine Frage bzgl. unseres Anmeldeskriptes.
Ich habe ein IT-netzwerk an einer Uni übernommen.
Ich arbeite zur Zeit daran, unsere alten Drucker, bzw. auch neuen Drucker auf einen anderen Print-Server um zu ziehen.
Die Anmeldung läuft bei uns über ein VB-Script, welches die Drucker zuteilt.
Dadurch, dass wir jetzt einen neuen Print-Server haben, müssten die alten Drucker auf den jeweiligen Clients bei der Anmeldung gelöscht werden.
Frage:
Ich habe einen Code-Schnippsel gefunden, der in unserem VB-Script schon drinsteht, aber nicht funktioniert.
' Loeschen der alten Drucker
'###########################
'Set oPrinters = WshNetwork.EnumPrinterConnections
'For i = 0 to oPrinters.Count - 1 Step 2
' if Left(oPrinters.Item(i+1),10) = "\\SrvApp01" Then
' 'WScript.Echo "i: "& i & " - Port " & wshNetwork.EnumPrinterConnections.Item(i) & " = " & wshNetwork.EnumPrinterConnections.Item(i+1)
'
' wshNetwork.RemovePrinterConnection oPrinters.Item(i+1)
' End If
' Next
Ich habe ihn schonmal aktiviert und ausprobiert, aber er funktioniert so nicht.
Daten des alten Print-Servers: SRVPRT01
Daten des neuen Print-Servers: IS-PRT-SRV
Leider gibt es auf den Clients halt immernoch die Karteileichen von dem alten Print-Server.
Könnt ihr mir sagen, wie das Script aussehen muss, damit mein Vorhaben gelingt?
Ich habe ein IT-netzwerk an einer Uni übernommen.
Ich arbeite zur Zeit daran, unsere alten Drucker, bzw. auch neuen Drucker auf einen anderen Print-Server um zu ziehen.
Die Anmeldung läuft bei uns über ein VB-Script, welches die Drucker zuteilt.
Dadurch, dass wir jetzt einen neuen Print-Server haben, müssten die alten Drucker auf den jeweiligen Clients bei der Anmeldung gelöscht werden.
Frage:
Ich habe einen Code-Schnippsel gefunden, der in unserem VB-Script schon drinsteht, aber nicht funktioniert.
' Loeschen der alten Drucker
'###########################
'Set oPrinters = WshNetwork.EnumPrinterConnections
'For i = 0 to oPrinters.Count - 1 Step 2
' if Left(oPrinters.Item(i+1),10) = "\\SrvApp01" Then
' 'WScript.Echo "i: "& i & " - Port " & wshNetwork.EnumPrinterConnections.Item(i) & " = " & wshNetwork.EnumPrinterConnections.Item(i+1)
'
' wshNetwork.RemovePrinterConnection oPrinters.Item(i+1)
' End If
' Next
Ich habe ihn schonmal aktiviert und ausprobiert, aber er funktioniert so nicht.
Daten des alten Print-Servers: SRVPRT01
Daten des neuen Print-Servers: IS-PRT-SRV
Leider gibt es auf den Clients halt immernoch die Karteileichen von dem alten Print-Server.
Könnt ihr mir sagen, wie das Script aussehen muss, damit mein Vorhaben gelingt?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 352944
Url: https://administrator.de/contentid/352944
Ausgedruckt am: 22.11.2024 um 09:11 Uhr
2 Kommentare
Neuester Kommentar
Hi,
Im Ernst: Kommt eine Fehlermeldung? (ggf. "On Error ..." rausnehmen)
E.
Ich habe ihn schonmal aktiviert und ausprobiert, aber er funktioniert so nicht.
Das ist der altbekannte Fehler. Schon mal nach "funktioniert so nicht" bei Google gesucht?Im Ernst: Kommt eine Fehlermeldung? (ggf. "On Error ..." rausnehmen)
' Loeschen der alten Drucker
'###########################
'Set oPrinters = WshNetwork.EnumPrinterConnections
'For i = 0 to oPrinters.Count - 1 Step 2
' if Left(oPrinters.Item(i+1),10) = "\\SrvApp01" Then
' 'WScript.Echo "i: "& i & " - Port " & wshNetwork.EnumPrinterConnections.Item(i) & " = " & wshNetwork.EnumPrinterConnections.Item(i+1)
'
' wshNetwork.RemovePrinterConnection oPrinters.Item(i+1)
' End If
' Next
Ein einfacher String-Vergleich ist "case sensitv". Also mal versuchen:'###########################
'Set oPrinters = WshNetwork.EnumPrinterConnections
'For i = 0 to oPrinters.Count - 1 Step 2
' if Left(oPrinters.Item(i+1),10) = "\\SrvApp01" Then
' 'WScript.Echo "i: "& i & " - Port " & wshNetwork.EnumPrinterConnections.Item(i) & " = " & wshNetwork.EnumPrinterConnections.Item(i+1)
'
' wshNetwork.RemovePrinterConnection oPrinters.Item(i+1)
' End If
' Next
...
if Lcase(Left(oPrinters.Item(i+1),10)) = Lcase("\\SrvApp01") Then
...
E.