A common conversation I have with customers is around the lack of a notification channel for application requests in ConfigMgr. I realize there are already a handful of solutions on the web that provide various ways of doing this. So, I figured why not share mine. It's rather basic, just a PowerShell script that queries ConfigMgr for new Application requests, then based on the app category, it will fire off an email to either the Licensing Management (LM) team or the ConfigMgr team.
We categorized apps two ways:
- If the app required a license, the application name would be added to the script array and these requests would be routed to the help desk via email, which was then converted into a ticket/service request and eventually routed to the LM team. The LM team had rights in the ConfigMgr console, scoped to only show the Application Approval and reports.
- If the app did not require a license, and we wanted to control the users that have access to, let's say, management apps, like the System Center consoles, Putty, WireShark, etc., these requests would be routed/emailed to the ConfigMgr admins to approve or reject the request.
The script was triggered by a simple scheduled task that ran every 30 minutes on the Site Server. The script was configured to check for new requests less than 29 minutes old. It seemed to work well and I never experienced duplicate app requests, nor did I have any users complaining about the timing.
It leverages PowerShell's Send-MailMessage cmdlet and the Get-CMApprovalRequest cmdlet within ConfigMgr.
Below are screen shots of the request and respective email:
It's simple, yet effective and you can download the script file from here: AppRequestNotifications.
Make sure you update the items noted in the comments throughout the script to match your environment.