Список пользователей из определенных групп - PullRequest
0 голосов
/ 14 марта 2011

Доброе утро всем,

В настоящее время я раскрываю своего линейного руководителя. И мне нужно изменить существующий VBScript, чтобы вытащить пользователей из определенных групп в AD (коммерческая, финансовая, кадровая, ИТ, маркетинговая, операционная и имущественная):

Const ForReading = 1,ForWriting = 2,ForAppending = 8
StartFilename = "AD groups.txt"

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile(StartFilename,ForAppending, True)

strDomainName = inputbox("Enter Domain Name","AD Billing","") 

Set objDomain = GetObject("WinNT://" & strDomainName)

For each objDomainObject in objDomain
If objDomainObject.class = "Group" Then
Set objGroup = GetObject("WinNT://"& strDomainName & "/" & objDomainObject.Name)
objTextFile.writeline("")
objTextFile.writeline("Domain: " & strDomainName & "   Group: " & objDomainObject.Name)
objTextFile.writeline("")
Set objMemberList = objGroup.Members
For Each objGroupMember In objMemberList
Set objMember = objGroupMember
objTextFile.writeline ("Group member: " & objMember.Name)
Next
End If
Next
objTextFile.close

Любая помощь очень ценится С уважением

Джастин

Ответы [ 2 ]

0 голосов
/ 26 июля 2013

Вы пропустили это выше следующего оператора (Чтобы пересчитать объекты после помещения в контейнер / OU.):

If objDomainObject.Class = "organizationalUnit" Or 
   objDomainObject.Class = "container" Then
        enumMembers (objMember)
End If
0 голосов
/ 14 марта 2011

Просто добавьте еще If после If, где вы обнаружите, что это Group, но вместо сравнения с class сравните по имени.

Таким образом, исправляя своиИсходный код будет выглядеть примерно так:

Const ForReading = 1,ForWriting = 2,ForAppending = 8
StartFilename = "AD groups.txt"

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile(StartFilename,ForAppending, True)

strDomainName = inputbox("Enter Domain Name","AD Billing","") 
strGroupName =  inputbox("Enter Group Name","AD Billing","") 

Set objDomain = GetObject("WinNT://" & strDomainName)

For each objDomainObject in objDomain
    If objDomainObject.class = "Group" Then
        If objDomainObject.Name = strGroupName Then
            Set objGroup = GetObject("WinNT://"& strDomainName & "/" & objDomainObject.Name)
            objTextFile.writeline("")
            objTextFile.writeline("Domain: " & strDomainName & "   Group: " & objDomainObject.Name)
            objTextFile.writeline("")
            Set objMemberList = objGroup.Members
            For Each objGroupMember In objMemberList
                Set objMember = objGroupMember
                objTextFile.writeline ("Group member: " & objMember.Name)
            Next
        End If
    End If
Next
objTextFile.close

Я предположил, что вы хотите каждый раз спрашивать, какую группу использовать InputBox, в противном случае вы можете жестко закодировать эти значения в операторе If как
If objDomainObject.Name = "Commercial" Or objDomainObject.Name = "Finance" Or .... Then

...