sergey vasin

The IT blog

Развертываем новый лес Active Directory при помощи PowerShell – Hey, Scripting Guy! Blog

leave a comment »

Резюме: Microsoft Scripting Guy, Ed Wilson рассказывает об использовании Windows PowerShell для развертывания нового леса Active Directory.

Microsoft Scripting Guy, Ed Wilson на связи. Сегодня я собираюсь представить еще один отрывок из моей новой книги Windows PowerShell 3.0 Step by Step, которая сейчас доступна для предзаказа. Сегодняшний отрывок – из главы, посвященной использованию Windows PowerShell для развертывания Active Directory Domain Services.

Используем модуль ActiveDirectory для развертывания нового леса

Развертывание Active Directory Domain Services непростое дело. Существует несколько требований, которые должны быть выполнены. Также нужно настроить несколько вещей.

Одно из первых действий, которое необходимо совершить – это установка политики выполнения скрипта. Хотя наиболее простой способ – это использование групповой политики, если вы развертываете первый контроллер домена в первом домене в новом лесу, вероятно, что вы не сможете себе позволить подобную роскошь. Для установки политики выполнения скриптов используйте командлет Set-ExecutionPolicy. В качестве аргумента укажите что-нибудь вроде remotesigned.

Set-ExecutionPolicy remotesigned –force

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

Некоторые инфраструктурные требования приведены ниже.

  1. Сервер должен обладать правильным именем.

  2. Должен быть сконфигурирован статический IP-адрес.

  3. DNS должна быть развернута и сконфигурирована.

В дополнение к инфраструктурным требованиям, существуют требования ролей, которые будут развернуты.

  1. Windows PowerShell модуль ActiveDirectory.

  2. Active Directory Administrative Center.

  3. Оснастки и утилиты командной строки AD DS.

К счастью, все вышеперечисленные компоненты можно установить посредством модуля ServerManager и командлета Add-WindowsFeature. Что касается компонентов Windows, то все, что нам нужно входит в группу RSAT-AD-Tools. Скрипт AddADPrereqs.ps1 задает статический адрес, используя командлет New-NetIPAddress. Для определения индекса сетевого адаптера используется командлет Get-NetAdapter.

#set static IP address

$ipaddress = «192.168.0.225»

$ipprefix = «24»

$ipgw = «192.168.0.1»

$ipdns = «192.168.0.225»

$ipif = (Get-NetAdapter).ifIndex

New-NetIPAddress -IPAddress $ipaddress -PrefixLength $ipprefix `

-InterfaceIndex $ipif -DefaultGateway $ipgw

После назначения IP-адреса, командлет Rename-Computer задает новое имя компьютера. Этот командлет обладает параметром –Restart, но мы не будем пока перезагружать компьютер.

#rename the computer

$newname = «dc8508»

Rename-Computer -NewName $newname –force

После задания IP-адреса и изменения имени компьютера, пришло время добавления компонентов. Первое, что делает скрипт, это создает лог-файл в каталоге poshlog. Этот лог будет содержать информацию о добавлении компонентов. После завершения конфигурации запустится команда Get-WindowsFeature для получения списка установленных компонентов. Результаты выполнения этого командлета будут записаны в лог-файл.

Командлет Add-WindowsFeature поддерживает указание нескольких компонентов для установки, но при попытке их указать в одной команде, все следующие за первым компоненты отбрасываются. Поэтому, лучше добавлять их по одному за раз. Следующая часть скрипта добавляет инструменты RSAT Active Directory Domain Services.

#install features

$featureLogPath = «c:\poshlog\featurelog.txt»

New-Item $featureLogPath -ItemType file -Force

$addsTools = «RSAT-AD-Tools»

Add-WindowsFeature $addsTools

Get-WindowsFeature | Where installed >>$featureLogPath

Все что нам осталось сделать, это перезагрузить компьютер. Это можно сделать при помощи командлета Restart-Computer.

#restart the computer

Restart-Computer

Полный текст скрипта AddADPrereqs.ps1 приведен ниже.

AddAdPrereqs.ps1

#set static IP address

$ipaddress = «192.168.0.225»

$ipprefix = «24»

$ipgw = «192.168.0.1»

$ipdns = «192.168.0.225»

$ipif = (Get-NetAdapter).ifIndex

New-NetIPAddress -IPAddress $ipaddress -PrefixLength $ipprefix `

-InterfaceIndex $ipif -DefaultGateway $ipgw

#rename the computer

$newname = «dc8508»

Rename-Computer -NewName $newname -force

#install features

$featureLogPath = «c:\poshlog\featurelog.txt»

