There are some clean up tasks a System Center Configuration Manager 2012 Administrator can perform on a regular basis. One should be to check which advertisements are expired.
Yes, I talk about advertisements in SCCM 2012. I know SCCM 2012 talks about deployments, but if you deploy a Package in SCCM (not an Application) then SCCM internally stores this deployment in the WMI class SMS_Advertisement. See also.
There is no PowerShell Cmdlet for SCCM 2012 SP1 which could give me this information directly, so I have created a script, that can be used in two ways:
- document which deployments are expired (only does not document the current assigned schedule) in a CSV format.
- delete the expired deployments.
So you can call the script with different parameters.
Command line: Getexpiredadvertisements.ps1 -log [String] -sitecode [String] -siteserver [String] -document [Bool] -delete [Bool]
Example: Getexpiredadvertisements.ps1 -log “c:\it\expiredads.csv” -sitecode “ABC:” -siteserver “SCCM01” -document $True -delete $False
- Log: Defines name and path of the written CSV file
- Sitecode: SCCM Site Code, Example ABC:
- Siteserver: SCCM Site Server Name
- Document: Defines, if expired Advertisements get documented to the CSV file, possible values: $True/$False
- Delete: Defines, if expired Advertisements get deleted in SCCM, possible values: $True/$False
- Run this script in PowerShell x86
- The script is tested with PowerShell 2.0 and SCCM 2012 SP1
- SCCM administrator permissions
- The Configuration Manager PowerShell Modul must be installed on the machine, where you run the script
The script can be downloaded here.