PowerShell Переместить коллекцию в другую папку в SCCM? - PullRequest
0 голосов
/ 30 августа 2018

У меня есть скрипт, который создает коллекции в SCCM, но мне нужно, чтобы он был создан в одной из подпапок в разделе «Коллекции устройств». Я не могу понять, как переместить коллекцию с помощью класса WMI. Поскольку этот скрипт не работает на самом сервере SCCM, я не могу использовать модуль configmanager для Move-CMobject. Есть ли способ реализовать перемещение коллекции, используя стиль кода PowerShell, приведенный ниже?

$CMCollection = ([WMIClass]”\root\sms\site_:SMS_Collection”).CreateInstance()
$CMCollection.name = $CollectionName
$CMCollection.LimitToCollectionID = “12345678”
$CMCollection.RefreshType = 2
$CMCollection.Put()

1 Ответ

0 голосов
/ 31 августа 2018

Вам нужен метод 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 и просто проверить, что у ваших папок есть тип

...