Hey,

wir haben einen neuen PrintServer. Wie werden jetzt die Drucker auf den Clients neu verbunden?

View source
  1. $strNewPrintserver = "FQDN von deinem Printserver"
  2.  
  3. # Prüft, ob das Skript bei diesem Benutzer bereits gelaufen ist
  4. If (-not (Test-Path "$env:TEMP\$env:USERNAME-printers.txt")) {
  5.  
  6. Write-Host "Druckermigration wird gestartet..."
  7.  
  8. # Alle Drucker auslesen, die als Netzwerkdrucker markiert sind
  9. Get-WMIObject Win32_Printer | where{$_.network -eq "true"} | Select ShareName, Default, Name | ForEach {
  10.  
  11. # Ausgabe Freigabename
  12. $_.ShareName
  13.  
  14. # Ausgabe Standarddrucker
  15. $_.Default
  16.  
  17. # Drucker löschen
  18. (New-Object -ComObject WScript.Network).RemovePrinterConnection($_.Name)
  19.  
  20. # Neue Drucker anlegen
  21. $printer = [WMIClass]"\\.\root\cimv2:Win32_Printer"
  22. $printer.AddPrinterConnection("\\" + $strNewPrintserver + "\" + $_.Sharename)
  23.  
  24. # Standarddrucker einrichten
  25. if($_.Default -eq $true) {
  26.  
  27. $printer = Get-WmiObject Win32_Printer | ? { $_.name -like "\\" + $strNewPrintserver +"\" + $_.Sharename }
  28. $printer.SetDefaultPrinter()
  29. }
  30. }
  31.  
  32. # Ausgabe
  33. write-host "Fertig" -ForegroundColor Green | Out-File "$env:TEMP\$env:USERNAME-printers.txt"
  34. }
  35.