####################################################
# Shutdown_Night.ps1 27/05/2015 PowerShell v3-4 made by ®clevergod and ToSHa
# Скрипт выключения ПК с отправкой отчета на мыльники.
# Данный скрипт собирает все ПК с домена, фильтрует исключения групп, пингует на доступность,тушит ПК и отправляет отчет на указанные емэйл
# учите PowerShell ребята!
####################################################
Скрытый текст
# Собираем ПК и фильтруем (править по себя)(добавлены 3 группы исключения Admins Servers и ЕЩЕ одна для допустим руководства)
$comps = Get-ADObject -LDAPFilter '(&(objectCategory=computer)(!memberOf=CN=Исключение,DC=company,DC=local)(!memberOf=CN=Admins,OU=Gro ups,DC=company,DC=local)(&(!memberOf=CN=Servers,OU=Servers,DC=company,DC=local)))' | Select -Expand Name
# Файл выгрузки (править по себя)
$file = New-Item -itemtype file "\\server\LOGS\TurnOff_Computers\Computers_ON.html" -Force
# Туловище HTML
Add-Content $file '<html><head>
<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-8">
<title>System Status Report</title>
<style type="text/css">
<!--
BODY{background-color:#FFFFFF;}
TABLE{border-width: 1px;border-style: solid;border-color: black;}
TH{border-width: 1px;padding: 1px;border-style: solid;border-color: black;background-color:#1D92DC}
TD {border-width: 1px;padding: 2px;border-style: solid;border-color: black;background-color:#94BFE4}
TR {color:#000000;font-family:Tahoma;font-size:10pt;}
}
-->
</style>
<h2>Server Status</h2>
<p>The following report was run on $(get-date).</p>
<table>
<tr><th> Имя: </th><th>Статус компьютера:</th></tr>
'
# Цикл выключения ПК домена с пингом с подкрашиванием HTML nf,kbws
foreach ($comp in $comps)
{$ON = Get-WmiObject Win32_PingStatus -filter "Address=""$comp"""
if ($ON.StatusCode -eq 0) {$desc = Get-ADObject -LDAPFilter "(cn=$comp)" -Properties Description | Select -Expand Description | Out-String
Add-Content $file "<tr><td>$desc</td><td style='background-color:red; color:Yellow;'><strong>$comp Включен!</strong></td></tr>" | Stop-Computer -cn $comp -force }
Else
{$desc = Get-ADObject -LDAPFilter "(cn=$comp)" -Properties Description | Select -Expand Description | Out-String
Add-Content $file "<tr><td>$desc</td><td style='background-color:green; color:#FFFFFF;'>$comp выключен</td></tr>"}
}
Add-Content $file "</html>"
# Вложение тела HTML файла
$html = Get-Content '\\server\LOGS\TurnOff_Computers\Computers_ON.html' -raw
# мЁльнер (править по себя)
Send-MailMessage -smtpServer mail.company.kz -UseSSL -from 'Shutdown@company.kz' -to 'stanislav@company.kz' -subject "PoweredON" -body $html -Encoding UTF8 -BodyAsHTML #-Attachment $file #Раскоментить -Attachment $file если нужно вложение файла к письму