Light-electric.com

IT Журнал
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Powershell подключение к домену

Предоставление разрешений на подключение к домену

Автоматизируйте процесс предоставления разрешения на присоединение компьютеров к домену в PowerShell с помощью сценария

Принцип предоставления минимальных прав в применении к Active Directory (AD) означает, что пользователям следует назначать только те разрешения, которые необходимы для выполнения их профессиональных обязанностей. Чем крупнее компания, тем больше вероятность, что разрешения AD даются различным группам. Типичный пример — предоставление разрешений группе службы поддержки для сброса паролей и разблокирования учетных записей пользователей. Дополнительные сведения о делегировании AD можно найти в тематическом разделе Delegating administra­tion («Делегирование админи­стри­рования») документации по продукту по адресу: https://technet.microsoft.com/en-us/library/cc778807.aspx.

Принцип предоставления минимальных прав также применяется для управления учетными записями компьютеров. По умолчанию пользователи домена могут создать и присоединить к домену до 10 компьютеров. Это значение в домене можно изменить с помощью атрибута ms-DS-MachineAccountQuota, как отмечается в статье базы знаний Microsoft Default limit to number of workstations a user can join to the domain (https://support.microsoft.com/en-us/kb/243327). Многие администраторы доменов устанавливают значение этого параметра равным нулю, чтобы обеспечить соответствие процессам и стандартам компании (например, запретить пользователям назначать компьютерам произвольные имена). В результате во многих компаниях требуется делегировать права для присоединения компьютеров к домену.

Предоставление разрешения на присоединение компьютеров к домену

Вы можете назначить разрешения на присоединение компьютера при создании учетной записи компьютера, нажав кнопку Change («Изменить») в обычном графическом интерфейсе Microsoft (см. метку 1 на экранах 1 и 2).

С помощью кнопки Change в средствах ADUC и ADAC графического интерфейса вы предоставляете набор разрешений на объект-компьютер. Далее я покажу, каким образом можно назначить разрешения вручную, а затем мы рассмотрим сценарий PowerShell для автоматизации процесса.

Предоставление разрешения на присоединение вручную с помощью графического интерфейса

Ниже последовательно описан процесс предоставления разрешений на присоединение учетной записи компьютера с консоли ADUC вручную.

  1. В меню View («Вид») выберите режим Advanced Features («Дополнительные параметры»). В противном случае вкладка Security («Безопасность») для объектов AD не будет видна.
  2. Дважды щелкните объект-компьютер, чтобы увидеть его свойства, а затем выберите вкладку Security.
  3. Нажмите кнопку Add («Добавить»), выберите пользователя или группу, которые смогут присоединить компьютер, а затем установите в столбце Allow («Разрешить») флажки Reset password («Сбросить пароль»), Validated write to DNS host name («Удостоверенная запись на узел с DNS-именем»), Validated write to service principal name («Удостоверенная запись на узел с именем участника службы») и Write account restrictions («Ограничения учетной записи для записи»), как показано на экране 3. Нажмите кнопку Apply («Применить»).

Ручное назначение разрешений на присоединение компьютера с помощью кнопки Change или вкладки Security — медленный процесс с высокой вероятностью ошибок. Поэтому давайте посмотрим, как можно его автоматизировать с помощью сценария PowerShell.

Сценарий Grant-ComputerJoinPermission.ps1

Я подготовил сценарий Grant-ComputerJoinPermission.ps1 (см. листинг), чтобы предоставить четыре необходимых разрешения (см. экран 3) для одной или нескольких учетных записей компьютеров. Синтаксис сценария следующий:

Параметр -Identity указывает, кто сможет присоединять компьютеры к домену. Вы можете ввести этот параметр в формате username (например, kendyer), domainusername (например, fabrikamkendyer) или username@domain (например, kendyer@fabrikam.com). Имя параметра (-Identity) вводить не обязательно, если вы указываете его первым в командной строке. Этот параметр не поддерживает подстановочные знаки.

Параметр -Name задает имена одной или нескольких учетных записей компьютеров. Имя параметра (-Name) можно опустить, если разместить имена учетных записей компьютеров на второй позиции в командной строке сценария. Этот параметр принимает входные данные конвейера, поэтому имя параметра тоже следует опустить, если имена компьютеров передаются в сценарий через конвейер. Данный параметр не поддерживает подстановочные знаки.

Параметр -Domain указывает имя домена, в котором размещаются учетные записи компьютеров (например, fabrikam или fabrikam.com).

Параметр -Credential указывает учетные данные, имеющие право назначать разрешения учетным записям компьютеров. Вы можете использовать этот параметр, если выполнили вход с учетной записью, не имеющей достаточных прав для предоставления разрешений учетным записям компьютеров.

Поведение параметров -WhatIf и -Confirm — такое же, как у команд PowerShell: -WhatIf указывает, какие действия выполняет сценарий, в то время как эти действия не совершаются, а -Confirm запрашивает подтверждение перед выполнением любого действия.

Примеры команд

1. Предоставить учетной записи kendyer разрешение для присоединения компьютера pc1 к домену:

2. Предоставить учетной записи kendyer разрешение для присоединения списка компьютеров к домену:

В этом примере файл Computers.txt содержит список имен компьютеров (по одному на строку). PowerShell покажет вносимые изменения из-за параметра -Verbose.

3. Предоставить учетной записи kendyer разрешение для присоединения компьютера pc1 к домену с использованием альтернативных учетных данных:

В этом примере команда Get-Credential запрашивает учетные данные, и PowerShell использует учетные данные, введенные в параметре -Credential (скобки вокруг Get-Credential обязательны).

4. Создать новую учетную запись компьютера и предоставить учетной записи kendyer разрешение для присоединения к домену:

В этом примере команда New-ADComputer создает объект-компьютер и выводит его с использованием параметра -PassThru. Затем объект-компьютер выводится в сценарий Grant-ComputerJoinPermission.ps1, который предоставляет учетной записи kendyer разрешение для присоединения компьютера к домену.

5. Создать список учетных записей компьютеров в подразделении и предоставить учетной записи lynndyer разрешение на их присоединение к домену:

В этом примере файл Computers.txt содержит список имен компьютеров, по одному в строке.

Автоматизация предоставления разрешения на присоединение

Итак, отныне предоставление разрешения на присоединение компьютеров к домену не обязательно медленный и подверженный ошибкам процесс графического интерфейса. Теперь вы можете автоматизировать его в PowerShell с помощью сценария Grant-ComputerJoinPermission.ps1.

Поделитесь материалом с коллегами и друзьями

Переименуйте компьютер и присоединитесь к домену в один шаг с PowerShell

Цель: на компьютере под управлением Windows Server 2008 R2 используйте PowerShell 2.0 для:

  1. Переименуйте компьютер
  2. Присоединение компьютера к домену

Условие: шаги 1 и 2 должны выполняться вместе, т. е. без перезагрузки компьютера между ними

Функции, которые я использую

Это функции PowerShell, которые я создал для каждого шага.

Переименовать Компьютер

Согласно моим интернет-исследованиям, PowerShell 2.0 в какой-то момент до выпуска имел встроенный командлет Rename-Computer , но он был удален по неизвестным причинам в CTP 3. Моя версия использует WMI.

Присоединение компьютера к домену

Как вы можете видеть, эта функция на самом деле является просто оболочкой для встроенного командлета Add-Computer , который собирает доменное имя и создает некоторые учетные данные для использования.

Шаги я уже пробовал

Попытка 1

  1. Вызов Переименовать-Компьютер
  2. Призыв Присоединиться-ComputerToDomain
  3. Перезапуск

Результат: вывод из Rename-Computer указывает, что имя было изменено, но после перезагрузки имя не изменилось, но компьютер был присоединен к домену

Попытка 2

  1. Призыв Присоединиться-ComputerToDomain
  2. Вызов Переименовать-Компьютер
  3. Перезапуск

Результат: возвращаемое значение от Rename-Computer равно 1326 (ошибка входа в систему: неизвестное имя пользователя или неверный пароль). Я предполагаю, что это связано с тем, что учетные данные домена требуются для переименования, как только он присоединяется к домену. Я попытался использовать учетные данные с вызовом Get-WmiObject в Rename-Computer, но он выдал ошибку о невозможности использовать другие учетные данные в локальной системе.

Попытка 3

  1. Вызов Переименовать-Компьютер
  2. Перезапуск
  3. Призыв Присоединиться-ComputerToDomain
  4. Перезапуск

Результат: все работает, как и ожидалось, но требуется дополнительный перезапуск. Работает, но я хочу исключить перезапуск на Шаге 2.

16 Ответов

Вы можете просто использовать Add-Computer, есть параметр для «-NewName»

Пример: Add-Computer -DomainName MYLAB.Local -ComputerName TARGETCOMPUTER -newname NewTARGETCOMPUTER

Возможно, вы захотите проверить также параметр » -OPTIONS»

Это решение работает:

  • Введите компьютер в домен Active Directory с проверкой подлинности (без перезагрузки)
  • Переименуйте компьютер с проверкой подлинности (без перезагрузки)
  • после перезагрузки

На самом деле есть несколько причин, по которым вы должны перезагрузиться после переименования компьютера или при присоединении к домену (что в основном является той же операцией с проверкой по AD). Один из них заключается в том, что на компьютерах на базе NT (я полагаю, что это началось с Windows 2000) приложение и сетевые службы считывают имя компьютера при запуске. Это единственный раз, когда они читают имя компьютера, поэтому, если вы переименуете компьютер без перезагрузки, сетевые и прикладные службы не будут реагировать на новое имя компьютера. Это особенно важно, когда вы сначала переименовываете компьютер, а затем пытаетесь присоединиться к домену, поскольку рукопожатие kerberos не может быть завершено без ответа сетевого стека на правильное имя компьютера.

Читать еще:  Как снять блокировку возникающих элементов браузера

Другая причина заключается в том, что несколько разделов реестра используют имя компьютера, и эти ключи не могут быть изменены во время их загрузки в память (кстати, именно поэтому некоторые программы требуют перезагрузки для завершения установки или удаления).

Вы можете использовать раздел реестра RunOnce (msdn.microsoft.com/en-us/library/aa376977%28v=vs.85%29.aspx) для автоматического запуска сценария присоединения домена при перезагрузке, но вам все равно придется перезагрузиться для обеих операций.

Если вы действительно хотите получить хитрость, вы можете добавить некоторый код в свой сценарий переименования, который установит ключ реестра RunOnce для запуска сценария присоединения домена после перезагрузки. Однако имейте в виду, что если вы собираетесь сделать это, то сценарий, который будет записываться в HKLM hive, должен быть запущен от имени администратора (особенно важно, если у вас включен UAC).

Если вы хотите сделать это, вы бы использовали что-то вроде этого в конце вашей функции переименования компьютера:

Это создаст подраздел в разделе реестра RunOnce (при условии, что вы используете Vista/7/2008) с именем «joinDomain» со значением » C:scriptsjoinDomain.ps1″

Если это не работает для вас, попробуйте изменить вторую строку на эту:

Дайте мне знать, если у вас возникнут проблемы.

параметры JoinWithNewName в Add-Computer могут выполнять эту работу .

— JoinWithNewName: переименовывает имя компьютера в новом домене в имя, указанное параметром NewName. При использовании параметра NewName этот параметр устанавливается автоматически. Этот параметр предназначен для использования с командлетом Rename-Computer. Если вы используете командлет Rename-Computer для переименования компьютера, но не перезапускаете компьютер, чтобы это изменение вступило в силу, вы можете использовать этот параметр для присоединения компьютера к домену с новым именем.

Я искал то же самое сегодня и наконец нашел способ сделать это. Мне намекнули, что это возможно благодаря использованию sconfig, который спрашивает вас, Хотите ли вы изменить имя компьютера после присоединения его к домену. Вот моя необработанная строка кода. Это могло бы быть усилено, но устать думать об этом сейчас.

Я смог выполнить обе задачи с одной перезагрузкой, используя следующий метод, и он работал со следующими флагами JoinDomainOrWorkGroup. Это была новая сборка и использование Windows 2008 R2 Enterprise. Я проверил, что он также создает учетную запись компьютера в AD с новым именем.

1 (0x1) По умолчанию. Присоединяет компьютер к домену. Если это значение не указано, то соединение представляет собой компьютер с рабочей группой

32 (0x20) Разрешает присоединение к новому домену, даже если компьютер уже присоединен к домену

В один шаг w / admin учетные данные:

-DomainName = ваше доменное имя (например, corp.local)

-ComputerName = имя вашего локального компьютера (например, компьютера, на котором вы находитесь. Используйте «Hostname» в PS, чтобы узнать имя).

-NewName = то, что вы хотите переименовать компьютер (например, CORP-ANNE-TX)

— Учетные данные = ваши учетные данные администратора, которые дают вам разрешение на выполнение этого действия (например, DomainAdmin = пример CorpJSmith. Появится диалоговое окно, чтобы положить в свой пароль)

Здесь вам не нужно ставить -ComputerName, так как это предполагает, что вы находитесь на локальном компьютере. Если делать это удаленно — совсем другая история.

xxxxxxxx = ваш домен и имя администратора (например, CorpJsmith)

Поскольку никто не отвечает, Я пытаюсь что-то сделать :

Я думаю, что понимаю, почему Attent one не работает. Это потому, что присоединение компьютера к домену каким-то образом также переименовывает компьютер (часть доменного имени, введите имя машины).

Так что вы пытаетесь сделать это полностью WMI способом, у вас есть метод в классе Win32_ComputerSystem под названием JoinDomainOrWorkgroup . Делая это на том же уровне, возможно, вы получите больше шансов заставить его работать.

Переименование-компьютер был удален из CTP3, потому что есть много вещей, сделанных при переименовании компьютера, и MS либо не хотел воссоздавать этот процесс, либо не мог включить все необходимые биты. Я думаю, что Джеффри Сноувер сказал просто использовать netdom.exe вместо этого, поскольку это лучшая практика для переименования компьютера в командной строке. Не тот ответ, который вы искали, но он должен указать вам правильное направление

Если вы сначала создадите учетную запись машины на DC,то сможете изменить имя и присоединиться к домену за одну перезагрузку.

Я хотел бы предложить следующее, что работало в автоматизированном качестве для меня. Он показывает последовательность шагов и связь между первым заданием имени, а затем присоединением к домену. Я использую это в скрипте в качестве точки оркестровки для Win2008r2 и win2012r2 через Scalr CMP для EC2 и Openstack cloud экземпляров.

Одно предостережение состоит в том, чтобы быть осторожным с учетными данными, вытаскивать их из хранилища ключей, а не жестко закодированными, как показано здесь . но это уже совсем другая тема.

Спасибо всем за ваши ответы.

При этом будет предложено ввести имя компьютера и присоединиться к домену, а затем перезагрузить компьютер.

Также добавить локальную учетную запись + переименовать компьютер на подсказки + для присоединения к домену в Промт

У меня есть протестированный код для присоединения к домену и переименования компьютера в servicetag.

DOMAINUSER = редактирование для пользователя в домене, который может присоединить компьютеры к домену. Пример:

DOMAIN = изменить домен, к которому вы хотите присоединиться. Пример:

Вот еще один способ сделать с «Computer Name/Domain Change» Windows системных свойств.

Другими словами, откройте вкладку Свойства системы| Имя компьютера и нажмите кнопку Изменить с помощью powershell. Это другой подход, он полезен в моей ситуации и может быть полезен для кого-то другого.

добавить-тип -AssemblyName microsoft.VisualBasic добавить-тип -AssemblyName System.Windows.Forms

SystemPropertiesComputerName старт-сон-секунды 1

[Microsoft.VisualBasic.Interaction]::AppActivate («системные свойства”)

[System.Windows.Forms.SendKeys]::SendWait(“”) начало-сон — Секунд 1

Работает на меня ^^

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

Существует ли простой и быстрый способ узнать, присоединен ли локальный компьютер к домену с PowerShell? Я нахожу много материала о получении текущего домена workgroup OR, но нет четких указаний на.

Я только что сделал свежую установку windows 7 professional, и я хотел бы присоединиться к моему компьютеру в домене через powershell, но получаю некоторую ошибку вот код, который я использую.

Прежде чем запрашивать Active Directory, мне нужно убедиться, что компьютер действительно подключен к корпоративной сети (т. е. к доменной сети) с безопасным подключением к контроллеру домена.

У меня есть лабораторная среда с использованием Server 2016 и Windows 10 VMs. На машине windows 10 я использую команду add-computer для присоединения к домену (windurst.net) с помощью учетной записи.

Я пытаюсь переименовать машину и добавить ее в домен с 1 перезапуском от WORKGROUP (после того, как машина будет переименована и присоединена к домену). Я попробовал код ниже, но это дает мне.

Я хочу распечатать список всех хостов, подключенных к домену. Я ищу команду, которая делает более или менее то, что делает тот, кто в Powershell, но для Linux: Get-ADComputer -Filter * |.

Можно ли добавить компьютер удаленно в домен с помощью PowerShell v2.0? Я знаю о Add-Computer CMDLET, но это не для remote adding. but я, возможно, ошибаюсь.

Я пытаюсь присоединить компьютер к домену с указанным OU с помощью Powershell. Add-Computer -domainname mydomain.net -OUPath OU=W2k8 R2 Servers,OU=Servers,DC=mydomain,DC=net -cred.

У меня есть среда просмотра VMWare, в которой мы обычно должны время от времени расширять пул большим количеством компьютеров. Чтобы наша среда добавила связанный компьютер-клон в пул к домену, мы.

Есть ли способ проверить, присоединена ли машина, на которой вы устанавливаете, к домену или к рабочей группе? Я нашел эту статью о том, как это сделать в Delphi, но я не могу получить эту работу в.

Переименуйте компьютер и присоединитесь к домену за один шаг с помощью PowerShell

цель: на компьютере под управлением Windows Server 2008 R2 используйте PowerShell 2.0 для:

  1. переименовать компьютер
  2. присоедините компьютер к домену

состояние: шаги 1 и 2 должны выполняться вместе, т. е. без перезагрузки компьютера между ними

функции, которые я использую

Это функции PowerShell, которые я создал для каждого шага.

переименовать Компьютер!—21—>

согласно моим интернет-исследованиям, PowerShell 2.0 в какой-то момент перед выпуском имел встроенный командлет под названием Переименовать-Компьютер, но он был удален по причинам, неизвестным в CTP 3. Моя версия использует WMI.

Читать еще:  Создание безопасного подключения яндекс браузер

присоединить компьютер к домену

Как вы можете видеть, эта функция на самом деле просто оболочка для встроенных командлетов Добавить-Компьютер который собирает имя домена и создает некоторые учетные данные для использования.

шаги, которые я пробовал

Попытка 1

  1. вызов Переименовать-Компьютер
  2. вызов Join-ComputerToDomain
  3. перезагрузка

результат: выход из Rename-Computer указывает, что имя было изменено, но после перезагрузки name не изменить, но компьютер был присоединен к домену

попытка 2

  1. вызов Join-ComputerToDomain
  2. вызов Переименовать-Компьютер
  3. перезагрузка

результат: возвращаемое значение от Rename-Computer-1326 (ошибка входа: неизвестное имя пользователя или неверный пароль). Я предполагаю, что это связано с тем, что учетные данные домена необходимы для переименования после его присоединения к домену. Я попытался использовать учетные данные с вызовом Get-WmiObject в Rename-Computer, но он бросил ошибка о невозможности использования различных учетных данных в локальной системе.

Попытка 3

  1. вызов Переименовать-Компьютер
  2. перезагрузка
  3. вызов Join-ComputerToDomain
  4. перезагрузка

результат: все работает, как ожидалось, но требуется перезагрузка. Работает, но я хочу устранить перезапуск на Шаге 2.

16 ответов

вы можете просто использовать Add-Computer, есть параметр для «- NewName»

пример: Add-Computer -DomainName MYLAB.Local -ComputerName TARGETCOMPUTER -newname NewTARGETCOMPUTER

вы можете также проверить параметр» — OPTIONS»

Это решение работает:

  • введите компьютер в домен Active Directory с аутентификацией (без перезагрузки)
  • переименовать компьютер с аутентификацией (без перезагрузки)
  • после, перезапустите

на самом деле есть несколько причин, по которым вы должны перезагрузиться после переименования компьютера или при присоединении к домену (что в основном та же операция с проверкой AD). Один из них заключается в том, что на компьютерах на базе NT (я считаю, что это началось с Windows 2000), приложение и сетевые службы читают имя компьютера при запуске. Который является только время они читают имя компьютера, поэтому, если вы должны были переименовать компьютер без перезагрузки, сеть и службы приложений не будут отвечать на новое имя компьютера. Это особенно важно, когда вы сначала переименовываете компьютер, а затем пытаетесь присоединиться к домену, так как рукопожатие kerberos не может быть завершено без сетевого стека, отвечающего на правильное имя компьютера.

еще одна причина заключается в том, что несколько разделов реестра используют имя компьютера, и эти ключи не могут быть изменены во время загрузки в память (кстати, поэтому некоторые программы требуется перезагрузка для завершения установки или деинсталляции).

вы можете использовать раздел реестра RunOnce (msdn.microsoft.com/en-us/library/aa376977%28v=vs.85%29.aspx) для автоматического запуска сценария присоединения к домену при перезагрузке, но вам все равно придется перезагрузиться для обеих операций.

Если вы действительно хотите усложнить, вы можете добавить код в свой скрипт переименования,который установит раздел реестра RunOnce для запуска сценария присоединения к домену при перезагрузке. Знать хотя, если вы собираетесь это сделать, сценарий, который будет писать в улей HKLM, должен быть запущен как администратор (особенно важно, если у вас включен UAC).

Если вы хотите это сделать, вы бы использовали что-то вроде этого в конце функции переименования компьютера:

это создаст подраздел в разделе реестра RunOnce (если вы используете Vista/7 / 2008) с именем «joinDomain» со значением «C:scriptsjoinDomain.ps1»

Если что не работает для вас, попробуйте изменить вторую строку на это:

Дайте мне знать, если у вас есть проблемы.

я смог выполнить обе задачи с одной перезагрузкой, используя следующий метод, и он работал со следующими флагами JoinDomainOrWorkGroup. Это была новая сборка и использование Windows 2008 R2 Enterprise. Я проверил, что он также создает учетную запись компьютера в AD с новым именем.

1 (0х1) По умолчанию. Присоединяет компьютер к домену. Если это значение не указано, соединение является компьютером рабочей группы

32 (0х20) Позволяет присоединиться к новому домену, даже если компьютер уже присоединен к домену

Я ищу то же самое сегодня и, наконец, получил способ сделать это. Мне намекнули, что это возможно благодаря использованию sconfig, который спрашивает вас, Хотите ли вы изменить имя компьютера после присоединения к домену. Вот моя строка кода raw. Это может быть усилено, но устать думать об этом сейчас.

параметры JoinWithNewName в Add-Computer может сделать эту работу .

— JoinWithNewName: переименовывает имя компьютера в новом домене в имя, указанное параметром NewName. При использовании параметра newname, этот параметр устанавливается автоматически. Этот параметр предназначен для использования с командлетом Rename-Computer. Если вы используете командлет Rename-Computer для переименования компьютера, но не перезагружаете его, чтобы сделать изменение эффективным, вы можете использовать это параметр для присоединения компьютера к домену с новым именем.

поскольку никто не отвечает, Я пробую что-то:

Я думаю, что понимаю, почему Attent one не работает. Это потому, что присоединение компьютера к домену каким-то образом также переименовывает компьютер (часть имени домена, введите имя машины).

Так что вы пытаетесь сделать это в полном виде WMI, у вас есть метод в Win32_ComputerSystem класс JoinDomainOrWorkgroup . Выполнение этого на том же уровне, возможно, дает вам больше шансов заставить его работать.

переименовать-компьютер был удален из CTP3, потому что есть много вещей, сделанных при переименовании компьютера, и MS либо не хотела воссоздавать этот процесс, либо не могла включить все необходимые биты. Я думаю, Джеффри Сновер сказал просто использовать netdom.exe вместо этого, так как это лучшая практика для переименования компьютера в командной строке. Не ответ, который вы искали, но должны указать вам в правильном направлении

Если вы сначала создадите учетную запись компьютера на DC, то вы можете изменить имя и присоединиться к домену за одну перезагрузку.

Я хотел бы предложить следующее, что работало в автоматическом режиме для меня. Он показывает последовательность шагов и связь между установкой имени сначала, а затем присоединением к домену. Я использую это в скрипте в качестве точки оркестровки для Win2008r2 и win2012r2 через Scalr CMP для экземпляров EC2 и Openstack cloud.

одно предостережение-быть осторожным с учетными данными, вытаскивать их из хранилища ключей, а не жестко закодированными, как показано здесь . но это различная тема.

спасибо всем, за ваши ответы.

это запросит имя компьютера и присоединится к домену, а затем перезагрузится.

также добавьте локальную учетную запись + переименуйте компьютер в приглашении + присоединитесь к домену в promt

у меня есть протестированный код для присоединения к домену и переименования компьютера в servicetag.

DOMAINUSER = редактировать пользователю домена, который может присоединять компьютеры к домену. Пример:

DOMAIN = изменить домен, к которому вы хотите присоединиться. Пример:

в один шаг с учетными данными администратора:

— DomainName = ваше доменное имя (например, corp.local)

-ComputerName-имя локального компьютера (например, компьютера вы находитесь на. Используйте «имя хоста» в PS, чтобы узнать имя).

— NewName = что вы хотите переименовать компьютер (например, CORP-ANNE-TX)

-Credentials = ваши учетные данные администратора, которые дают вам разрешение на выполнение этого действия (например, DomainAdmin = example CorpJSmith. Диалоговое окно появится, чтобы ввести пароль)

здесь вам не нужно ставить-ComputerName, поскольку предполагается, что вы находитесь на локальном компьютере. Если делать это удаленно; другая история.

xxxxxxxx = имя пользователя домена и администратора (например, CorpJsmith)

вот еще один способ сделать с» Имя компьютера/изменение домена » окна системных свойств.

другими словами, воспитывать Вкладка Свойства Системы| Имя Компьютера нажмите кнопку изменить использование powershell. Это другой подход, это полезно в моей ситуации, и это может быть полезно для кого-то другого.

add-type-AssemblyName microsoft.VisualBasic add-type-AssemblyName Система.Окна.Формы

SystemPropertiesComputerName start-sleep-секунды 1

[Microsoft.На языке VisualBasic.Взаимодействие]::AppActivate(«Системные Свойства»)

[системы.Окна.Формы.SendKeys]:: SendWait (««) запуск сна –Секунд 1

Get-ADDomainController: получаем информацию о контроллерах домена AD с помощью PowerShell

Командлет Get-ADDomainController можно использовать для получения информации о контроллерах домена в Active Directory. Данный командлет входит в состав модуля Active Directory для PowerShell и требует установки отдельного компонента RSAT (в Windows 10 1809 и выше RSAT устанавливается по-новому).

Командлет Get-ADDomainController

При запуске Get-ADDomainController без параметров командлет выводит информацию о текущем контроллере домена (LogonServer), который используется данным компьютером для аутентификации (DC выбирается при загрузке в соответствии с топологией сайтов AD).

Командлет вернул все поля с информацией о контроллере домена, доступной в AD.

Также вы можете найти контроллер домена, к которому должен относится ваш компьютер через механизм DCLocator:

Вы можете найти ближайший доступный DC с активной ролью AD Web Services:

Get-ADDomainController –ForceDiscover -Discover -Service ADWS

Читать еще:  Как вызвать консоль в браузере

Параметр Service можно использовать, чтобы найти PDC в домене:

Get-ADDomainController -Discover -Service PrimaryDC

Если ваш контроллер домена не найден или не отвечает, вы можете найти контроллер домена в ближайшем сайте AD (определяется по весу межсайтовых связей):

Get-ADDomainController –Discover –ForceDiscover -NextClosestSite

Чтобы вывести список все контроллеров домена в текущем домене, выполните:

Get-ADDomainController -Filter * | ft

Посчитать количество контроллеров домена в AD можно с помощью команды:

Get-ADDomainController -Filter * | Measure-Object

Выведем более удобную таблицу, в которой указаны все контроллеры домена с их именем, IP адресом, версией ОС и именем сайта AD:

Get-ADDomainController -Filter *| Select Name, ipv4Address, OperatingSystem, site | Sort-Object name

Если вам нужно получить информацию о DC из другого домена, нужно указать имя любого доступного DC в стороннем домене с помощью параметра –Server (возможно при наличии доверительных отношений между доменами).

Get-ADDomainController -Filter * -server dc01.contoso.cpm | Select Name, ipv4Address, IsGlobalCatalog, Site

Используем Get-ADDomainController для выборки контроллеров домена по условиям

Рассмотрим несколько полезных командлетов, которые можно использовать для получения списка контролеров домена в AD по определенным критериям.

Найти контроллер домена по его IP адресу:

Get-ADDomainController -Identity «10.1.1.120»

Найти все DC, в имени которых есть символы DC04:

Get-ADDomainController -Filter < name -like "*dc04*">| Select Name, ipv4Address, OperatingSystem, site

Поиск всех доступных DC в определенном сайте:

Get-ADDomainController -Discover -ForceDiscover -Site «Site-Name»

Вывести список DC в сайтах, имена которых начинаются с Mos*:

Get-ADDomainController -Filter | Select Name, ipv4Address, OperatingSystem, site

Get-ADDomainController -Filter < IsReadOnly -eq $true>| Select Name, ipv4Address, OperatingSystem, site

Найти DC в сайте “Site Name”, на которых включена роль Global Catalog:

Get-ADDomainController -Filter | Select Name, ipv4Address, OperatingSystem, site

PowerShell скрипт проверки доступности всех контроллеров домена

Следующая конструкция позволяет перебрать все контроллеры домена в Active Directory и выполнить для каждого из них определенное действие:

$AllDCs = Get-ADDomainController -Filter *
ForEach($DC in $AllDCs)
<
do something
>

Ниже приведен пример простого PowerShell скрипта, который проверяет доступность LDAPS порта (TCP 636) на каждом DC в домене с помощью командлета Test-NetConnection. Если LDAPS порт на DC не доступен, появляется предупреждение.

$AllDCs = Get-ADDomainController -Filter * | Select-Object Hostname,Ipv4address,isGlobalCatalog,Site,Forest,OperatingSystem
ForEach($DC in $AllDCs)
<
$PortResult=Test-NetConnection -ComputerName $DC.Hostname -Port 636 -InformationLevel Quiet
if ($PortResult -ne «$True»)<
write-host $DC.Hostname » не доступен» -BackgroundColor Red -ForegroundColor White
>else <
write-host $DC.Hostname » доступен» >
>

Получился простой скрипт мониторинга доступности DC. Ест еще различные сценарии перебора всех DC в домене. В предыдущих статьях мы уже показывали, как использовать Get-ADDomainController для поиска определенного события в журналах на всех контролерах домена. Например, для: поиска события блокировки учетной записи пользователя, поиска событий NTLMv1 аутентификации, поиска событий добавления пользователя в группу AD и т.д.

Предоставление разрешений на подключение к домену

Автоматизируйте процесс предоставления разрешения на присоединение компьютеров к домену в PowerShell с помощью сценария

Принцип предоставления минимальных прав в применении к Active Directory (AD) означает, что пользователям следует назначать только те разрешения, которые необходимы для выполнения их профессиональных обязанностей. Чем крупнее компания, тем больше вероятность, что разрешения AD даются различным группам. Типичный пример — предоставление разрешений группе службы поддержки для сброса паролей и разблокирования учетных записей пользователей. Дополнительные сведения о делегировании AD можно найти в тематическом разделе Delegating administra­tion («Делегирование админи­стри­рования») документации по продукту по адресу: https://technet.microsoft.com/en-us/library/cc778807.aspx.

Принцип предоставления минимальных прав также применяется для управления учетными записями компьютеров. По умолчанию пользователи домена могут создать и присоединить к домену до 10 компьютеров. Это значение в домене можно изменить с помощью атрибута ms-DS-MachineAccountQuota, как отмечается в статье базы знаний Microsoft Default limit to number of workstations a user can join to the domain (https://support.microsoft.com/en-us/kb/243327). Многие администраторы доменов устанавливают значение этого параметра равным нулю, чтобы обеспечить соответствие процессам и стандартам компании (например, запретить пользователям назначать компьютерам произвольные имена). В результате во многих компаниях требуется делегировать права для присоединения компьютеров к домену.

Предоставление разрешения на присоединение компьютеров к домену

Вы можете назначить разрешения на присоединение компьютера при создании учетной записи компьютера, нажав кнопку Change («Изменить») в обычном графическом интерфейсе Microsoft (см. метку 1 на экранах 1 и 2).

С помощью кнопки Change в средствах ADUC и ADAC графического интерфейса вы предоставляете набор разрешений на объект-компьютер. Далее я покажу, каким образом можно назначить разрешения вручную, а затем мы рассмотрим сценарий PowerShell для автоматизации процесса.

Предоставление разрешения на присоединение вручную с помощью графического интерфейса

Ниже последовательно описан процесс предоставления разрешений на присоединение учетной записи компьютера с консоли ADUC вручную.

  1. В меню View («Вид») выберите режим Advanced Features («Дополнительные параметры»). В противном случае вкладка Security («Безопасность») для объектов AD не будет видна.
  2. Дважды щелкните объект-компьютер, чтобы увидеть его свойства, а затем выберите вкладку Security.
  3. Нажмите кнопку Add («Добавить»), выберите пользователя или группу, которые смогут присоединить компьютер, а затем установите в столбце Allow («Разрешить») флажки Reset password («Сбросить пароль»), Validated write to DNS host name («Удостоверенная запись на узел с DNS-именем»), Validated write to service principal name («Удостоверенная запись на узел с именем участника службы») и Write account restrictions («Ограничения учетной записи для записи»), как показано на экране 3. Нажмите кнопку Apply («Применить»).

Ручное назначение разрешений на присоединение компьютера с помощью кнопки Change или вкладки Security — медленный процесс с высокой вероятностью ошибок. Поэтому давайте посмотрим, как можно его автоматизировать с помощью сценария PowerShell.

Сценарий Grant-ComputerJoinPermission.ps1

Я подготовил сценарий Grant-ComputerJoinPermission.ps1 (см. листинг), чтобы предоставить четыре необходимых разрешения (см. экран 3) для одной или нескольких учетных записей компьютеров. Синтаксис сценария следующий:

Параметр -Identity указывает, кто сможет присоединять компьютеры к домену. Вы можете ввести этот параметр в формате username (например, kendyer), domainusername (например, fabrikamkendyer) или username@domain (например, kendyer@fabrikam.com). Имя параметра (-Identity) вводить не обязательно, если вы указываете его первым в командной строке. Этот параметр не поддерживает подстановочные знаки.

Параметр -Name задает имена одной или нескольких учетных записей компьютеров. Имя параметра (-Name) можно опустить, если разместить имена учетных записей компьютеров на второй позиции в командной строке сценария. Этот параметр принимает входные данные конвейера, поэтому имя параметра тоже следует опустить, если имена компьютеров передаются в сценарий через конвейер. Данный параметр не поддерживает подстановочные знаки.

Параметр -Domain указывает имя домена, в котором размещаются учетные записи компьютеров (например, fabrikam или fabrikam.com).

Параметр -Credential указывает учетные данные, имеющие право назначать разрешения учетным записям компьютеров. Вы можете использовать этот параметр, если выполнили вход с учетной записью, не имеющей достаточных прав для предоставления разрешений учетным записям компьютеров.

Поведение параметров -WhatIf и -Confirm — такое же, как у команд PowerShell: -WhatIf указывает, какие действия выполняет сценарий, в то время как эти действия не совершаются, а -Confirm запрашивает подтверждение перед выполнением любого действия.

Примеры команд

1. Предоставить учетной записи kendyer разрешение для присоединения компьютера pc1 к домену:

2. Предоставить учетной записи kendyer разрешение для присоединения списка компьютеров к домену:

В этом примере файл Computers.txt содержит список имен компьютеров (по одному на строку). PowerShell покажет вносимые изменения из-за параметра -Verbose.

3. Предоставить учетной записи kendyer разрешение для присоединения компьютера pc1 к домену с использованием альтернативных учетных данных:

В этом примере команда Get-Credential запрашивает учетные данные, и PowerShell использует учетные данные, введенные в параметре -Credential (скобки вокруг Get-Credential обязательны).

4. Создать новую учетную запись компьютера и предоставить учетной записи kendyer разрешение для присоединения к домену:

В этом примере команда New-ADComputer создает объект-компьютер и выводит его с использованием параметра -PassThru. Затем объект-компьютер выводится в сценарий Grant-ComputerJoinPermission.ps1, который предоставляет учетной записи kendyer разрешение для присоединения компьютера к домену.

5. Создать список учетных записей компьютеров в подразделении и предоставить учетной записи lynndyer разрешение на их присоединение к домену:

В этом примере файл Computers.txt содержит список имен компьютеров, по одному в строке.

Автоматизация предоставления разрешения на присоединение

Итак, отныне предоставление разрешения на присоединение компьютеров к домену не обязательно медленный и подверженный ошибкам процесс графического интерфейса. Теперь вы можете автоматизировать его в PowerShell с помощью сценария Grant-ComputerJoinPermission.ps1.

Поделитесь материалом с коллегами и друзьями

Ссылка на основную публикацию
Adblock
detector