1

Тема: VBScript: копирование значения одного поля Active Directory в другое

Скрипт для копирования данных из одного поля Active Directory в другое, у всех элементов. AD обходится рекурсивно, от указанной точки. Копирование поля не производится, если это контейнер или исходное поле пустое.

' Скрипт для копирования данных из одного поля Active Directory в другое, у всех элементов.

' AD обходится рекурсивно, от указанной точки.
' Копирование поля не производится, если это контейнер или исходное поле пустое.

Option Explicit

Dim sStartPoint ' начальная точка входа в AD
Dim FieldFrom ' имя поля Active Directory, которое копируем
Dim FieldTo ' имя поля Active Directory, в которое копируем
Dim oHolding ' объект точки входа в AD

' => НАСТРОЙКИ ====================================================================================
sStartPoint = UCase("LDAP://OU=holding,DC=mydomain,DC=ru") ' начальная точка входа в AD
FieldFrom = "info" ' имя поля Active Directory, которое копируем
FieldTo = "extensionAttribute14" ' имя поля Active Directory, в которое копируем
' <= НАСТРОЙКИ ====================================================================================

Set oHolding = GetObject(sStartPoint)
WalkActiveDirectory oHolding
WScript.Echo "Обработка завершена."
'==================================================================================================
Sub WalkActiveDirectory(ByRef oStart)
    On Error Resume Next
    Dim oOrgUnit ' вложенное подразделение
    Dim val ' значение поля FieldFrom
    
    If IsEmpty(oStart.ou) Then ' это элемент
        val = oStart.Get(FieldFrom)
        If Not IsEmpty(val) Then
            oStart.Put FieldTo, val ' собственно запись
            oStart.SetInfo
        End If
    Else ' это контейнер
        For Each oOrgUnit In oStart
            WalkActiveDirectory oOrgUnit
        Next
    End If
End Sub
Предложения в русском языке начинаются с большой буквы и заканчиваются точкой.
В названии ветки всегда должен быть указан язык программирования или среда исполнения скрипта, если это возможно.