Fügen Sie einen Netzwerkdrucker mit dem Befehl /Powershell hinzu, nachdem Sie ihn von einem Computer auf einen anderen exportiert haben (Windows 10/11).

Fügen Sie einen Netzwerkdrucker mit dem Befehl /Powershell hinzu, nachdem Sie ihn von einem Computer auf einen anderen exportiert haben (Windows 10/11).

ZIEL :So exportieren Sie einen Netzwerkdrucker von einem Windows 10-Computer in eine Ausgabedatei und importieren ihn mithilfe dieser Ausgabedatei auf einen anderen Windows 10-Computer im selben Netzwerk.

Forschungsarbeit:

Der folgende Powershell-Befehl zeigt dieZugeordnete Druckerfür einen Benutzer:

Cmdlet 1)

Get-WMIObject Win32_Printer -ComputerName $env:COMPUTERNAME | where{$_.Name -like “*\\*”} | select sharename,name 

NOTIZ: Der obige Befehl zeigt nicht dieFahrernameDies ist ein kritischer Parameter für den nächsten Befehl

Der Befehl, den ich zum Importieren des Netzwerkdruckers verwenden möchte:

Cmdlet 2)

Syntax:

rundll32 printui.dll,PrintUIEntry /Xs /n\SERVER\DRUCKERFREIGABENAMEFahrername"Lexmark C752 PS3"

Da ich den Treibernamen nicht hatte, habe ich trotzdem versucht, ihn auszuführen, da der Treiber bereits auf der zweiten Windows 10-Box installiert ist.

rundll32 printui.dll,PrintUIEntry /Xs /n"\tdr09\AlphaIT(prtq3) KONICA MINOLTA C550i"

Aber ich erhalte eine Fehlermeldung, nachdem ich den Befehl ausgeführt habe:

===========================================================================

[Fenstertitel] Drucker

[Hauptanweisung] Die Argumente sind ungültig.

[OK]

===========================================================================

Problem:

1)Das Cmdlet 1 bietet nicht dieFahrernamedaher schlägt Cmdlet 2 mit dem obigen Fehler fehl.

=======================================================================

Methode 2 Basierend auf dem Feedback von @Massimo

Ich habe versucht, den folgenden Befehl zu verwenden:

Drucker abrufen | wobei{$_.Name -like "\"} | Format-Tabelle -AutoSize Bildbeschreibung hier eingeben

Die Ausgabe sieht folgendermaßen aus:

Name Computername Typ Treibername Portname Shared Publishe d


\trq02\AXEIT(ptq2) KONICA MINOLTA C550i ptq02 Verbindung KONICA MINOLTA C650iSeries 10.246.0.173 True F...

Ich kann es in eine Textdatei weiterleiten, aber wie kann ich PowerShell dazu bringen, diese Datei zu lesen und den Drucker hinzuzufügen?

NOTIZ:Wenn ich den folgenden Befehl manuell ausführe, funktioniert das Hinzufügen des Druckers einwandfrei.

Drucker hinzufügen "\trq02\AXEIT(ptq2) KONICA MINOLTA C550i"

Antwort1

Warum beschäftigen Sie sich überhaupt mit WMI und rundll32?

Sie sollten die nativen PowerShell-Befehle Get-Printerund verwenden Add-Printer.


Beispiel:

Verwenden Sie auf dem ersten Computer:

Get-Printer | where {$_.Type -eq 'Connection'} | Export-Csv -Path 'C:\Printers.csv'

Kopieren Sie die Datei auf den zweiten Computer und verwenden Sie:

$printers = Import-Csv -Path 'C:\Printers.csv'

foreach($printer in $printers)
{
    Add-Printer -ConnectionName ($printer.Name)
}

verwandte Informationen