Möchte man als Admin seine Druckerrechte nicht immer einzeln pro Drucker setzen, so kann man diese mit diesem interaktiven Skript von einem auf andere Drucker kopieren.

$server = "druckservername"
if (!$server) {
write-warning "Kein Server gesetzt"
break
}
$Error.Clear()
$allPrinters = get-printer * -full -ComputerName $server
if($Error) {
write-error "Server konnte nicht ausgelesen werden"
break
}
write-host "Gewünschter Drucker dessen Rechte kopiert werden soll wählen"
$selectedPrinterSource = $allPrinters | Out-GridView -OutputMode Single -Title "Von welchem Drucker soll kopiert werden?"
if (!$selectedPrinterSource) {
write-warning "Kein Drucker gewählt"
break
}
write-host "Drucker auswählen in die die Rechte eingefügt werden sollen"
write-host -NoNewline "Soruce`t`tDestination`n$($selectedPrinterSource.ShareName) -> "
$selectedPrinterDestination = $allPrinters | Out-GridView -PassThru -Title "Auf welche Drucker sollen die Rechte übertragen werden?"
if (!$selectedPrinterDestination) {
write-host "`n" #Zeilenumbruch, damit die Warnung auch wirklich in der neuen Zeile ist
write-warning "Kein Zieldrucker gewählt"
break
}
$errorCount = 0
$successCount = 0
foreach($printer in $selectedPrinterDestination) {
write-host -NoNewline "$($printer.ShareName) "
$Error.Clear()
Set-Printer -PermissionSDDL $selectedPrinterSource.PermissionSDDL -InputObject $printer
if($Error) {
$errorCount++
write-host -NoNewline "`n"
write-error "Rechte für Drucker $($printer.ShareName) konnte auf Server $server nicht angepasst werden"
}
else {
$successCount++
}
}
Write-Host "`n$successCount Drucker erfolgreich angepasst"
Write-Host "$errorCount Anpassungen fehlgeschlagen"
$server = "druckservername"
if (!$server) {
write-warning "Kein Server gesetzt"
break
}
$Error.Clear()
$allPrinters = get-printer * -full -ComputerName $server
if($Error) {
write-error "Server konnte nicht ausgelesen werden"
break
}
write-host "Gewünschter Drucker dessen Rechte kopiert werden soll wählen"
$selectedPrinterSource = $allPrinters | Out-GridView -OutputMode Single -Title "Von welchem Drucker soll kopiert werden?"
if (!$selectedPrinterSource) {
write-warning "Kein Drucker gewählt"
break
}
write-host "Drucker auswählen in die die Rechte eingefügt werden sollen"
write-host -NoNewline "Soruce`t`tDestination`n$($selectedPrinterSource.ShareName) -> "
$selectedPrinterDestination = $allPrinters | Out-GridView -PassThru -Title "Auf welche Drucker sollen die Rechte übertragen werden?"
if (!$selectedPrinterDestination) {
write-host "`n" #Zeilenumbruch, damit die Warnung auch wirklich in der neuen Zeile ist
write-warning "Kein Zieldrucker gewählt"
break
}
$errorCount = 0
$successCount = 0
foreach($printer in $selectedPrinterDestination) {
write-host -NoNewline "$($printer.ShareName) "
$Error.Clear()
Set-Printer -PermissionSDDL $selectedPrinterSource.PermissionSDDL -InputObject $printer
if($Error) {
$errorCount++
write-host -NoNewline "`n"
write-error "Rechte für Drucker $($printer.ShareName) konnte auf Server $server nicht angepasst werden"
}
else {
$successCount++
}
}
Write-Host "`n$successCount Drucker erfolgreich angepasst"
Write-Host "$errorCount Anpassungen fehlgeschlagen"
$server = "druckservername" if (!$server) { write-warning "Kein Server gesetzt" break } $Error.Clear() $allPrinters = get-printer * -full -ComputerName $server if($Error) { write-error "Server konnte nicht ausgelesen werden" break } write-host "Gewünschter Drucker dessen Rechte kopiert werden soll wählen" $selectedPrinterSource = $allPrinters | Out-GridView -OutputMode Single -Title "Von welchem Drucker soll kopiert werden?" if (!$selectedPrinterSource) { write-warning "Kein Drucker gewählt" break } write-host "Drucker auswählen in die die Rechte eingefügt werden sollen" write-host -NoNewline "Soruce`t`tDestination`n$($selectedPrinterSource.ShareName) -> " $selectedPrinterDestination = $allPrinters | Out-GridView -PassThru -Title "Auf welche Drucker sollen die Rechte übertragen werden?" if (!$selectedPrinterDestination) { write-host "`n" #Zeilenumbruch, damit die Warnung auch wirklich in der neuen Zeile ist write-warning "Kein Zieldrucker gewählt" break } $errorCount = 0 $successCount = 0 foreach($printer in $selectedPrinterDestination) { write-host -NoNewline "$($printer.ShareName) " $Error.Clear() Set-Printer -PermissionSDDL $selectedPrinterSource.PermissionSDDL -InputObject $printer if($Error) { $errorCount++ write-host -NoNewline "`n" write-error "Rechte für Drucker $($printer.ShareName) konnte auf Server $server nicht angepasst werden" } else { $successCount++ } } Write-Host "`n$successCount Drucker erfolgreich angepasst" Write-Host "$errorCount Anpassungen fehlgeschlagen"