~PowerShell~
繼上篇使用 Service Broker 實作 Realtime Event Notification
還有什麼方法可以做到即時監控呢?
就讓我們來瞧瞧如何運用 PowerShell 的強大能力即時監控誰 drop database
範例將使用以下 PS 語法註冊 CaptureDropDbEvents 來攔截 WMI Events
$eventQuery = "SELECT * FROM DROP_DATABASE"
$namespace = "root\Microsoft\SqlServer\ServerEvents\MSSQLSERVER"
Register-WmiEvent -SourceIdentifier "CaptureDropDbEvents" -Namespace $namespace -Query $eventQuery
while ($true)
{
$getEvents=Get-Event –SourceIdentifier "CaptureDropDbEvents" -ErrorAction SilentlyContinue
if ($getEvents)
{
for ($i=0; $i -lt $getEvents.Count; $i++)
{
$getEvents[$i].SourceEventArgs.NewEvent | Select-Object $properties
Remove-Event -EventIdentifier $getEvents[$i].EventIdentifier -ErrorAction SilentlyContinue
}
}
}
完成後的效果就像下面的範例
最後稍微修改就可以透過遠端監控站台集中管理嘍~
透過強大的 PowerShell 來即時監控是不是非常的簡單容易呢?
have fun ʕ•͡ᴥ•ʔ