2017-04-18 1 views
0

를 사용하여 가져 오기 전 작업 시퀀스가 ​​난 단지 특정 하위 폴더에 저장되어있는 특정 작업 시퀀스를 얻을 수 있도록 WMI를 사용 앉아 위치를 식별하기 위해 노력하고있어. 위치 SCCM 2012의 작업 순서는 WMI의 C#을

에서 SCCM 구성 관리자의 예를 들어 "소프트웨어 라이브러리> 개요> 운영 시스템> 작업 시퀀스는"작업 시퀀스는 내가 앉아를 조회 할 어디 "라이브"라는 폴더가 이것이다. 내가 가진 문제는 내가 ("작업 시퀀스"에서) 무시하려는 작업 시퀀스가 ​​포함 된 다른 폴더의 개수도 있습니다입니다.

나는

select * from SMS_TaskSequencePackage 

을 사용하여 모든 작업 시퀀스를 얻을 수 있지만 모든 속성에 따라 어떤 위치가 없습니다.

답변

1

는 전 C#을 쓰고 잘 모르겠지만, 우리는 반드시 특정 폴더에있는 개체를 얻을 수 PowerShell 및 WMI 쿼리를 사용 할 수 있습니다.

그 전에 특정 폴더의ContainerNodeID를 먼저 알아야합니다. 그것을 얻을 수있는 방법이 많이 있습니다. 예를 들어 다음 쿼리를 사용합니다.

$node = Get-WmiObject -Namespace ROOT\SMS\SITE_pri -class sms_objectcontainernode | Where-Object {$_.name -eq "folder1"} 
$nodeID = $node.containerNodeID 

그런 다음이 노드에있는 모든 개체를 아래의 줄을 사용하여 가져올 수 있습니다. 20은 작업 순서 폴더 타입이다.

$items = Get-WmiObject -Namespace root\sms\site_pri -Class sms_objectcontaineritem | Where-Object {$_.objectType -eq '20' -and $_.containerNodeID -eq $nodeID } 

여기서 우리는 Folder1 내의 모든 객체를 얻습니다. 우리가이 폴더에있는 모든 작업 시퀀스 속성을 얻고 싶은 경우에, 우리는 아래에 추가 할 수 있습니다

$key = $items.instancekey 
$tasksequences = Get-WmiObject -Namespace root\sms\site_pri -class sms_tasksequencepackage | Where-Object {$_.packageID -in $key} 
$tasksequences 

을 그래서 모든 전체 스크립트는 다음과 같습니다합니다 (폴더 이름과 siteID 변경)

$node = Get-WmiObject -Namespace ROOT\SMS\SITE_pri -class sms_objectcontainernode | Where-Object {$_.name -eq "folder1"} 
$nodeID = $node.containerNodeID 
$items = Get-WmiObject -Namespace root\sms\site_pri -Class sms_objectcontaineritem | Where-Object {$_.objectType -eq '20' -and $_.containerNodeID -eq $nodeId } 
$key = $items.instancekey 
$tasksequences = Get-WmiObject -Namespace root\sms\site_pri -class sms_tasksequencepackage | Where-Object {$_.packageID -in $key} 
$tasksequences 
+0

감사 그게 전부는 부하를 돕고 필자는 필요한 작업 시퀀스 만 대상으로 관리했습니다. sms_objectcontainernode 및 sms_objectcontaineritem 쿼리에서 ID를 얻어서 난 후 PackageIds을 얻을 수있었습니다. – BillyDay

관련 문제