代码之家  ›  专栏  ›  技术社区  ›  user1342164

PowerShell是否将集合移动到SCCM中的其他文件夹?

  •  0
  • user1342164  · 技术社区  · 6 年前

    我有一个脚本可以在SCCM中创建集合,但我需要在“设备集合”下的一个子文件夹中创建它。我看不出如何使用WMI类移动集合。由于此脚本不在SCCM服务器上运行,因此我无法将configmanager模块用于 Move-CMobject

    $CMCollection = ([WMIClass]”\root\sms\site_:SMS_Collection”).CreateInstance()
    $CMCollection.name = $CollectionName
    $CMCollection.LimitToCollectionID = “12345678”
    $CMCollection.RefreshType = 2
    $CMCollection.Put()
    
    1 回复  |  直到 6 年前
        1
  •  2
  •   Syberdoor    6 年前

    你需要这个方法 MoveMembers 全班同学 SMS_ObjectContainerItem

    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源,但从我自己的程序和几个样本,我知道5000是收集文件夹。如果您只是以编程方式创建了某个对象,那么CurrentFolderID始终为0,因为它将位于根目录中。对于现有文件夹,您可以用与目标文件夹相同的方法来计算它。

    这里还有一张 some code sample

    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