vbscript to c # - список групп, в которые входит компьютер (получение массива) - PullRequest
1 голос
/ 21 марта 2011

Я долго искал здесь и гуглял по этому поводу. Я не могу понять мою голову.

Мне нужно предоставить список массивов другому инструменту, который у меня есть. Это написано на C #, лучшее, что я мог придумать для поиска групп для конкретного компьютера, это ниже. Как это будет выглядеть в C # с результатами, являющимися массивом?

Set objComputer = GetObject("LDAP://CN=ComputerName,CN=Computers,DC=contoso,DC=com")
Set colGroups = objComputer.Groups
For Each objGroup in colGroups
    Wscript.Echo objGroup.CN
    GetNested(objGroup) 
Next

Function GetNested(objGroup)
    On Error Resume Next
    colMembers = objGroup.GetEx("memberOf")
    For Each strMember in colMembers
        strPath = "LDAP://" & strMember
        Set objNestedGroup = GetObject(strPath)
        WScript.Echo objNestedGroup.CN
        GetNested(objNestedGroup)
    Next
End Function

1 Ответ

0 голосов
/ 22 марта 2011

Если использование .net framework 3.5 не является проблемой, существует гораздо более простой способ считывания рекурсивного членства в группах с помощью метода GetAuthorizationGroups в System.DirectoryServices.AccountManagement. Пример PowerShell есть в моем блоге .

...