Всем привет
Недавно передо мной стал вопрос, о поиске в сети офиса, компьютеров работающих после окончания рабочего дня(что крайне не приветствуется руководством). Решать этот вопрос я решил средствами powershell(так как давно хотел разобраться с этим инструментом), как оказалось в этом нет ничего трудного, достаточно провести немного времени за изучением статей и форумов. В итоге у меня получился вот такой скрипт:
clear
import-Module ActiveDirectory
Get-ADComputer -filter * -SearchBase «OU=ваша OU»|ft name -AutoSize > C:\comp.txt
$comps = get-content C:\comp.txt
$file = New-Item -itemtype file «C:\ON.txt» -Force
foreach ($comp in $comps)
{$ON = Get-WmiObject Win32_PingStatus -filter «Address=»"$comp"""
if ($ON.StatusCode -eq 0) {Add-Content $file "$comp в сети"}
}
Данный скриптик достает из AD, из нужной нам OU список компов, записывает их в файл, затем берет из этого файла и проверяет доступность поочередно, и если комп в сети то записывает в другой файлик.(вместо файла ля хранения списка компов можно использовать переменную но мне было проще сделать так(иногда бывает нужен список компов)). А дальше достаточно поотправлять всем включенным компьютерам сигнал выключения, позже добавлю как это сделать. Надеюсь моя небольшая заметка кому нибудь пригодиться.