New-Item $featureLogPath -ItemType file -Force

$addsTools = «RSAT-AD-Tools»

Add-WindowsFeature $addsTools

Get-WindowsFeature | Where installed >>$featureLogPath

#restart the computer

Restart-Computer

После того как компьютер перезагрузится, войдите в систему и проверьте, все ли в порядке. Запустится утилита Server Manager и сообщит, что изменение имени и IP-адреса прошло успешно.

01

Следующее, что стоит проверить – правильно ли добавились роли и компоненты. Для этого проверьте файл FeatureLog.txt, который был создан перед перезагрузкой. Как видно на рисунке, все необходимые компоненты были добавлены.

02

После того, как вы изменили имя компьютера, задали статический IP-адрес и установили Active Directory Domain Services RSAT tools, пришла пора добавления ролей Active Directory Domain Services и DNS Server и компонента Group Policy Management.

Первое что мы сделаем – добавим путь к лог-файлу. После этого скрипт запустит задание с именем addFeature. Использование задания позволит скрипту дождаться завершения всех задач перед тем как продолжить свое выполнение. Так как скрипт добавляет компоненты в фоновом режиме, не будет выведено никакого индикатора выполнения. Каждая команда Add-WindowsFeature устанавливает все дочерние компоненты указанного компонента, а также инструменты управления. Это отличный способ быть уверенным, что вы установите все файлы, которые могут понадобиться определенному компоненту. И вы всегда можете что-то изменить позже.

После запуска задания, командлет Wait-Job приостанавливает работу скрипта до завершения задания addFeature. После этого он возвращает объект завершенного задания. В завершение скрипта запускается командлет Get-WindowsFeature, который записывает в лог-файл все установленные компоненты. Полный текст скрипта Add-ADFeatures.ps1 приведен ниже.

Add-ADFeatures.ps1

#Install AD DS, DNS and GPMC

$featureLogPath = «c:\poshlog\featurelog.txt»

start-job -Name addFeature -ScriptBlock {

Add-WindowsFeature -Name «ad-domain-services» -IncludeAllSubFeature -IncludeManagementTools

Add-WindowsFeature -Name «dns» -IncludeAllSubFeature -IncludeManagementTools

Add-WindowsFeature -Name «gpmc» -IncludeAllSubFeature -IncludeManagementTools }

Wait-Job -Name addFeature

Get-WindowsFeature | Where installed >>$featureLogPath

После завершения выполнения скрипта стоит просмотреть файл featurelog.txt. Он представлен на следующем рисунке.

03

Теперь можно создать новый лес и добавить сервер в качестве первого контроллера домена в созданном лесу. Необходимый командлет находится в модуле ADDSDeployment. Скрипт InstallNewForest.ps1 в сущности состоит только из этого одного командлета – Install-ADDSForest. Имя домена и NETBIOS имя домена представлены в качестве переменных. При запуске скрипта он потребует ввести пароль. Это пароль администратора нового домена. После установки функция автоматически перезагружает компьютер для завершения конфигурации. Полный текст скрипта InstallNewForest.ps1 приведен ниже.

InstallNewForest.ps1

# Create New Forest, add Domain Controller

$domainname = «nwtraders.msft»

$netbiosName = «NWTRADERS»

Import-Module ADDSDeployment

Install-ADDSForest -CreateDnsDelegation:$false `

-DatabasePath «C:\Windows\NTDS» `

-DomainMode «Win2012» `

-DomainName $domainname `

-DomainNetbiosName $netbiosName `

-ForestMode «Win2012» `

-InstallDns:$true `

-LogPath «C:\Windows\NTDS» `

-NoRebootOnCompletion:$false `

-SysvolPath «C:\Windows\SYSVOL» `

-Force:$true

Во время работы скрипта будет отображаться индикатор выполнения, как показано на рисунке.

04

Открыв DNS Manager можно увидеть что DNS настроена верно. Сконфигурирована зона прямого просмотра nwtraders.msft, и добавлены записи A, NS и SOA.

05

Автор:

Ed Wilson, Microsoft Scripting Guy

Оригинал:

http://blogs.technet.com/b/heyscriptingguy/archive/2013/01/03/use-powershell-to-deploy-a-new-active-directory-forest.aspx


Страницы в социальных сетях:

Twitter: https://twitter.com/vsseth
Facebook: https://fb.com/inpowershell
VKontakte: https://vk.com/inpowershell


Реклама

Written by Сергей Васин

Январь 6, 2013 в 19:57

Опубликовано в HeyScriptingGuyBlog, PowerShell

Tagged with

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s