andre1979
Goto Top

Printserverumzug Clients mit Powershell umstellen

für einen Printserverumzug möchte ich per Powershell die Clients umstellen

Hallo,

ich habe einen neuen Printserver aufgesetzen und alle Netzwerkdrucker neu installiert.
Die Drucker haben alle den gleichen Freigabenamen wie auf dem alten Server.

Jetzt müssen nur noch alle Clients nachgezogen werden.
Ich wollte das mit Powershell lösen, es muss ja lediglich der SystemName des Druckers ersetzt werden.

Hätte jemand einen Lösungsansatz für mich?

Content-ID: 197162

Url: https://administrator.de/forum/printserverumzug-clients-mit-powershell-umstellen-197162.html

Ausgedruckt am: 23.12.2024 um 03:12 Uhr

ZiegenhardtM
ZiegenhardtM 17.01.2013 um 14:26:56 Uhr
Goto Top
Wie wäre es mit Hostnamen und IP-Nummer des alten übernehmen?
Andre1979
Andre1979 19.01.2013 aktualisiert um 16:51:04 Uhr
Goto Top
Wenn ich den Hostnamen und die IP Adresse des alten Servers übernehmen könnte , würde ich mir wohl kaum die Arbeit machen.....

Lösungsansatz bis jetzt:

$serveralt = "*-dom-*"  
#Drucker auflisten von Sandort1 und Standort2
$drucker = Get-WMIObject Win32_Printer | where {$_.SystemName -like $serveralt}

#Standart-Drucker bestimmen
$standartdruckeralt = $drucker | Where {$_.Default -like "True"}  

#nicht Standart-Drucker bestimmen
$druckeralt = $drucker | where {$_.Default -like "False"}  

$standartdruckerneu = $standartdruckeralt.DeviceID | Foreach {
    $_ -replace 'Serveralt1', 'ServerNeu1' `  
       -replace 'Serveralt2', 'ServerNeu2' `  
    }
$druckerneu = $druckeralt | Foreach {
    $_ -replace 'Serveralt1', 'ServerNeu1' `  
       -replace 'Serveralt2', 'ServerNeu2' `  
    }

#Alte Drucker entfernen
$drucker | foreach{$_.delete()}


$d = [WMIClass]“\\.\root\cimv2:Win32_Printer“

$standartdruckerneu | foreach{$d.AddDefaultPrinterConnection($_)}

$standartdruckerneu | foreach{$d.SetDefaultPrinter($_)}

$druckerneu | foreach{$d.AddPrinterConnection($_)}

So Weit so gut, nur funktioniert das Foreach bei "$druckerneu" nicht so wie bei "$standartdruckerneu".
Kann mir einer sagen, warum ich bei dem System.Array $druckeralt nicht nach der DeviceID filten kann wie bei $standartdruckeralt?
Andre1979
Andre1979 20.01.2013 um 16:02:58 Uhr
Goto Top
gelöst

$druckerneu = $druckeralt | %{$_.DeviceID} | Foreach {
Das bestimmen des Standartdruckers kann man sich auch sparen, da wenn der Standartdrucker gelöscht wurde, der erste neu installierte Drucker der Standartdrucker wird.
Also entfällt:
$standartdruckerneu | foreach{$d.SetDefaultPrinter($_)}