運用 powershell 做一個簡單的監控群組帳號並發送通知
為了因應日後接管的主機越來越多的情況下
且跨部門的溝通或許會有人為遺漏的情況
有些監控是必要的工作
因此在這裡分享如何使用強大的 powrshell 來監控群組帳號
當有帳號被加入到 administrators 這個高權限的群組時
我們希望能即時被通知,以確認是否來自安全的授權行為
$server = $env:COMPUTERNAME
$localgroup = "Administrators"
$Group= [ADSI]"WinNT://$Server/$LocalGroup,group"
$members = $Group.psbase.Invoke("Members")
$UsrGP = $members | ForEach-Object { $_.GetType().InvokeMember("Name", 'GetProperty', $null, $_, $null) }
$UsrMonitor = $UsrGP | Where-Object {$_ -ne "Administrator" -and $_ -ne "Domain Admins"}
$UsrCnt = @($UsrMonitor).Count
if ($UsrCnt -gt 0 -and $UsrMonitor.length -gt 0)
{
$Msg = "[$dtnow] The user account in $env:COMPUTERNAME administrators group"
foreach ($item in $UsrMonitor)
{
$Usr = $Usr + "$item`n"
}
Write-Output "send notification email"
}
把這段語法放到 Agent 或是 Task Scheduler 定時檢查
當有帳號被加入到該群組時則進行通知
大功告成~
have fun ʕ•͡ᴥ•ʔ