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.
Das komplette Powershell Script
# 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
}
}
weitere Beiträge zum Thema Powershell und Drucker
- Powershell, wie was und wo
- Powershell Pause-Funktion
- WSUS per Powershell abfragen/ansprechen
- Powershell – E-Mail mit Anhang versenden
- Powershell verbundene Drucker von Active-Directory Computern auslesen
- Active Directory Nutzer per Powershell im Bulk anlegen
- WSUS per Powershell konfigurieren oder zurücksetzen
- WSUS Cleanup Wizzard per Powershell remote starten
- Scripte und Dateien per Powershell über mehrere Server verteilen / ausrollen
- Mit Powershell SNMP auslesen – Druckerstatus Printserver
- Active-Directory – Nutzer via Script im Bulk mit Powershell anlegen
- Dateien und Ordner nach Alter löschen mit Powershell und Batch
- Computer mit Powershell zur Active-Directory hinzufügen (Add-Computer)
- Anmeldedaten der geplanten Aufgaben mit Powershell ändern
- invoke-command – Troubleshooting