нашел скрипт, который дергает из указаной группы АД пользователей логин и ФИО и пишет в файл. Как бы допилить чтобы дергал еще и email.
скрипт
on error resume next
'Input data
DomainController = InputBox("Введите NetBIOS имя контроллера домена:","Имя контроллера домена","")
GroupName = InputBox("Введите имя группы:","Имя группы (Login Name)","")
'connect to AD object
Set objGroup = GetObject("WinNT://" & DomainController & "/" & GroupName)
'create *.csv file
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Fil = FSO.CreateTextFile("d:\" & GroupName & "_users.csv",2)
Fil.WriteLine(GroupName & vbCrLf & "Login Name;Full Name")
'List users
For Each Member in objGroup.Members
If Member.Class = "User" Then
Fil.WriteLine(Member.Name & ";" & Member.FullName)
else If Member.Class = "Cotact" Then
Fil.WriteLine(Member.Name & ";" & Member.FullName)
End If
End If
Next
Fil.Close
Wscript.Echo ("Выполение скрипта закончено" & vbCrLf & "Список пользователей находится в корне диска")
Fil.WriteLine(Member.Name & ";" & Member.FullName) else If Member.Class = "Cotact" Then Fil.WriteLine(Member.Name & ";" & Member.FullName)
Это гениально xDD
А по делу, наверное так Fil.WriteLine(GroupName & vbCrLf & "Login Name;Full Name;Email") А потом так Fil.WriteLine(Member.Name & ";" & Member.FullName & ";" & Member.Email)
Отредактировано -=KORSAR=- (, 8 лет 10 месяцев назад)
Fil.WriteLine(Member.Name & ";" & Member.FullName) else If Member.Class = "Cotact" Then Fil.WriteLine(Member.Name & ";" & Member.FullName)
Это гениально xDD
А по делу, наверное так Fil.WriteLine(GroupName & vbCrLf & "Login Name;Full Name;Email") А потом так Fil.WriteLine(Member.Name & ";" & Member.FullName & ";" & Member.Email)
Option Explicit
Dim StartTime,EndTime: StartTime = Now ' For seeing how long the script takes to run
Dim objShell
Dim objFSO
Const ScriptVersion = "1.01"
Set objShell = WScript.CreateObject("WScript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Wscript.Echo "StartTime = " & StartTime
' ***************************************************************** '
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Dim objRootDSE
Dim objDomain
Dim objContainer
Dim objOrganizationalUnit
Dim strOutputFileName, objOutputFileName, GarbageRC
Dim intUserObjectCountAll, intUserObjectCountSelected
strOutputFileName = "Roster_export.csv"
Set objOutputFileName = objFSO.OpenTextFile(strOutputFileName, ForWriting, True)
intUserObjectCountAll = 0
intUserObjectCountSelected = 0
Set objRootDSE = GetObject("LDAP://RootDSE")
Set objDomain = GetObject("LDAP://" & objRootDSE.Get("DefaultNamingContext"))
Call Sub_EnumOUs(objDomain.ADsPath)
Sub Sub_EnumOUs(sADsPath)
Set objContainer = GetObject(sADsPath)
objContainer.Filter = Array("OrganizationalUnit")
For Each objOrganizationalUnit in objContainer
WScript.Echo "Checking OU: " & objOrganizationalUnit.ADsPath
Wscript.Echo " User Object Count: " & intUserObjectCountAll
Sub_EnumUsers(objOrganizationalUnit.ADsPath)
Sub_EnumOUs(objOrganizationalUnit.ADsPath)
Next
End Sub
Sub Sub_EnumUsers(sADsPath)
Dim objADobject
Set objContainer = GetObject(sADsPath)
objContainer.Filter = Array("User")
For Each objADobject in objContainer
If objADobject.Class = "user" Then
intUserObjectCountAll = intUserObjectCountAll + 1
If objADobject.Mail <> "" Then
objOutputFileName.Writeline(Chr(34) & objADobject.displayName & Chr(34) & "," & objADobject.Mail)
intUserObjectCountSelected = intUserObjectCountSelected + 1
End If
End If
Next
End Sub
objOutputFileName.Close
' ***************************************************************** '
EndTime = Now
Wscript.Echo vbCrLf & "EndTime = " & EndTime
Wscript.Echo "Seconds Elapsed: " & DateDiff("s", StartTime, EndTime)
Wscript.Echo "Script Complete"
Wscript.Quit(0)