Вам нужен метод MoveMembers класса SMS_ObjectContainerItem . После того, как вы создали коллекцию (Невозможно создать по правильному пути afaik).
Код powershell будет выглядеть примерно так:
[Array]$DeviceCollectionID = <CollID>
$TargetFolderID = <ContainerNodeID>
$CurrentFolderID = 0
$ObjectTypeID = 5000
Invoke-WmiMethod -Namespace 'Root\SMS\Site_<SiteCode>' -Class 'SMS_objectContainerItem' -Name 'MoveMembers' -ArgumentList $CurrentFolderID,$DeviceCollectionID,$ObjectTypeID,$TargetFolderID
Чтобы получить ContainerNodeID вашей целевой папки, вы можете использовать запрос, подобный следующему:
select * from sms_objectcontainernode where objecttypeName = 'sms_collection_device' where Name =<your target folder name>
Я не нашел действительного источника ms для ObjectIDTypes, но из моих собственных программ и нескольких известных мне примеров 5000 для папок коллекции. CurrentFolderID всегда равен 0, если вы только что создали что-то программно, потому что это будет в корне. Для существующей папки вы можете выяснить это так же, как ваша цель.
Существует также этот список из пример кода Я обнаружил, что у него нет источника, но, вероятно, он правильный.
Object type 2 - Package Folder
Object type 7 - Query Folder
Object type 9 - Software Metering Folder
Object type 14 - Operating System Installers Folder
Object type 17 - State Migration GFolder
Object type 18 - Image Package Folder
Object type 19 - Boot Image Folder
Object type 20 - Task Sequence Folder
Object type 23 - Driver Package Folder
Object type 25 - Driver Folder
Object type 2011 - Configuration Baseline Folder
Object type 5000 - Device Collection Folder
Object type 5001 - User Collection Folder
Object type 6000 - Application Folder
Object type 6001 - Configuration Item Folder
Если вам нужен какой-то тип, который отсутствует, вы также можете посмотреть на экземпляры sms_objectcontainernode и просто проверить, что у ваших папок есть тип