2011-03-14 84 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