<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; VBScript: выгрузка данных Active Directory в csv-файл]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=2232</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=2232&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «VBScript: выгрузка данных Active Directory в csv-файл».]]></description>
		<lastBuildDate>Thu, 11 Sep 2008 11:52:45 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[VBScript: выгрузка данных Active Directory в csv-файл]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=14007#p14007</link>
			<description><![CDATA[<p>Скрипт формирует csv-файл по укзанному пути с выгрузкой указанных реквизитов AD. AD обходится рекурсивно, от указанной точки. (См. раздел &quot;Настройки&quot; в коде скрипта.) Полученный csv-файл удобно просматривать в Excel.<br /></p><div class="codebox"><pre><code>Option Explicit

Dim oFSO, oTextStream &#039; объекты для записи в файл
Dim sFileOut &#039; путь к файлу для выгрузки
Dim sStartPoint &#039; начальная точка входа в AD
Dim oHolding &#039; объект точки входа в AD
Dim aFieldsE &#039; массив названий полей элементов для выгрузки
Dim aFieldsC &#039; массив названий полей контейнеров для выгрузки

&#039; =&gt; НАСТРОЙКИ ====================================================================================
sStartPoint = UCase(&quot;LDAP://OU=myou,DC=mydomain,DC=ru&quot;) &#039; начальная точка входа в AD
aFieldsE = Array(&quot;ou&quot;, &quot;cn&quot;, &quot;extensionAttribute14&quot;) &#039; массив названий полей элементов для выгрузки
aFieldsC = Array(&quot;ou&quot;) &#039; массив названий полей контейнеров для выгрузки
sFileOut = &quot;C:\Temp\ad.csv&quot; &#039; путь к файлу для выгрузки
&#039; &lt;= НАСТРОЙКИ ====================================================================================

Set oHolding = GetObject(sStartPoint)
Set oFSO = CreateObject(&quot;Scripting.FileSystemObject&quot;)
Set oTextStream = oFSO.OpenTextFile(sFileOut, 2, True)
WalkActiveDirectory oHolding
oTextStream.Close
WScript.Echo &quot;Выгрузка данных AD в файл &quot;&quot;&quot; &amp; sFileOut &amp; &quot;&quot;&quot; завершена.&quot;
&#039;==================================================================================================
Sub WalkActiveDirectory(ByRef oStart)
    On Error Resume Next
    Dim oOrgUnit &#039; вложенное подразделение
    Dim i &#039; счётчик
    ReDim aValuesE(UBound(aFieldsE)+1) &#039; массив значений полей элемента для выгрузки
    ReDim aValuesC(UBound(aFieldsC)) &#039; массив значений полей контейнера для выгрузки
    
    If IsEmpty(oStart.ou) Then &#039; это элемент
        For i = 0 To UBound(aFieldsE)
            aValuesE(i) = oStart.Get(aFieldsE(i))
        Next
        aValuesE(i) = oStart.ADsPath
        &#039;WScript.Echo Join(aValuesE, &quot;;&quot;)
        oTextStream.WriteLine Join(aValuesE, &quot;;&quot;)
    Else &#039; это контейнер
        For i = 0 To UBound(aFieldsC)
            aValuesC(i) = oStart.Get(aFieldsC(i))
        Next
        &#039;WScript.Echo Join(aValuesC, &quot;;&quot;)
        oTextStream.WriteLine Join(aValuesC, &quot;;&quot;)
        For Each oOrgUnit In oStart
            WalkActiveDirectory oOrgUnit
        Next
    End If
End Sub</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (The gray Cardinal)]]></author>
			<pubDate>Thu, 11 Sep 2008 11:52:45 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=14007#p14007</guid>
		</item>
	</channel>
</rss>
