This little script is what I use in cooperation with the SCOM Command Channel to parse and send SCOM alerts to a logfile.
The script will take the SCOM alert parameters and put them neatly in a .log file, one file for each alert I want. This, of course, is customizable – I just like to see the amount of files being generated.
The Channel:
The above channel parameters:
Path: C:\windows\system32\WindowsPowershell\v1.0\powershell.exe
Cmd: -file “C\:Script\AlertExport.ps1” “$Data[Default=’Not Present’]/Context/DataItem/AlertId$##$Data[Default=’Not Present’]/Context/DataItem/AlertName$##$Data[Default=’Not Present’]/Context/DataItem/AlertDescription$##$Data[Default=’Not Present’]/Context/DataItem/EntityPath$##$Data[Default=’Not Present’]/Context/DataItem/EntityDisplayName$”
Startdir: c:\
This will get you the following (of MANY) Alert details: AlertID, Alert Name, Alert Description, Path and Displayname.
The Script:
# Alert Params param( $parameters ) $params = $parameters.split('##') | ? {$_ -ne ''} # Build params (added commented blocks of Alert parameter data for your convenience) $AlertID = $params[0] # $Data/Context/DataItem/AlertID$ $AlertName = $params[1] # $Data/Context/DataItem/AlertName$ $AlertDesc = $params[2]# $Data/Context/DataItem/AlertDescription$ $Path = $params[3] # $Data/Context/DataItem/ManagedEntityPath$ $DisplayName = $params[4] # $Data/Context/DataItem/ManagedEntityDisplayName$ # Sharestuff $share = "<YOUR SHARE AND STUFF>" $date = get-date $Alertfile = "SCOM Alert - $(get-date -Format "dd.MM.yyyy HH.mm.ss").log" # Format AlertMessage $AlertMessage = @() $AlertMessage += "ID: $AlertID" $AlertMessage += "Date: $date" $AlertMessage += "DisplayName: $DisplayName" $AlertMessage += "AlertName: $AlertName" $alertMessage += "Path: $Path" $AlertMessage += "Description: $AlertDesc" # Output alert to textfile $AlertMessage >> $share$alertfile
Put the script on all your Management Servers, in this case in the C:\script folder, and suddenly, if all goes well, your selected Alerts will start pumping out to this share.
– F