Netzwerkdrucker via vbs-Skript löschen - Skript veraltet bzw. fehlerhaft?
Hallo zusammen,
wir haben folgendes Problem: Unsere Nutzer bekommen je nachdem in welchen Raum sie sich befinden, immer den Drucker des entsprechenden Raums verbunden. Zuvor werden alle vorhandenen Netzwerkdrucker gelöscht ( Siehe Skript). Meldet sich ein Benutzer z.B. im Raum 1 an, bekommt dieser den Drucker1 verbunden. Meldet sich der Benutzer in Raum2 an, bekommt dieser den Drucker2 verbunden, usw. Seit der Umstellung auf Server 2012 und Windows 8, tritt bei uns der kuriose Fall auf, dass die Drucker vorher nicht gelöscht werden, was unter Windows 7 und Server 2008 R2 einwandfrei funktioniert hatte. Das heißt, wenn die Benutzer den Raum wechseln, werden ständig die alten Drucker mit geführt, die für diesen Raum nicht gültig sind. Wechselt ein Benutzer am Tag den Raum mehrmals, was uns oft vorkommt, behält der Benutzer all seine alten Drucker. Kennt jemand das Problem? Wie kann man das lösen?
Sub RemoveAllNetworkPrinters()
Dim oWshNetwork
Dim oPrinters
Dim sPrinterName
Set oWshNetwork = WScript.CreateObject("WScript.Network")
on error resume next
oPrinters = EnumNetworkPrinterConnections()
For Each sPrinterName in oPrinters
Call oWshNetwork.RemovePrinterConnection(sPrinterName, true, true)
Next
on error goto 0
End Sub
wir haben folgendes Problem: Unsere Nutzer bekommen je nachdem in welchen Raum sie sich befinden, immer den Drucker des entsprechenden Raums verbunden. Zuvor werden alle vorhandenen Netzwerkdrucker gelöscht ( Siehe Skript). Meldet sich ein Benutzer z.B. im Raum 1 an, bekommt dieser den Drucker1 verbunden. Meldet sich der Benutzer in Raum2 an, bekommt dieser den Drucker2 verbunden, usw. Seit der Umstellung auf Server 2012 und Windows 8, tritt bei uns der kuriose Fall auf, dass die Drucker vorher nicht gelöscht werden, was unter Windows 7 und Server 2008 R2 einwandfrei funktioniert hatte. Das heißt, wenn die Benutzer den Raum wechseln, werden ständig die alten Drucker mit geführt, die für diesen Raum nicht gültig sind. Wechselt ein Benutzer am Tag den Raum mehrmals, was uns oft vorkommt, behält der Benutzer all seine alten Drucker. Kennt jemand das Problem? Wie kann man das lösen?
Sub RemoveAllNetworkPrinters()
Dim oWshNetwork
Dim oPrinters
Dim sPrinterName
Set oWshNetwork = WScript.CreateObject("WScript.Network")
on error resume next
oPrinters = EnumNetworkPrinterConnections()
For Each sPrinterName in oPrinters
Call oWshNetwork.RemovePrinterConnection(sPrinterName, true, true)
Next
on error goto 0
End Sub
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 216899
Url: https://administrator.de/forum/netzwerkdrucker-via-vbs-skript-loeschen-skript-veraltet-bzw-fehlerhaft-216899.html
Ausgedruckt am: 15.04.2025 um 10:04 Uhr
2 Kommentare
Neuester Kommentar
Hallo Daniel1982MH und willkommen im Forum!
Versuch es mit der folgenden Schreibweise:
Grüße
bastla
Versuch es mit der folgenden Schreibweise:
Set oWshNetwork = WScript.CreateObject("WScript.Network")
On Error Resume Next
For i = 0 To oWshNetwork.EnumPrinterConnections.Count - 1
oWshNetwork.RemovePrinterConnection oWshNetwork.EnumPrinterConnections.Item(i)
Next
On Error Goto 0
bastla