Wer einen Überblick benötigt, an welchen AD-Computer welcher Drucker angebunden ist, wird sich an diesem kleinen Script erfreuen. Das Script liest alle Computer der lokalen Active-Directory aus und exportiert die angebundenen Drucker nach erfolgreichen Pingcheck in eine CSV-Datei die später über Excel ausgewertet werden kann.

# get connected printers 
#
# This script creates a CSV-file with printers which were connected to ad-computers and sends the CSV-file via mail
#
#
#
$script_headline="get connected printers from "+$env:USERDNSDOMAIN
 
## e-mail notfication
    $email_server = “mail.mailserver.de”
    $email_receiver=@("placeholder@mathias-jaekel.de") # if this is empty, e-mail is disabled
    $email_sender="placeholder@mathias-jaekel.de "
    $email_subject=$script_headline
 
 
$ad_computer=Get-ADComputer -filter *
$csv_delimiter=";"
$csv_file="c:\temp\ad_printer.csv"
 
$skip_computers=@("CCTV","Time","Kiosk") #
$dataset="ComputerName;PrinterName;Shared;Published"
 
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
 
if($email_receiver.count -gt 0){
    foreach($receiver in $email_receiver){
        write-host "-send email to: "$receiver
        send-mailmessage -from $email_sender -to $receiver -subject $email_subject -Body "see attached backup" -Attachments $csv_file -dno onSuccess, onFailure -smtpServer $email_server
    }
}
Powershell – verbundene Drucker von Active-Directory Computern auslesen
Tagged on: