Running Actions Based on #ConfigMgr Status Filter Rules with #PowerShell
May 19, 2014 Leave a comment
Here is an example of running a custom action when an Application is deployed (based on status filter rule).
Save this script as “C:\Scripts\StatusFilter\NoSecretDeployments.ps1”
#status filter variables: http://technet.microsoft.com/en-us/library/bb693758.aspx
#New Deployment of Application
#Source: SMS Provider
#Message ID: 30226
#Run Command (combine the next three lines, replace the # with a space:
#C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
#-command "& {c:\scripts\statusfilter\nosecretdeployments.ps1
#-computername '%msgsys' -msgdesc '%msgdesc'}"
[CmdletBinding()]
Param(
[Parameter(Mandatory=$True)]
[string]$ComputerName,
[Parameter(Mandatory=$True)]
[string]$MSGDesc,
[Parameter()]
[string]$AdditionalInfo
)
function write-log ($string)
{
$string + " " + (get-date) `
| Out-File C:\scripts\StatusFilter\NoSecretDeployments.log -Append
}
write-log ("Source " + $ComputerName)
write-log ($MSGDesc)
Now create a new application, and observe NoSecretDeployments.log in c:\scripts\statusfilter. You can also debug the execution by reviewing statmgr.log:
In this example, you see how we can easily write the information to a log file. You can take this basic example, and leverage the Send-MailMessage cmdlet so that the script automatically notifies a distribution list each time an application deployment is created.
Learn more about Status Filter Rules: http://technet.microsoft.com/en-us/library/cc181208.aspx
Learn more about command-line parameters for Status Filter Rules: http://technet.microsoft.com/en-us/library/bb693758.aspx
Happy Scripting!
Greg
