Задать вопрос

Как упростить ввод ПК в домен Active Directory?

Добрый день.
Имеется домен Active Directory, структура вида "OU=Users | Groups | Computers,OU=Departament,DC=Domain". На данный момент, ввод ПК в домен производится штатными средствами ОС, по умолчанию они создаются в "CN=Computers,DC=Domain" затем ручками переносятся в нужный контейнер, либо заранее создаётся учётная запись компьютера в нужном контейнере. На данный момент, к домену подключено только одно подразделение, в дальнейшем предполагается подключать к домену удалённые филиалы со своими админами и делегировать им права управления объектами только в своих "OU". Для автоматизации ввода ПК сразу в нужный "OU" написал примитивное приложение HTA с использованием VBScript:
...
Sub Join
            Const JOIN_DOMAIN = 1
            Const ACCT_CREATE = 2
            Const DEFERRED_SPN_SET = 256

            Set objComputer = GetObject("winmgmts:{impersonationLevel=Impersonate}!\\" & strComputer & _
                            "\root\cimv2:Win32_ComputerSystem.Name='" & strComputer & "'")
            ReturnValue = objComputer.JoinDomainOrWorkGroup(domainName, password.value , domainName & _
                            "\" & userName.value, "OU=Computers, OU=" & departament.value & ", " & baseDN, _
                            JOIN_DOMAIN + ACCT_CREATE + DEFERRED_SPN_SET)
            
            Select Case ReturnValue
                Case 0 Status = "Успешно. Для применения настроек необходимо перезагрузить ПК."
                Case 2 Status = "Ошибка. Задано не корректное подразделение (OU)."
                Case 5 Status = "Ошибка. Доступ запрещён."
                Case 53 Status = "Ошибка. Сетевой путь не найден."
                Case 87 Status = "Ошибка. Не корректные параметры."
                Case 1326 Status = "Ошибка. Не корректные имя пользователя или пароль."
                Case 1355 Status = "Ошибка. Не удалось связаться с доменом."
                Case 1909 Status = "Ошибка. Пользователь заблокирован."
                Case 2224 Status = "Ошибка. Компьютер с таким именем уже введён в домен."
                Case 2691 Status = "Ошибка. Данный компьютер уже введён в домен."
                Case Else Status = "Не известная ошибка (" & ReturnValue & ")."
            End Select
            
            If ReturnValue = 0 Then
                msgType = 64
                msgTitle = "Успешно"
            Else
                msgType = 16
                msgTitle = "Ошибка"
            End If
            
            Msgbox Status, msgType, msgTitle
End Sub
...

Но при помощи JoinDomainOrWorkGroup не получается одновременно переименовать машину и ввести в домен с новым именем, пытался переименовывать ПК при помощи Rename как до ввода в домен, так и после ввода в домен, в разных случаях эффект разный, либо не переименовывает, либо переименовывает, но вводит в домен со старым именем.
Вопросы:
1. Кто и как упрощает себе жизнь с вводом ПК в домен?
2. Как скриптом одновременно ввести ПК в домен и переименовать.
  • Вопрос задан
  • 12601 просмотр
Подписаться 7 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
@sainttechnik
Frontend developer, в прошлом админ
Для изменения имени компьютера винде вроде обязательно нужна перезагрузка.
Как вариант делать в два прохода: сначала изменить имя с перезагрузкой, потом ввести в домен.
Можно еще писать сам скрипт с параметрами в RunOnce - тогда после перезагрузки не нужно еще раз вручную запускать скрипт.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы