[實務運用] 如何用 Powershell 監控群組帳號並發送通知

運用 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 ʕ•͡ᴥ•ʔ