Текст книги "Настройка Active Directory. Windows Server 2008"
Автор книги: Dan Holme
Соавторы: Danielle Ruest,Nelson Ruest
Жанр:
ОС и Сети
сообщить о нарушении
Текущая страница: 12 (всего у книги 91 страниц)
cd h k l m : s o f t w a r e
d i r
Д и с к и т а к ж е создаются д л я псевдонимов, среды, сертификатов, ф у н к ц и й
и переменных. Д л я перечисления созданных пространств имен PSDrive введите
команду get-psdrive.
–) 104 Пользователи
Глава з
Создание пользователя с помощью Windows PowerShell
Далее мы применим Windows PowerShell д л я создания п о л ь з о в а т е л я в Active
Directory. Основной сценарий Windows PowerShell д л я с о з д а н и я пользователя
выглядит примерно так:
$obj 0U=[ADSI]"LDAP: //0U=Peop1 е, DC=contoso, DC=com"
$objUser=$objOU.Create("user","CN=Mary North")
SobjUser.Put("sAMAccountName", "тагу.north")
SobjUser.SetlnfoO
Э Т О Т К О Д демонстрируе т четыр е основны х шаг а п о с о з д а н и ю объект а в Ac -
tive Directory с помощью Windows PowerShell.
1. Подключение к контейнеру (например, подразделению), в к о т о р о м будет
создан объект.
2. Применение метода Create контейнера вместе с у к а з а н н ы м к л а с с о м и от-
носительным отличительным именем R D N (Relative D i s t i n g u i s h e d N a m e )
нового объекта.
3. Заполнение атрибутов объекта с помощью метода Put.
4. Подтверждение изменений в Active Directory с п о м о щ ь ю м е т о д а Setlnfo
объекта.
В следующих разделах эти четыре шага о п и с а н ы более д е т а л ь н о .
Подключение к контейнеру Active Directory
Чтобы создать такой объект, как пользователь, нужно запросить создание объек-
та у контейнера объекта. Таким образом, процесс н а ч и н а е т с я с в ы п о л н е н и я
действия (метода) с контейнером. Первый шаг состоит в п о д к л ю ч е н и и к это-
му контейнеру. Для работы с объектами Active D i r e c t o r y о б о л о ч к а W i n d o w s
PowerShell использует библиотеку адаптеров Active Directory Services Interface
(ADSI). Адаптер – это преобразователь между сложной и иногда п р и ч у д л и в о й
природой .NET Framework и упрощенной и согласованной с т р у к т у р о й W i n d o w s
PowerShell. Для подключения к объекту Active D i r e c t o r y в ы п о л н я е т с я строка
запроса LDAP, представляющая собой просто м о н и к е р п р о т о к о л а L D A P : / /
с именем DN объекта. Первая строка кода в ы г л я д и т с л е д у ю щ и м образом:
$obj 0U=[ADSI]"LDAP://0U=Peop1е, DC=contoso, DC=com"
Оболочка Windows PowerShell использует адаптер т и п о в A D S I д л я созда-
ния объектной ссылки на подразделение People и п р и с в а и в а е т ее п е р е м е н н о й .
Имя переменной objOU соответствует стандартам п р о г р а м м и р о в а н и я , согласно
которым для идентификации типа переменной и с п о л ь з у е т с я п р е ф и к с из трех
букв, а имена переменных могут быть любой д л и н ы и н а ч и н а т ь с я со з н а к а
доллара.
Применение метода Create
На этом этапе переменная $objOU является ссылкой на п о д р а з д е л е н и е People.
Вы можете запросить создание объекта с помощью метода к о н т е й н е р а Create.
Метод Create требует два параметра, передаваемых в качестве аргументов: класс
и RDN-имя объекта, которое является частью имени объекта в р о д и т е л ь с к о м
Занятие 2 Создание пользователей с помощью Windows PowerShell и VBScript •) Q3
контейнере. Б о л ь ш и н с т в о классов объектов используют в качестве своих RDN-
имен ф о р м а т СЫ=имя_обьекта. И м я R D N подразделения ( O U ) указывается
р ф о р м а т е 05=имя_подразделения, а и м я R D N домена – в формате D C = z ш я _
домена. З а т е м с л е д у ю щ а я с т р о к а создает объект п о л ь з о в а т е л я х RDN-именем,
у к а з а н н ы м в ф о р м а т е CN^Mary North:
SobjUser=$objOU.Create(«user»,"CN=Mary North")
П о л у ч е н н ы й объект п р и с в а и в а е т с я п е р е м е н н о й SobjUser, которая предста-
вит объект и п о з в о л и т м а н и п у л и р о в а т ь с ним.
Заполнение атрибутов пользователя
В а ж н о п о м н и т ь , ч т о н о в ы й о б ъ е к т и и з м е н е н и я не будут сохранены, пока
вы не п о д т в е р д и т е их, а д л я п о д т в е р ж д е н и я и з м е н е н и й требуется заполнить
все н е о б х о д и м ы е а т р и б у т ы . Н е о б х о д и м ы м атрибутом объектов пользовате-
л е й я в л я е т с я и м я в х о д а п р е д – W i n d o w s 2000. И м я L D A P этого атрибута —
sAMAccountName, п о э т о м у п р и в е д е н н а я н и ж е строка кода присваивает объекту
атрибут sAMAccountName с п о м о щ ь ю метода Put. Стандартный метод Put ис-
пользуется д л я з а п и с и свойства объекта. Д л я извлечения свойства применяется
с т а н д а р т н ы й метод Get. Д а л е е п о к а з а н а строка кода:
SobjUser.Put(«sAMAccountName», «тагу, north»)
Подтверждение изменения с помощью метода Setlnfo
Д л я п о д т в е р ж д е н и я и з м е н е н и й и с п о л ь з у й т е метод Setlnfo объектов Active
Directory, к а к п о к а з а н о в коде:
SobjUser. S e t l n f o O
Заполнение дополнительных атрибутов пользователя
П р е д ы д у щ и е к о м а н д ы создают пользователя л и ш ь с конфигурацией обязатель-
ного а т р и б у т а sAMAccountName. П р и создании объекта пользователя нужно за-
полнить и другие атрибуты. З а п и с ь свойства объекта пользователя выполняется
с п о м о щ ь ю метода Put. Вам н у ж н о многократно использовать один метод, ука-
зав к а ж д ы й атрибут, к о т о р ы й требуется добавить. Рассмотрим следующий код:
SobjUser.put(«sAMAccountName»,SsamAccountName)
SobjUser. put(«userPrincipalName»,SuserPrincipalName)
SobjUser.put(«displayName», SdisplayName)
SobjUser.put(«givenName»,SgivenName)
SobjUser. putC'sn", Ssn)
S o b j U s e r . p u t ( " d e s c r i p t i o n " , S d e s c r i p t i o n )
SobjUser.put(«company», Scompany)
Sobj User.put(«department», Sdepartment)
S o b j U s e r . p u t ( " t i t l e " , S t i t l e )
SobjUser.put(«mail», Smail)
SobjUser. S e t l n f o O
К а ж д а я из этих .команд з а п о л н я е т атрибут пользователя значением, которое
х р а н и т с я в п е р е м е н н о й . Не з а б ы в а й т е использовать метод SetlnfoQ объекта
пользователя д л я п о д т в е р ж д е н и я внесенных изменений в Active Directory. Пока
не будет п р и м е н е н метод SetlnfoQ, в н е с е н н ы е и з м е н е н и я будут выполняться
5 З а к . 3 3 9 9
–) 106 Пользователи
Глава з
только в локальной копии объекта. Метод SetlnfoQ оценивает свойства объек-
та для подтверждения. Если атрибуту присвоено недействительное значение,
вы получите ошибку в строке SetlnfoQ. С помощью метода GetlnfoQ объекта
пользователя можно перезагрузить исходный объект, отменив т а к и м образом
все изменения.
Чтобы узнать имя атрибута LDAP, в оснастке Active D i r e c t o r y – пользова-
тели и компьютеры (Active Directory Users and C o m p u t e r s ) о т к р о й т е в к л а д к у
Редактор атрибутов (Attribute Editor) диалогового окна свойств учетной записи
пользователя. Эта вкладка отображается при установке ф л а ж к а Д о п о л н и т е л ь -
ные компоненты (Advanced Features) в меню Вид (View). Р е д а к т о р а т р и б у т о в
выводит все атрибуты объекта, включая их L D A P – и м е н а и з н а ч е н и я . Ч т о б ы
отобразить свойства, заполненные для объекта п о л ь з о в а т е л я , м о ж н о т а к ж е
использовать любую из следующих команд:
SobjUser. psbase.properties
SobjUser | get-member
ПРИМЕЧАНИЕ Многозначные атрибуты
Хотя большинство атрибутов пользователя являются однозначными, некоторые
из них многозначные. Если атрибут принимает множество значений, используйте
метод PutExQ объекта пользователя. В Интернете выполните поиск ключевых слов
PowerShell user array PutEx, чтобы получить адреса ресурсов многочисленных сооб-
ществ, где описывается работа с многозначными атрибутами.
А как насчет пароля пользователя? Команда Put не п р и м е н я е т с я д л я назна-
чения пароля пользователя. Вместо нее используется метод SetPassword, ка к
показано ниже:
$obj User.SetPasswo rd («COmp! exP@sswO rd»)
К сожалению, метод SetPassword можно использовать т о л ь к о после созда-
ния пользователя и активизации метода SetlnfoQ. Э т о означает, что у ч е т н а я
запись создается до назначения пароля. З д е с ь д е л о не в о ш и б к е и л и огра-
ничении Windows PowerShell, а в сути протоколов K e r b e r o s и LDAP. Тем не
менее данная методика вполне безопасна, поскольку у ч е т н а я з а п и с ь с о з д а е т с я
в отключенном состоянии.
После этого нужно включить учетную запись. Ф л а г о м с о с т о я н и я у ч е т н о й
записи также нельзя манипулировать с п о м о щ ь ю к о м а н д ы Put. В м е с т о нее
используется следующая команда:
SobjUser. psbase. InvokeSet(«AccountDisabled»,Sfalse)
SobjUser. SetlnfoO
Импорт пользователей из базы данных
с помощью Windows PowerShell
Хотя на сертификационном экзамене от вас не потребуется п р и м е н е н и е ме-
тодов импорта из базы данных с помощью Windows PowerShell, з н а н и е э т и х
концепций обеспечит значительные преимущества в а в т о м а т и з а ц и и процесса
создания пользователей. Импорт выполняется с п о м о щ ь ю н е с к о л ь к и х строк
дополнительного кода с мощными командлетами W i n d o w s PowerShell.
Занятие 2
Создание пользователей с помощью Windows PowerShell и VBScript •) Q3
Предположим, что вы п о л у ч и л и из отдела кадров таблицу Excel с данными
0 новых сотрудниках. П р о г р а м м а Excel м о ж е т сохранить эти данные в виде
текстового ф а й л а с р а з д е л и т е л ь н ы м и з а п я т ы м и (.csv), который затем можно
и м п о р т и р о в а т ь с п о м о щ ь ю W i n d o w s P o w e r S h e l l . П е р в а я строка ф а й л а .csv
д о л ж н а содержать и м е н а полей; п о с л е нее следуют данные о каждом пользо-
вателе. В качестве простого п р и м е р а р а с с м о т р и м ф а й л .csv, сохраненный под
именем Newusers.csv:
cn,sAMAccountName, Fi rstName,LastName
John Woods, john.woods, Johnathan,Woods
Kim Akers,kim.akers,Kimberly,Akers
О б р а т и т е в н и м а н и е на то, что и м е н а п о л е й необязательно соответствуют
L D A P – и м е н а м а т р и б у т о в . Э т и и м е н а будут сопоставлены именам атрибутов
с п о м о щ ь ю с ц е н а р и я .
Оболочка W i n d o w s P o w e r S h e l l может импортировать этот источник данных
с п о м о щ ь ю о д н о й к о м а н д ы :
$dataSource=import-csv «newusers.csv»
П о с л е и м п о р т а и с т о ч н и к а д а н н ы х в нем н у ж н о пройти циклом по каждой
записи. Эта о п е р а ц и я в ы п о л н я е т с я б л о к о м foreach, использующим формат
foreach($dataRecord in $datasource)
(
tt выполнение действий
1 – ' ''
К о м а н д л е т ForEach п р о х о д и т ц и к л о м по каждому объекту или записи в ис-
т о ч н и к е д а н н ы х , п р и с в а и в а я т е к у щ и й объект п е р е м е н н о й SdataRecord, так
что т е к у щ у ю з а п и с ь п р е д с т а в л я е т п е р е м е н н а я SdataRecord. Теперь вы можете
просмотреть р е а л ь н ы е п о л я в к а ж д о й записи, которые становятся свойствами
переменной SdataRecord. Н а п р и м е р , р а с с м о т р и м и м я первого пользователя:
SdataRecord.FirstName
Его м о ж н о п р и с в о и т ь п е р е м е н н о й :
SgivenName = SdataRecord.FirstName
О п я т ь – т а к и , п е р е м е н н а я и л и и м я п о л я необязательно должны соответство-
вать L D A P – и м е н и атрибута. С о п о с т а в л е н и е в ы п о л н я е т с я при записи перемен-
ной со з н а ч е н и е м в сам а т р и б у т :
$obj User.Put(«givenName», SgivenName)
L D A P – а т р и б у т givenName з а к л ю ч е н в к а в ы ч к и . Корректно использовать
и м я требуется т о л ь к о п р и с с ы л к е на р е а л ь н ы й атрибут объекта. Тем не менее
код п р о щ е п о н я т ь , е с л и и м е н а п о л е й и с т о ч н и к а данных и переменных соот-
ветствуют и м е н а м а т р и б у т о в .
С л о ж и в все ф р а г м е н т ы кода вместе, п о л у ч и м сценарий импорта пользова-
теля ( с ц е н а р и й U s e r i m p o r t . p s l ) :
$objOU=[ADSI]"LDAP://OU=People,DC=contoso,DC=com"
SdataSource=import-csv «NewUsers.csv»
foreach($dataRecord in $datasource) {
ttmap variables to data source
–) 08 Пользователи
Глава з
$cn=$dataRecord.cn
SsAMAccountName=SdataRecord. sAMAccountName
$givenName=SdataRecord. Fi rstName
Ssn=SdataRecord.LastName
SdisplayName=Ssn + ", " + SgivenName
SuserPrincipalName=SgivenName + "." + $sn + «©contoso. com»
«create the user object
SobjUser=SobjOU.Create(«user»,"CN="+Scn)
SobjUser. Put («sAMAccountName», SsAMAccountName)
SobjUser. Put(«userPrincipalName»,SuserPrincipalName)
SobjUser.Put(«displayName»,SdisplayNamB)
SobjUser. PutCgivenName", SgivenName)
SobjUser. Put(«sn»,Ssn)
SobjUser. SetlnfoO
SobjUser.SetPassword(«COmp!exP@sswOrd»)
SobjUser. psbase. InvokeSetC'AccountDisabled", Sfalse)
SobjUser. SetlnfoO
}
Первая строка сценария подключается к контейнеру OU ( п о д р а з д е л е н и е ) ,
в котором будут созданы все новые пользователи. С л е д у ю щ и е д в е с т р о к и под-
ключаются к источнику данных и выполняют цикл по всем записям, п р и с в а и в а я
каждую запись переменной SdataRecord. Б л о к foreach в ы п о л н я е т две операции.
Во-первых, он сопоставляет поля в источнике д а н н ы х с п е р е м е н н ы м и . З а т е м
он создает пользователя.
Обратите внимание на то, что некоторые п е р е м е н н ы е к о н с т р у и р у ю т с я пу-
тем конкатенации (объединения) двух полей. Переменная SdisplayName и с п о л ь -
зует формат LastName, FirstName, а переменная SuserPrincipalName — ф о р м а т
FirstName, [email protected].
Пользователь создается с помощью метода Create подразделения. А т р и б у т ы
пользователя заполняются и подтверждаются, после чего н а з н а ч а е т с я п а р о л ь
и выполняется включение учетной записи.
.Выполнение сценария Windows PowerShell
По умолчанию Windows PowerShell запрещает в ы п о л н е н и е с ц е н а р и е в из со-
ображений безопасности. Для запуска сценария требуется и з м е н и т ь п о л и т и к у
выполнения Windows PowerShell с помощью следующей к о м а н д ы :
set-executionpolicy remotesigned
Политика выполнения указывает сценарии, к о т о р ы е м о ж н о з а п у с к а т ь .
Вышеприведенная команда конфигурирует W i n d o w s P o w e r S h e l l д л я з а п у с к а
локальных сценариев и требования подписи сценариев из у д а л е н н ы х источни-
ков. Изменение политики выполнения влияет на безопасность, п о э т о м у реко-
мендуется прочитать информацию о запуске сценариев W i n d o w s PowerShell,
находящуюся по адресу http://www.microsoft.com/technet/scriptcenter/topics/
winpsh/manual/run.mspx#EXC.
После назначения политики выполнения можно запустить сценарий, од-
нако если указать для запуска лишь имя сценария, возникнет о ш и б к а . Н у ж н о
Занятие 2
Создание пользователей с помощью Windows PowerShell и VBScript •) Q3
указать путь к с ц е н а р и ю . Вы м о ж е т е использовать нотацию имя_сценария,
которая означает т е к у щ и й каталог. Н а п р и м е р , с л е д у ю щ а я команда выполняет
сценарий и м п о р т а п о л ь з о в а т е л е й :
.UserImport. ps1
Введение в VBScript
Я з ы к сценариев V B S c r i p t п о д д е р ж и в а е т автоматизацию административных за-
дач во всех т е к у щ и х в е р с и я х W i n d o w s . С ц е н а р и и VBScript представляют собой
текстовые ф а й л ы , которые, к а к правило, редактируются с помощью программы
Б л о к н о т ( N o t e p a d ) и л и р е д а к т о р а с ц е н а р и е в и сохраняются с расширением
.vbs. Д л я в ы п о л н е н и я с ц е н а р и я м о ж н о д в а ж д ы щ е л к н у т ь его значок. Сцена-
рий о т к р о е т с я с п р и м е н е н и е м к о м а н д ы Wsctipt.exe. В качестве альтернативы
с ц е н а р и й м о ж н о з а п у с т и т ь в к о м а н д н о й строке с п о м о щ ь ю команды Cscript.
ехе, п р и м е н и в с л е д у ю щ и й синтаксис:
cscript.exe имя_сценария
О б е к о м а н д ы , Wscript.exe и Cscript.exe, я в л я ю т с я к о м п о н е н т а м и сервера
с ц е н а р и е в W S H ( W i n d o w s S c r i p t i n g H o s t ) , представляющего собой структуру
а в т о м а т и з а ц и и , у с т а н о в л е н н у ю в о всех т е к у щ и х версиях Windows, которая
п о д д е р ж и в а е т н е с к о л ь к о я з ы к о в сценариев, в том числе и VBScript.
Создание пользователя с помощью VBScript
П о с к о л ь к у V B S c r i p t т а к ж е и с п о л ь з у е т и н т е р ф е й с A D S I д л я манипулирова-
н и я о б ъ е к т а м и в Active Directory, п р о ц е с с создания пользователя в VBScript
и д е н т и ч е н с о з д а н и ю п о л ь з о в а т е л я в W i n d o w s PowerShell. Приведем простой
п р и м е р с ц е н а р и я с о з д а н и я п о л ь з о в а т е л я :
' Set objOU=GetObject(«LDAP://OU=People,DC=contoso, DC=com»)
Set objUser=objOU.Create(«user»,"CN=Mary North")
objUser.Put «sAMAccountName»,"тагу.north"
o b j U s e r . S e t l n f o O
В н а ч а л е с ц е н а р и й п о д к л ю ч а е т с я к контейнеру OU (подразделение), в ко-
т о р о м будет создан п о л ь з о в а т е л ь . С ц е н а р и й V B S c r i p t применяет инструкцию
GetObject д л я п о д к л ю ч е н и я к о б ъ е к т у A D S I в соответствии с его отличитель-
н ы м и м е н е м . П р и п р и с в о е н и и объекта п е р е м е н н о й в VBScript для создания
о б ъ е к т н о й с с ы л к и и с п о л ь з у е т с я и н с т р у к ц и я Set.
Вторая строка кода а к т и в и з и р у е т метод Create подразделения д л я создания
объекта к о н к р е т н о г о к л а с с а с к о н к р е т н ы м о т л и ч и т е л ь н ы м именем точно так
же, как в п р и м е р е W i n d o w s P o w e r S h e l l . П о с к о л ь к у результатом выполнения
метода я в л я е т с я объект, д л я п р и с в о е н и я объектной ссылки переменной можно
вновь и с п о л ь з о в а т ь и н с т р у к ц и ю Set.
Т р е т ь я с т р о к а кода и с п о л ь з у е т м е т о д Put объекта пользователя, однако
в V B S c r i p t а р г у м е н т не з а к л ю ч а е т с я в к р у г л ы е скобки. Четвертая строка кода
и д е н т и ч н а W i n d o w s PowerShell: она подтверждает изменения. Сохраните сце-
н а р и й в в и д е ф а й л а Newuser.vbs и в ы п о л н и т е его в командной оболочке или
оболочке W i n d o w s P o w e r S h e l l с п о м о щ ь ю следующей команды:
cscript.exe newusers.vbs
–) 110 Пользователи
Глава з
Сценарии VBScript и Windows PowerShell
Сценарии VBScript имеют два значительных п р е и м у щ е с т в а по с р а в н е н и ю
с Windows PowerShell. Первое преимущество с о с т о и т в том, что с ц е н а р и и
VBScript можно запускать во всех текущих версиях W i n d o w s с п о м о щ ь ю сер-
вера сценариев WSH, а оболочку Windows PowerShell н у ж н о загружать и уста-
навливать во всех версиях Windows до W i n d o w s Server 2008 в м е с т е с п л а т -
формой .NET Framework не ниже версии 2.0. Второе п р е и м у щ е с т в о V B S c r i p t
заключается в том, что этот язык используется у ж е много л е т и в И н т е р н е т е
существует множество наработок, советов, р е к о м е н д а ц и й и д р у г о й п о л е з н о й
информации сообществ.
Тем не менее сервер сценариев W S H не обеспечивает о б о л о ч к у д л я непо-
средственного выполнения команд. Кроме того, я з ы к V B S c r i p t не н а с т о л ь к о
богат и не полностью использует структуру . N E T F r a m e w o r k . Х о т я в W i n d o w s
Server 2008 есть сервер сценариев W S H и п о д д е р ж и в а е т с я V B S c r i p t , б у д у щ е е
все же за Windows PowerShell. Поэтому оболочка W i n d o w s P o w e r S h e l l пред-
ставлена первой на этом занятии.
Недостатки Windows PowerShell я в л я ю т с я п р о т и в о п о л о ж н о с т ь ю п р е и м у -
ществ VBScript. Сам факт того, что оболочка W i n d o w s P o w e r S h e l п р е д с т а в -
ляет собой новый продукт, означает, что она все еще п р е б ы в а е т в п р о ц е с с е
разработки. В предыдущих разделах мы обсудили с о з д а н и е у ч е т н ы х з а п и с е й
с помощью Windows PowerShell. О п и с а н н ы е т е х н о л о г и и и код д о с т а т о ч н о
сложные и практически идентичны VBScript.
Дело в том, что текущая версия Windows PowerShell о б е с п е ч и в а е т весьма
ограниченную поддержку администрирования Active Directory. В о т л и ч и е от
интерфейса управления Windows W M I ( W i n d o w s M a n a g e m e n t I n t e r f a c e ) и
Microsoft Exchange Server с очень богатым н а б о р о м п о с т а в щ и к о в W i n d o w s
PowerShell, поддержка Active Directory о г р а н и ч е н а н е у к л ю ж и м а д а п т е р о м
ADSI и в конечном счете полагается на ADSI, к а к и в с ц е н а р и я х V B S c r i p t .
В будущих версиях Windows PowerShell будет обеспечен п о с т а в щ и к A c t i v e
Directory, который упростит работу с объектами Active D i r e c t o r y а н а л о г и ч н о
работе с файлами в файловой системе.
Помните, что на сертификационном экзамене 7 0 – 6 4 0 в а м не п о т р е б у е т с я
создавать сценарии Windows PowerShell или V B S c r i p t . О д н а к о вы д о л ж н ы
распознавать сценарии, в которых выполняется процесс с о з д а н и я п о л ь з о в а т е -
ля: подключение к подразделению, создание объекта, з а п о л н е н и е его свойств
и подтверждение изменений.
Практические занятия. Создание пользователей с помощью
сценариев Windows PowerShell и VBScript
В предложенных далее упражнениях вы создадите множество пользовательских
учетных записей с помощью автоматизированных методов, о п и с а н н ы х на этом
занятии. Для выполнения упражнений вам понадобится объект OU (подраз-
деление) первого уровня с именем Кадры в домене contoso.com.
Занятие 2 Создание пользователей с помощью Windows PowerShell и VBScript i 11
Упражнение 1. Установка Windows PowerShell
Чтобы и с п о л ь з о в а т ь W i n d o w s P o w e r S h e l l д л я в ы п о л н е н и я административных
задач, в этом у п р а ж н е н и и вы у с т а н о в и т е к о м п о н е н т W i n d o w s PowerShell.
1. О т к р о й т е Д и с п е т ч е р сервера ( S e r v e r M a n a g e r ) .
2. В дереве к о н с о л и щ е л к н и т е у з е л К о м п о н е н т ы (Features).
3. Щ е л к н и т е с с ы л к у Д о б а в и т ь к о м п о н е н т ы (Add Features).
4. В списке К о м п о н е н т ы ( F e a t u r e s ) в ы б е р и т е Windows PowerShell. Щелкните
к н о п к у Д а л е е ( N e x t ) .
5. Щ е л к н и т е к н о п к у У с т а н о в и т ь (Install).
6. После з а в е р ш е н и я у с т а н о в к и щ е л к н и т е к н о п к у З а к р ы т ь (Close).
7. Щ е л к н и т е п р а в о й к н о п к о й м ы ш и з н а ч о к W i n d o w s PowerShell в группе
п р о г р а м м W i n d o w s P o w e r S h e l l и п р и м е н и т е команду З а к р е п и т ь в меню
"Пуск" ( P i n То S t a r t M e n u ) .
Упражнение 2. Создание пользователя с помощью Windows PowerShell
Далее вы будете и с п о л ь з о в а т ь W i n d o w s PowerShell д л я создания пользователя
в Active Directory.
1. О т к р о й т е W i n d o w s P o w e r S h e l l .
2. П о д к л ю ч и т е с ь к п о д р а з д е л е н и ю Кадры, воспользовавшись командой:
$obj 0U=[ADSI]"LDAP://0U=Кадры, DC=contoso,DC=com"
3. С о з д а й т е о б ъ е к т п о л ь з о в а т е л я в подразделении с помощью команды:
$objUser=$objOU.Create(«user»," CN=M3PM Норт")
4. Посредством у к а з а н н о й д а л е е к о м а н д ы задайте обязательный атрибут име-
н и входа п р е д – W i n d o w s 2000 пользователя:
$obj User.Put(«sAMAccountName»,"тагу.north")
5. П о д т в е р д и т е и з м е н е н и я в Active Directory с п о м о щ ь ю команды:
$objUser.SetInfo()
6. П о д т в е р д и т е ф а к т с о з д а н и е объекта, в о с п о л ь з о в а в ш и с ь командой:
SobjUser.distinguishedName
К о м а н д а д о л ж н а в е р н у т ь о т л и ч и т е л ь н о е и м я пользователя.
7. С п о м о щ ь ю у к а з а н н о й н и ж е к о м а н д ы п р о а н а л и з и р у й т е атрибуты пользо-
вателя, а в т о м а т и ч е с к и о т к о н ф и г у р и р о в а н н ы е в Active Directory:
SobjUser | get-member
Эта команда п р о п у с к а е т через к о н в е й е р объект, представляющий пользова-
теля к о м а н д л е т у Get-Memver, к о т о р ы й перечисляет заполненные атрибуты.
Упражнение 3. Создание нового пользователя с помощью Windows PowerShell
В у п р а ж н е н и и 2 вы с о з д а л и п о л ь з о в а т е л я , непосредственно набирая команды
в W i n d o w s PowerShell. В этом у п р а ж н е н и и вы создадите сценарий Windows
PowerShell, к о т о р ы й а в т о м а т и з и р у е т создание пользователя.
–) 112 Пользователи
Глава з
1. Откройте программу Блокнот (Notepad). Введите т а к о й код.
Sob J O U = [ ADSI ]" LDAP: //011=Кадри, DOcontoso, DC=Com"
SobjUser=$obJOU.Create(«user», " C N = C K O T T Митчелл")
SobjUser. Put («sAMAccountName», «scott.mitchell»)
SobjUser.SetlnfoO
2. Сохраните сценарий под и м е н е м « N e w u s e r . p s l » в п а п к е Д о к у м е н т ы
(Documents), включая кавычки, чтобы п р о г р а м м а Б л о к н о т не д о б а в и л а
расширение .txt.
3. Откройте Windows PowerShell.
4. Введите команду get-childitem и нажмите к л а в и ш у Enter. К о м а н д л е т Get-
Childltem перечисляет все текущие дочерние о б ъ е к т ы в конвейере. Папка,
указанная в командной строке Windows PowerShell, н а х о д и т с я в конвейере.
5. Введите команду dir и нажмите клавишу Enter.
Псевдоним dir ссылается на командлет Get-Childltem.
6. Введите команду cd documents и нажмите к л а в и ш у Enter.
Вы должны перейти к папке Документы ( D o c u m e n t s ) .
7. Запустите сценарии на выполнение с п о м о щ ь ю к о м а н д ы
set-executionpolicy remotesigned
8. Чтобы выполнить сценарий, введите .newuser.ps1 и н а ж м и т е к л а в и ш у Enter.
Нотация. указывает текущий путь в качестве пути к сценарию. Б е з д а н н о й
нотации возникнет ошибка.
9. Проверьте, создан ли в Active Directory пользователь.
Упражнение 4. Создание нового пользователя с п о м о щ ь ю V B S c r i p t
В этом упражнении вы создадите сценарий VBScript, к о т о р ы й а в т о м а т и з и р у е т
процесс создания пользователя.
1. Откройте программу Блокнот (Notepad).
2. Введите следующие строки кода:
Set obj0U=Get0bject(«LDAP://0U=Кадры,DC=contoso,DC=com»)
Set objUser=objOU.Create(«user»,"CN=JtoHfla Митчелл")
objUser.Put «sAMAccountName»,"linda.mitchell"
objUser.SetlnfoO
3. Сохраните сценарий под именем « N e w u s e r . v b s » в п а п к е Д о к у м е н т ы
(Documents), включая кавычки, чтобы п р о г р а м м а Б л о к н о т не д о б а в и л а
расширение .txt.
4. Откройте окно командной строки.
5. Введите команду cd %userprofile%documents и н а ж м и т е к л а в и ш у E n t e r .
6. Выполните сценарий с помощью команды cscript.exe newuser.vbs.
7. Проверьте, был ли создан пользователь в Active Directory.
Занятие 2 Создание пользователей с помощью Windows PowerShell и VBScript •) Q3
Резюме
• Оболочка W i n d o w s P o w e r S h e l l обеспечивает поддержку выполнения адми-
нистративных задач в к о м а н д н о й строке и с помощью сценариев. Оболочка
Windows PowerShell я в л я е т с я к о м п о н е н т о м Windows Server 2008. Ее также
можно з а г р у з и т ь д л я W i n d o w s Server 2003, W i n d o w s Vista и Windows XP.
• Я з ы к сценариев V B S c r i p t м о ж н о обрабатывать сервером сценариев Windows
Scripting Host. Этот к о м п о н е н т есть во всех текущих версиях Windows.
• Д л я создания объекта Active Di r e c t o r y с п о м о щ ь ю Windows PowerShell или
VBScript вначале в ы п о л н я е т с я подключение к контейнеру (например, к под-
разделению), затем с о з д а е т с я объект, з а п о л н я ю т с я его свойства, после чего
и з м е н е н и я п о д т в е р ж д а ю т с я в Active Di r e ct o r y с помощью команды Setlnfo.
Закрепление материала
П ри веде нные н и ж е в о п р о с ы м о ж н о и с п о л ь з о в а т ь д л я проверки знаний, полу-
ченных на з а н я т и и 2. Э т и в о п р о с ы есть на сопроводительном компакт-диске.
ПРИМЕЧАНИЕ Ответы
Ответы на эти вопросы с пояснениями к каждому варианту ответа помещены в разде-
ле «Ответы» в конце книги.
1. Вам н у ж н о с о з д а т ь о б ъ е к т п о л ь з о в а т е л я с помощью Windows PowerShell.
К а к у ю о п е р а ц и ю с л е д у е т в ы п о л н и т ь ?
A. И с п о л ь з о в а т ь к о м а н д л е т Create-User.
Б. И с п о л ь з о в а т ь м е т о д NewUser и н т е р ф е й с а ADSI.
B. А к т и в и з и р о в а т ь м е т о д Create контейнера подразделения ( O U ) .
Г. П р и м е н и т ь и н с т р у к ц и ю set objUser=CreateObject.
2. Вам н у ж н о создать объект п о л ь з о в а т е л я с помощью одной команды. Какую
к о м а н д у с л е д у е т и с п о л ь з о в а т ь ?
A. К о м а н д л е т C r e a t e – I t e m .
Б. М е т о д Setlnfo.
B. М е т о д Create п о д р а з д е л е н и я ( O U ) .
Г. К о м а н д у Dsadd.
3. К а к и е из с л е д у ю щ и х с т р о к кода необходимы д л я создания объекта пользо-
в а т е л я в п о д р а з д е л е н и и К а д р ы ? ( У к а ж и т е все варианты. Каждый правиль-
н ы й в а р и а н т я в л я е т с я ч а с т ь ю п о л н о г о ответа.)
A. $ о ^ и 5 е г = $ о Ь ] О и . С г е а 1 е ( " ш е г " , " С Н = Д ж е ф ф Форд").
Б. $obj User. S e t I n f o ( ) .
B . $ о ^ и 5 е г = С г е а 1 е О Ь ] е с 1 ( " Ь О А Р : / / С Н = Д ж е ф ф Ф о р д , О и = К а д р ы , О С =
c o n t o s o , D C = c d m " ) .
Г. $ o b j O U = [ A D S I ] " L D A P : / / O U = K a f l p b i , D C = c o n t o s o , D C = c o m " .
–) 4 Пользователи
Глава з
Занятие 3. Поддержка пользовательских объектов
и учетных записей
На первых двух занятиях в этой главе описаны методы, с п о м о щ ь ю которых
можно создавать учетные записи пользователей. О д н а к о это л и ш ь п е р в ы й
шаг жизненного цикла пользователя в домене. После с о з д а н и я п о л ь з о в а т е л я
нужно отконфигурировать атрибуты, определяющие свойства п р и н ц и п а л а бе-
зопасности (учетной записи), а также свойства, у п р а в л я ю щ и е п о л ь з о в а т е л е м .
Кроме того, нужно знать, когда и как а д м и н и с т р и р о в а т ь у ч е т н у ю з а п и с ь д л я
сброса паролей и разблокировки. И наконец, н у ж н о уметь п е р е м е щ а т ь пользо-
вателя между подразделениями, а также отключать и у д а л я т ь у ч е т н у ю запись.
На этом занятии мы рассмотрим процедуры, и с п о л ь з у е м ы е для– п о д д е р ж к и
объектов пользователей на протяжении их ж и з н е н н о г о ц и к л а . Э т и п р о ц е д у р ы