Get ConfigMgr Collection rules
I’m in the process of installing Forefront Endpoint Protection and wanted to look at some of the collection queries that was created… but with the ConfigMgr console you cant view them…
So Powershell it is.
Did a function that you can use on any collection (with subcollections) to view the WQL.
Import-Module SCCM\SCCM-Functions -Force Function Get-CollectionRules { PARAM ( $parentCollection, $spacer, $sccm ) $subCollections = Get-SCCMSubCollections -SccmServer $sccm -CollectionID $parentCollection if ($subCollections -ne $null) { $subCollections | ForEach-Object { $collection = Get-SCCMCollection -Filter "CollectionID='$($_.subCollectionID)'" -SccmServer $sccm Write-Host "$($spacer) Name: " -ForegroundColor Yellow -NoNewline Write-Host "$($collection.CollectionID) - $($collection.Name)" $collectionRule = (Get-SCCMCollectionRules -SccmServer ( Connect-SCCMServer ) -CollectionID $collection.CollectionID) if ($collectionRule -ne $null) { Write-Host "$($spacer)Limit: " -ForegroundColor Yellow -NoNewline if ($collectionRule.LimitToCollectionID.Length -gt 0) { Write-Host "$($collectionRule.LimitToCollectionID)" -ForegroundColor White } else { Write-Host "" -ForegroundColor Gray } Write-Host "$($spacer) WQL: " -ForegroundColor Yellow -NoNewline Write-Host "$($collectionRule.QueryExpression)" } else { Write-Host "$($spacer) " -ForegroundColor Gray } Write-Host "" Get-CollectionRules -parentCollection $_.subCollectionID -spacer " $($spacer)" -sccm $sccm } } } Get-CollectionRules -parentCollection "XYZ00123" -spacer "" -sccm (Connect-SCCMServer)
A small warning: It will loop all of the subcollections, and the subcollections subcollections, and so on…