Как тут надо расставить i = " " и i = i & i, чтобы отформатированно оно было как при просмотре в оснастке Active Directory Users & Computers?
strMyOU = "Users"
strMyDomain = "OU=Company,DC=example,DC=com"
Set FSO = CreateObject("Scripting.FileSystemObject")
Set TF = FSO.CreateTextFile("C:\ADUsers "&Date()&".txt")
TF.Write vbcrlf
'i = " "
sub recurs(ou)
strContainer = "OU="+ou+"," + strMyDomain
set objOU = GetObject("LDAP://" & strContainer )
For each objUser in objOU
strLastUser = objUser.Get ("name")
If objUser.Class="user" then
'TF.Write i
TF.Write strLastUser
TF.Write vbCrLf
End If
If objUser.Class="organizationalUnit" then
'TF.Write i
TF.Write "OU="
TF.Write objUser.Get ("name")
TF.Write vbCrLf
'i = i & i
recurs(strLastUser+", OU="+ou)
End If
Next
'i = " "
End Sub
recurs strMyOU
TF.Close
Wscript.Echo ("Done !!!")
strMyOU = "Users"
strMyDomain = "OU=Company,DC=example,DC=com"
Set FSO = CreateObject("Scripting.FileSystemObject")
Set TF = FSO.CreateTextFile("C:\ADUsers "&Date()&".txt")
TF.Write vbcrlf
'i = " "
sub recurs(ou)
strContainer = "OU="+ou+"," + strMyDomain
set objOU = GetObject("LDAP://" & strContainer )
For each objUser in objOU
strLastUser = objUser.Get ("name")
If objUser.Class="user" then
'TF.Write i
TF.Write strLastUser
TF.Write vbCrLf
End If
If objUser.Class="organizationalUnit" then
'TF.Write i
TF.Write "OU="
TF.Write objUser.Get ("name")
TF.Write vbCrLf
'i = i & i
recurs(strLastUser+", OU="+ou)
End If
Next
'i = " "
End Sub
recurs strMyOU
TF.Close
Wscript.Echo ("Done !!!")
no subject
Date: 2008-01-16 11:51 am (UTC)no subject
Date: 2008-01-16 02:22 pm (UTC)no subject
Date: 2008-01-17 11:08 am (UTC)no subject
Date: 2008-01-17 06:52 am (UTC)Раскомментил твой код - список и так выглядит нормально. В чем, собственно, цимес?
no subject
Date: 2008-01-17 11:18 am (UTC)no subject
Date: 2008-01-18 04:29 am (UTC)Sub my_rec(ou, level)
strContainer = "OU="+ou+"," + strMyDomain
set objOU = GetObject("LDAP://" & strContainer )
For each objUser in objOU
strLastUser = objUser.Get ("name")
If objUser.Class="user" then
TF.Write space(level*4)
TF.Write strLastUser
TF.Write vbCrLf
End If
If objUser.Class="organizationalUnit" then
TF.Write space(level*4)
TF.Write "OU="
TF.Write objUser.Get ("name")
TF.Write "!"&vbCrLf
newlevel = level + 1
call my_rec(strLastUser+", OU="+ou, newlevel)
End If
Next
End Sub
call my_rec (strMyOU,0)
no subject
Date: 2008-01-18 07:01 am (UTC)