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