2011-03-14 82 views
0

早上好,從特定羣組中列出用戶

我現在正在審查我的直線經理。我需要修改現有的爲VBScript,拉從特定用戶組在AD(商業,財務,人力資源,IT,市場營銷,運營和物業):

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 

任何幫助是極大的appriciated 親切的問候

賈斯汀

回答

0

只需要添加另外IfIf之後,你發現它是一個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

0

你缺少這下一條語句以上(要在容器/ OU之後被重新枚舉的對象。):

If objDomainObject.Class = "organizationalUnit" Or 
    objDomainObject.Class = "container" Then 
     enumMembers (objMember) 
End If