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?
Please also mark the comments that contributed to the solution of the article
Content-Key: 352944
Url: https://administrator.de/contentid/352944
Printed on: April 26, 2024 at 23:04 o'clock
2 Comments
Latest comment
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.