I'm trying to automate some maintenance of device collections in SCCM. The problem is that even (seemingly) simple commands are kicking off a cascade of redundant queries. For example, just to verify that a certain folder exists (before trying to create a collection in it):
$isItThere = Get-Item -Path "SCCM:\DeviceCollection\Delegated\Dept\Servers"
# I could use Test-Path, but that takes even *longer*
Behold what this yields to the verbose output stream. Marvel at the number of duplicated queries:
Executing WQL query: SELECT * FROM SMS_ObjectContainerNode WHERE ObjectTypeName = 'SMS_Collection_Device' AND ParentContainerNodeId = 0 AND SearchFolder = 0 AND Name = 'Delegated'
Executing WQL query: SELECT * FROM SMS_ObjectContainerNode WHERE ObjectTypeName = 'SMS_Collection_Device' AND ParentContainerNodeId = 16777255 AND SearchFolder = 0 AND Name = 'Dept'
Executing WQL query: SELECT * FROM SMS_ObjectContainerNode WHERE ObjectTypeName = 'SMS_Collection_Device' AND ParentContainerNodeId = 16777730 AND SearchFolder = 0 AND Name = 'Servers'
Executing WQL query: SELECT * FROM SMS_ObjectContainerNode WHERE ObjectTypeName = 'SMS_Collection_Device' AND ParentContainerNodeId = 0 AND SearchFolder = 0 AND Name = 'Delegated'
Executing WQL query: SELECT * FROM SMS_ObjectContainerNode WHERE ObjectTypeName = 'SMS_Collection_Device' AND ParentContainerNodeId = 16777255 AND SearchFolder = 0 AND Name = 'Dept'
Executing WQL query: SELECT * FROM SMS_ObjectContainerNode WHERE ObjectTypeName = 'SMS_Collection_Device' AND ParentContainerNodeId = 0 AND SearchFolder = 0 AND Name = 'Delegated'
Executing WQL query: SELECT * FROM SMS_ObjectContainerNode WHERE ObjectTypeName = 'SMS_Collection_Device' AND ParentContainerNodeId = 0 AND SearchFolder = 0 AND Name = 'Delegated'
Executing WQL query: SELECT * FROM SMS_ObjectContainerNode WHERE ObjectTypeName = 'SMS_Collection_Device' AND ParentContainerNodeId = 16777255 AND SearchFolder = 0 AND Name = 'Dept'
Executing WQL query: SELECT * FROM SMS_ObjectContainerNode WHERE ObjectTypeName = 'SMS_Collection_Device' AND ParentContainerNodeId = 16777730 AND SearchFolder = 0 AND Name = 'Servers'
Executing WQL query: SELECT * FROM SMS_ObjectContainerNode WHERE ObjectTypeName = 'SMS_Collection_Device' AND ParentContainerNodeId = 0 AND SearchFolder = 0 AND Name = 'Delegated'
Executing WQL query: SELECT * FROM SMS_ObjectContainerNode WHERE ObjectTypeName = 'SMS_Collection_Device' AND ParentContainerNodeId = 16777255 AND SearchFolder = 0 AND Name = 'Dept'
Executing WQL query: SELECT * FROM SMS_ObjectContainerNode WHERE ObjectTypeName = 'SMS_Collection_Device' AND ParentContainerNodeId = 0 AND SearchFolder = 0 AND Name = 'Delegated'
Executing WQL query: SELECT * FROM SMS_ObjectContainerNode WHERE ObjectTypeName = 'SMS_Collection_Device' AND ParentContainerNodeId = 0 AND SearchFolder = 0 AND Name = 'Delegated'
Executing WQL query: SELECT * FROM SMS_ObjectContainerNode WHERE ObjectTypeName = 'SMS_Collection_Device' AND ParentContainerNodeId = 16777255 AND SearchFolder = 0 AND Name = 'Dept'
Executing WQL query: SELECT * FROM SMS_ObjectContainerNode WHERE ObjectTypeName = 'SMS_Collection_Device' AND ParentContainerNodeId = 16777730 AND SearchFolder = 0 AND Name = 'Servers'
Executing WQL query: SELECT * FROM SMS_ObjectContainerNode WHERE ObjectTypeName = 'SMS_Collection_Device' AND ParentContainerNodeId = 0 AND SearchFolder = 0 AND Name = 'Delegated'
Executing WQL query: SELECT * FROM SMS_ObjectContainerNode WHERE ObjectTypeName = 'SMS_Collection_Device' AND ParentContainerNodeId = 16777255 AND SearchFolder = 0 AND Name = 'Dept'
Executing WQL query: SELECT * FROM SMS_ObjectContainerNode WHERE ObjectTypeName = 'SMS_Collection_Device' AND ParentContainerNodeId = 0 AND SearchFolder = 0 AND Name = 'Delegated'
Executing WQL query: SELECT * FROM SMS_ObjectContainerNode WHERE ObjectTypeName = 'SMS_Collection_Device' AND ParentContainerNodeId = 0 AND SearchFolder = 0 AND Name = 'Delegated'
Executing WQL query: SELECT * FROM SMS_ObjectContainerNode WHERE ObjectTypeName = 'SMS_Collection_Device' AND ParentContainerNodeId = 16777255 AND SearchFolder = 0 AND Name = 'Dept'
Executing WQL query: SELECT * FROM SMS_ObjectContainerNode WHERE ObjectTypeName = 'SMS_Collection_Device' AND ParentContainerNodeId = 16777730 AND SearchFolder = 0 AND Name = 'Servers'
Executing WQL query: SELECT * FROM SMS_ObjectContainerNode WHERE ObjectTypeName = 'SMS_Collection_Device' AND ParentContainerNodeId = 0 AND SearchFolder = 0 AND Name = 'Delegated'
Executing WQL query: SELECT * FROM SMS_ObjectContainerNode WHERE ObjectTypeName = 'SMS_Collection_Device' AND ParentContainerNodeId = 16777255 AND SearchFolder = 0 AND Name = 'Dept'
Executing WQL query: SELECT * FROM SMS_ObjectContainerNode WHERE ObjectTypeName = 'SMS_Collection_Device' AND ParentContainerNodeId = 0 AND SearchFolder = 0 AND Name = 'Delegated'
Executing WQL query: SELECT * FROM SMS_ObjectContainerNode WHERE ObjectTypeName = 'SMS_Collection_Device' AND ParentContainerNodeId = 0 AND SearchFolder = 0 AND Name = 'Delegated'
Executing WQL query: SELECT * FROM SMS_ObjectContainerNode WHERE ObjectTypeName = 'SMS_Collection_Device' AND ParentContainerNodeId = 16777255 AND SearchFolder = 0 AND Name = 'Dept'
Executing WQL query: SELECT * FROM SMS_ObjectContainerNode WHERE ObjectTypeName = 'SMS_Collection_Device' AND ParentContainerNodeId = 16777730 AND SearchFolder = 0 AND Name = 'Servers'
Executing WQL query: SELECT * FROM SMS_ObjectContainerNode WHERE ObjectTypeName = 'SMS_Collection_Device' AND ParentContainerNodeId = 0 AND SearchFolder = 0 AND Name = 'Delegated'
Executing WQL query: SELECT * FROM SMS_ObjectContainerNode WHERE ObjectTypeName = 'SMS_Collection_Device' AND ParentContainerNodeId = 16777255 AND SearchFolder = 0 AND Name = 'Dept'
Executing WQL query: SELECT * FROM SMS_ObjectContainerNode WHERE ObjectTypeName = 'SMS_Collection_Device' AND ParentContainerNodeId = 0 AND SearchFolder = 0 AND Name = 'Delegated'
Executing WQL query: SELECT * FROM SMS_ObjectContainerNode WHERE ObjectTypeName = 'SMS_Collection_Device' AND ParentContainerNodeId = 0 AND SearchFolder = 0 AND Name = 'Delegated'
Executing WQL query: SELECT * FROM SMS_ObjectContainerNode WHERE ObjectTypeName = 'SMS_Collection_Device' AND ParentContainerNodeId = 16777255 AND SearchFolder = 0 AND Name = 'Dept'
Executing WQL query: SELECT * FROM SMS_ObjectContainerNode WHERE ObjectTypeName = 'SMS_Collection_Device' AND ParentContainerNodeId = 16777730 AND SearchFolder = 0 AND Name = 'Servers'
Executing WQL query: SELECT * FROM SMS_ObjectContainerNode WHERE ObjectTypeName = 'SMS_Collection_Device' AND ParentContainerNodeId = 0 AND SearchFolder = 0 AND Name = 'Delegated'
Executing WQL query: SELECT * FROM SMS_ObjectContainerNode WHERE ObjectTypeName = 'SMS_Collection_Device' AND ParentContainerNodeId = 16777255 AND SearchFolder = 0 AND Name = 'Dept'
Executing WQL query: SELECT * FROM SMS_ObjectContainerNode WHERE ObjectTypeName = 'SMS_Collection_Device' AND ParentContainerNodeId = 0 AND SearchFolder = 0 AND Name = 'Delegated'
Executing WQL query: SELECT * FROM SMS_ObjectContainerNode WHERE ObjectTypeName = 'SMS_Collection_Device' AND ParentContainerNodeId = 0 AND SearchFolder = 0 AND Name = 'Delegated'
Executing WQL query: SELECT * FROM SMS_ObjectContainerNode WHERE ObjectTypeName = 'SMS_Collection_Device' AND ParentContainerNodeId = 16777255 AND SearchFolder = 0 AND Name = 'Dept'
Executing WQL query: SELECT * FROM SMS_ObjectContainerNode WHERE ObjectTypeName = 'SMS_Collection_Device' AND ParentContainerNodeId = 16777730 AND SearchFolder = 0 AND Name = 'Servers'
Executing WQL query: SELECT * FROM SMS_ObjectContainerNode WHERE ObjectTypeName = 'SMS_Collection_Device' AND ParentContainerNodeId = 0 AND SearchFolder = 0 AND Name = 'Delegated'
Executing WQL query: SELECT * FROM SMS_ObjectContainerNode WHERE ObjectTypeName = 'SMS_Collection_Device' AND ParentContainerNodeId = 16777255 AND SearchFolder = 0 AND Name = 'Dept'
Executing WQL query: SELECT * FROM SMS_ObjectContainerNode WHERE ObjectTypeName = 'SMS_Collection_Device' AND ParentContainerNodeId = 0 AND SearchFolder = 0 AND Name = 'Delegated'
Executing WQL query: SELECT * FROM SMS_ObjectContainerNode WHERE ObjectTypeName = 'SMS_Collection_Device' AND ParentContainerNodeId = 0 AND SearchFolder = 0 AND Name = 'Delegated'
Executing WQL query: SELECT * FROM SMS_ObjectContainerNode WHERE ObjectTypeName = 'SMS_Collection_Device' AND ParentContainerNodeId = 16777255 AND SearchFolder = 0 AND Name = 'Dept'
Executing WQL query: SELECT * FROM SMS_ObjectContainerNode WHERE ObjectTypeName = 'SMS_Collection_Device' AND ParentContainerNodeId = 16777730 AND SearchFolder = 0 AND Name = 'Servers'
Executing WQL query: SELECT * FROM SMS_ObjectContainerNode WHERE ObjectTypeName = 'SMS_Collection_Device' AND ParentContainerNodeId = 0 AND SearchFolder = 0 AND Name = 'Delegated'
Executing WQL query: SELECT * FROM SMS_ObjectContainerNode WHERE ObjectTypeName = 'SMS_Collection_Device' AND ParentContainerNodeId = 16777255 AND SearchFolder = 0 AND Name = 'Dept'
Executing WQL query: SELECT * FROM SMS_ObjectContainerNode WHERE ObjectTypeName = 'SMS_Collection_Device' AND ParentContainerNodeId = 0 AND SearchFolder = 0 AND Name = 'Delegated'
Executing WQL query: SELECT * FROM SMS_ObjectContainerNode WHERE ObjectTypeName = 'SMS_Collection_Device' AND ParentContainerNodeId = 0 AND SearchFolder = 0 AND Name = 'Delegated'
Executing WQL query: SELECT * FROM SMS_ObjectContainerNode WHERE ObjectTypeName = 'SMS_Collection_Device' AND ParentContainerNodeId = 16777255 AND SearchFolder = 0 AND Name = 'Dept'
Executing WQL query: SELECT * FROM SMS_ObjectContainerNode WHERE ObjectTypeName = 'SMS_Collection_Device' AND ParentContainerNodeId = 16777730 AND SearchFolder = 0 AND Name = 'Servers'
Executing WQL query: SELECT * FROM SMS_ObjectContainerNode WHERE ObjectTypeName = 'SMS_Collection_Device' AND ParentContainerNodeId = 0 AND SearchFolder = 0 AND Name = 'Delegated'
Executing WQL query: SELECT * FROM SMS_ObjectContainerNode WHERE ObjectTypeName = 'SMS_Collection_Device' AND ParentContainerNodeId = 16777255 AND SearchFolder = 0 AND Name = 'Dept'
Executing WQL query: SELECT * FROM SMS_ObjectContainerNode WHERE ObjectTypeName = 'SMS_Collection_Device' AND ParentContainerNodeId = 16777730 AND SearchFolder = 0 AND Name = 'Servers'
Executing WQL query: SELECT * FROM SMS_ObjectContainerNode WHERE ObjectTypeName = 'SMS_Collection_Device' AND ParentContainerNodeId = 0 AND SearchFolder = 0 AND Name = 'Delegated'
Executing WQL query: SELECT * FROM SMS_ObjectContainerNode WHERE ObjectTypeName = 'SMS_Collection_Device' AND ParentContainerNodeId = 16777255 AND SearchFolder = 0 AND Name = 'Dept'
Executing WQL query: SELECT * FROM SMS_ObjectContainerNode WHERE ObjectTypeName = 'SMS_Collection_Device' AND ParentContainerNodeId = 0 AND SearchFolder = 0 AND Name = 'Delegated'
Executing WQL query: SELECT * FROM SMS_ObjectContainerNode WHERE ObjectTypeName = 'SMS_Collection_Device' AND ParentContainerNodeId = 0 AND SearchFolder = 0 AND Name = 'Delegated'
Executing WQL query: SELECT * FROM SMS_ObjectContainerNode WHERE ObjectTypeName = 'SMS_Collection_Device' AND ParentContainerNodeId = 16777255 AND SearchFolder = 0 AND Name = 'Dept'
Executing WQL query: SELECT * FROM SMS_ObjectContainerNode WHERE ObjectTypeName = 'SMS_Collection_Device' AND ParentContainerNodeId = 16777730 AND SearchFolder = 0 AND Name = 'Servers'
Executing WQL query: SELECT * FROM SMS_ObjectContainerNode WHERE ObjectTypeName = 'SMS_Collection_Device' AND ParentContainerNodeId = 0 AND SearchFolder = 0 AND Name = 'Delegated'
Executing WQL query: SELECT * FROM SMS_ObjectContainerNode WHERE ObjectTypeName = 'SMS_Collection_Device' AND ParentContainerNodeId = 16777255 AND SearchFolder = 0 AND Name = 'Dept'
Executing WQL query: SELECT * FROM SMS_ObjectContainerNode WHERE ObjectTypeName = 'SMS_Collection_Device' AND ParentContainerNodeId = 16777730 AND SearchFolder = 0 AND Name = 'Servers'
Anybody know of a way to keep this from happening? Maybe get the SCCM provider to cache its results or maybe a more-efficient command for verifying SCCM collection folders?