verbundene Drucker per Powershell als CSV auslesen

powershell drucker auslesen csv

Mit diesem Powershellscript liest man die an die AD-Computer angeschlossene Drucker aus.

Dazu werden erst alle Active-Directory Computer mit „Get-ADComputer -filter *“ ausgelesen und an „Get-Printer“ übergeben. Als Ergebnis gibt es eine CSV Datei.

Powershell Drucker Auslesen Csv

das Script um verbundene Drucker per Powershell auszulesen

$ad_computer=Get-ADComputer -filter *
$csv_delimiter=";"
$csv_file="c:\temp\ad_printer.csv"

$skip_computers=@("Time") #list of skipped computernames 
$dataset="ComputerName;PrinterName;Shared;Published`r`n"

foreach($computer in $ad_computer.DNSHostName){

   if (Test-Connection -ComputerName $computer -count 1 -Quiet){

       $skip_computer=0

       foreach($searchcrit in $skip_computers){
        $checkresult=$computer -match $searchcrit

        if($checkresult){$skip_computer=1}

       }
        if($skip_computer -eq 0){

            write-host "- get printers from " $computer
            $printer_result=Get-Printer -ComputerName $computer

            foreach($printer in $printer_result){
                $dataset+=$printer.ComputerName+$csv_delimiter+$printer.Name+$csv_delimiter+$printer.shared+$csv_delimiter+$printer.Published+"`r`n"
            }
        }else{
            write-host "- skipped: " $computer
        }
    }else{
        write-host "- not pingable: "$computer
    }

}

$dataset  | set-content $csv_file

Oneliner

Wenn mir das so anschaue könnte man darauf auch eine Oneliner machen wie folgt. Allerdings ist dann die Ausgabe nicht so schön und es wird nicht vorher geprüft, ob der Active-Directory Computer erreichbar ist oder nicht. Hat eben alles seine Vor – und Nachteile.

Get-ADComputer -filter * | Get-Printer | export-csv

weitere Beiträge zum Thema Powershell, Drucker o.ä.