Powershell — сбор информации о принтерах
Иногда нужно собрать информацию о всех принтерах, которые установлены на пользовательских компьютерах AD. Для этого нам понадобится два скрипта.
Скрипт первый — список компьютеров
Чтобы не собирать данные вручную достаточно использовать простую команду.
Get-ADComputer -filter * | Select-Object Name > C:\pc2019.txt
Команду нужно выполнить на контроллере домена. Полученный файл нужно немного поправить — удалить все пробелы. Можете воспользоваться сторонним софтом (например, замена символов в notepad++) или выполнить скрипт для удаления пробелов, написанный ниже.
Function trim($file,$mode)
{
$input = Get-Content $file
$output = $input | where {$_ -notmatch "^$" }
If ($mode -eq 'includeblanks')
{
$output = $output -replace(' ','')
}
Set-Content $file $output
}
trim "C:\pc2019.txt" includeblanks
Теперь наш файл готов для поиска данных — время найти принтеры!
$infile = Get-Content -Path "C:\Users\chirkov\office.txt"
foreach ($pc in $infile)
{
echo $pc
Get-Printer -ComputerName $pc | where PortName -like USB* | Select-Object -Property Name,ComputerName | Export-Csv -Path "C:\test.csv" -Append -NoType -encoding Unicode -Delimiter ';'
}
Данный скрипт проверит компьютеры по выгруженному списку AD, где порт будет USB и сохранит его в файл test.csv, где разделителем будет точка с запятой