如何查询用户所属的所有集合的SCCM?

我们将很快将所有的用户账户转移到一个新的域中,因为这部分用户账户将在SCCM中获取新的SMS ResourceIDs。

我需要做的是向SCCM查询用户所属的所有集合,以便我可以为新用户帐户复制这些集合,直接成员资格(而不是查询成员资格)是我感兴趣的。很容易find给用户的所有广告,而不是find他们的collections。

理想情况下,我希望能够通过脚本来获得这个信息,以便我可以使用第二个脚本将新的用户帐户添加到相关集合(已经能够通过脚本添加到集合中)。

目前运行SCCM 2007 R2。

好吧,在我阅读过更多的MSDN文档之后,我再次想到了这一点(这是一个混乱的)VBScript,

option explicit DIM strSCCMServer, objSCCM DIM strUserName, strDomain DIM strSMSUserID 'Central Site Server strSCCMServer = "SCCMSERVER01" 'Active Directory domain name strDomain = "DOMAIN_NAME" strUserName = InputBox ("Enter User Name") 'Find Site Code DIM objLoc, Results, Loc Set objLoc = CreateObject("WbemScripting.SWbemLocator") Set objSCCM = objLoc.ConnectServer(strSCCMServer, "root\sms") Set Results = objSCCM.ExecQuery ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") For each Loc in Results If Loc.ProviderForLocalSite = True Then Set objSCCM = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & Loc.SiteCode) End If Next 'Find domain user accounts for strUserName strSMSUserID = GetUserResourceID(strUserName, strDomain) If (strSMSUserID = "") Then wscript.echo "Error: no account found in " & strDomain & " for userID " & strUserName wscript.quit Else wscript.echo strDomain & "\" & strUserName & " = " & strSMSUserID End If 'Find all direct collection memberships of this account DIM colCollIDs, objCollResID Set colCollIDs = objSCCM.ExecQuery ("select * from SMS_CollectionMember_a where ResourceID='" & strSMSUserID & "'") for each objCollResID in colCollIDs DIM instColl Set instColl = objSCCM.Get ("SMS_Collection.CollectionID=""" & objCollResID.CollectionID &"""") wscript.echo objCollResID.CollectionID & " = " & instColl.Name next 'Obtain the SMS resource ID for a user account in a domain Function GetUserResourceID(strUser, strDomain) DIM objResID, colResourceIDs Set colResourceIDs = objSCCM.ExecQuery ("select ResourceID from SMS_R_User where UserName = '" & strUser &"' AND WindowsNTDomain = '"& strDomain &"'") for each objResID in colResourceIDs GetUserResourceID = objResID.ResourceID next End Function