So installieren Sie alle Drucker (mit Platzhalter) vom PrintServer

So installieren Sie alle Drucker (mit Platzhalter) vom PrintServer

Gibt es eine schnelle und einfache Möglichkeit, alle Drucker eines Druckservers über eine Konsole wie PowerShell zu installieren?

„Add-Printer“ von PowerShell unterstützt keine Platzhalter.

Ich habe es mit Get-Printer und ForEach versucht

Get-Printer -ComputerName print-server | Select  name > Printers.txt

ForEach ($Printer in Get-Content "Printers.txt")
{
Add-Printer -ConnectionName \\print-server\"$Printer"
}

Ich bekomme aber nur die Meldung, dass der Servername nicht erreichbar oder ungültig ist. Im Powershell ist zu sehen, dass $Printer nicht durch den Druckernamen ersetzt wurde. Aber wenn ich Write-Host $Printer verwende, funktioniert das.

Antwort1

Anstatt die Drucker an eine Textdatei weiterzuleiten und dann zu versuchen, sie zu verwenden, indem Sie sie als einfache Zeichenfolgen wieder einlesen, verwenden Sie die Eigenschaften der von Get-Printer zurückgegebenen Objekte.

Z.B:

# Get list of printers from computer "print-server".
$Printers = Get-Printer -ComputerName print-server

# Iterate through the returned list of printers.
ForEach ($Printer in $Printers)
{
    # Check to see if the current printer is shared or not.
    If ($Printer.Shared) {
        # If it's shared, add it by using the print server name and printer name properties of the current printer object.
        Add-Printer -ConnectionName "\\$($Printer.ComputerName)\$($Printer.Name)"
    }
}

Antwort2

Damit das Skript richtig funktioniert, muss einem Drucker auf dem ausgewählten Druckserver alle erforderlichen Berechtigungen hinzugefügt werden. Der betreffende Drucker (SelectPrinter) wird im Skript verwendet, um Sicherheitseinstellungen abzurufen.

(Get-Printer 'SelectPrinter' Full).PermissionSDDL | Out-File 'C:\PrinterSecurity.txt' | $perms = Get-Content 'C:\PrinterSecurity.txt' | Set-Printer '*' -PermissionSDDL $perms. 

Dadurch werden die Berechtigungen allen vorhandenen Druckern auf dem betreffenden Druckserver hinzugefügt.

Führen Sie den Befehl lokal vom Druckserver aus.  

verwandte Informationen