-) 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, LastName@contoso.com.
Пользователь создается с помощью метода Create подразделения. Атрибуты пользователя заполняются и подтверждаются, после чего назначается пароль и выполняется включение учетной записи.
.Выполнение сценария Windows PowerShell
По умолчанию Windows PowerShell запрещает выполнение сценариев из соображений безопасности. Для запуска сценария требуется изменить политику выполнения Windows PowerShell с помощью следующей команды:
set-executionpolicy remotesigned
Политика выполнения указывает сценарии, которые м о ж н о запускать . Вышеприведенная команда конфигурирует Windows PowerShell д л я запуска локальных сценариев и требования подписи сценариев из удаленных источников. Изменение политики выполнения влияет на безопасность, поэтому рекомендуется прочитать информацию о запуске сценариев Windows PowerShell, находящуюся по адресу http://www.microsoft.com/technet/scriptcenter/topics/ winpsh/manual/run.mspx#EXC.
После назначения политики выполнения можно запустить сценарий, однако если указать для запуска лишь имя сценария, возникнет ошибка. Н у ж н о
Занятие 2 Создание пользователей с помощью Windows PowerShell и VBScript •) Q3
указать путь к сценарию. Вы можете использовать нотацию \имя_сценария, которая означает текущий каталог. Например, следующая команда выполняет сценарий импорта пользователей:
.\UserImport. ps1
Введение в VBScript
Язык сценариев VBScript поддерживает автоматизацию административных задач во всех текущих версиях Windows. Сценарии VBScript представляют собой текстовые файлы, которые, как правило, редактируются с помощью программы Блокнот (Notepad) или редактора сценариев и сохраняются с расширением
.vbs. Д л я выполнения сценария можно дважды щелкнуть его значок. Сценарий откроется с применением команды Wsctipt.exe. В качестве альтернативы сценарий можно запустить в командной строке с помощью команды Cscript. ехе, применив следующий синтаксис:
cscript.exe имя_сценария
Обе команды, Wscript.exe и Cscript.exe, являются компонентами сервера сценариев W S H ( W i n d o w s Scripting Host), представляющего собой структуру автоматизации, у с т а н о в л е н н у ю во всех текущих версиях Windows, которая поддерживает несколько я з ы к о в сценариев, в том числе и VBScript.
Создание пользователя с помощью VBScript
Поскольку VBScript т а к ж е использует интерфейс ADSI для манипулирова- н и я объектами в Active Directory, процесс создания пользователя в VBScript идентичен созданию пользователя в Windows 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 (подразделение), в котором будет создан пользователь. Сценарий VBScript применяет инструкцию GetObject д л я подключения к объекту ADSI в соответствии с его отличительным именем. П р и присвоении объекта переменной в VBScript для создания объектной ссылки используется инструкция Set.
Вторая строка кода активизирует метод Create подразделения для создания объекта конкретного класса с конкретным отличительным именем точно так же, как в примере Windows PowerShell. Поскольку результатом выполнения метода является объект, д л я присвоения объектной ссылки переменной можно вновь использовать инструкцию Set.
Третья строка кода использует метод Put объекта пользователя, однако в VBScript аргумент не заключается в круглые скобки. Четвертая строка кода идентична Windows PowerShell: она подтверждает изменения. Сохраните сценарий в виде файла Newuser.vbs и выполните его в командной оболочке или оболочке Windows PowerShell с помощью следующей команды:
cscript.exe newusers.vbs
-) 110 Пользователи Глава з
Сценарии VBScript и Windows PowerShell
Сценарии VBScript имеют два значительных преимущества по сравнению с Windows PowerShell. Первое преимущество состоит в том, что сценарии VBScript можно запускать во всех текущих версиях Windows с помощью сервера сценариев WSH, а оболочку Windows PowerShell нужно загружать и устанавливать во всех версиях Windows до Windows Server 2008 вместе с платформой .NET Framework не ниже версии 2.0. Второе преимущество VBScript заключается в том, что этот язык используется уже много лет и в Интернете существует множество наработок, советов, рекомендаций и другой полезной информации сообществ.
Тем не менее сервер сценариев W S H не обеспечивает оболочку д л я непосредственного выполнения команд. Кроме того, язык VBScript не настолько богат и не полностью использует структуру .NET Framework. Хотя в Windows Server 2008 есть сервер сценариев W S H и поддерживается VBScript, будущее все же за Windows PowerShell. Поэтому оболочка Windows PowerShell представлена первой на этом занятии.
Недостатки Windows PowerShell являются противоположностью преимуществ VBScript. Сам факт того, что оболочка Windows PowerShel представляет собой новый продукт, означает, что она все еще пребывает в процессе разработки. В предыдущих разделах мы обсудили создание учетных записей с помощью Windows PowerShell. Описанные технологии и код достаточно сложные и практически идентичны VBScript.
Дело в том, что текущая версия Windows PowerShell обеспечивает весьма ограниченную поддержку администрирования Active Directory. В отличие от
интерфейса управления Windows |
W M I (Windows M a n a g e m e n t Interface) и |
Microsoft Exchange Server с очень |
богатым набором поставщиков W i n d o w s |
PowerShell, поддержка Active Directory ограничена н е у к л ю ж и м адаптером ADSI и в конечном счете полагается на ADSI, как и в сценариях VBScript . В будущих версиях Windows PowerShell будет обеспечен поставщик Active Directory, который упростит работу с объектами Active Directory аналогично работе с файлами в файловой системе.
Помните, что на сертификационном экзамене 7 0 - 6 4 0 вам не потребуется создавать сценарии Windows PowerShell или VBScript. О д н а к о вы д о л ж н ы распознавать сценарии, в которых выполняется процесс создания пользователя: подключение к подразделению, создание объекта, заполнение его свойств и подтверждение изменений.
Практические занятия. Создание пользователей с помощью сценариев Windows PowerShell и VBScript
В предложенных далее упражнениях вы создадите множество пользовательских учетных записей с помощью автоматизированных методов, описанных на этом занятии. Для выполнения упражнений вам понадобится объект OU (подразделение) первого уровня с именем Кадры в домене contoso.com.
Занятие 2 Создание пользователей с помощью Windows PowerShell и VBScript i 11
Упражнение 1. Установка Windows PowerShell
Чтобы использовать Windows PowerShell для выполнения административных задач, в этом упражнении вы установите компонент Windows PowerShell.
1. Откройте Диспетчер сервера (Server Manager).
2. В дереве консоли щелкните узел Компоненты (Features). 3. Щелкните ссылку Добавить компоненты (Add Features).
4. В списке Компоненты (Features) выберите Windows PowerShell. Щелкните
|
кнопку Далее (Next). |
|
||
5 |
. Щелкните кнопку Установить (Install). |
|||
6 |
. После завершения установки щелкните кнопку Закрыть (Close). |
|||
7 |
. Щ е л к н и т е |
правой |
к н о п к о й м ы ш и |
значок Windows PowerShell в группе |
|
программ |
W i n d o w s |
PowerShell и |
примените команду Закрепить в меню |
|
"Пуск" (Pin То Start Menu) . |
|
||
Упражнение 2. Создание пользователя с помощью Windows PowerShell
Далее вы будете использовать Windows PowerShell для создания пользователя в Active Directory.
1. Откройте Windows PowerShell.
2.Подключитесь к подразделению Кадры, воспользовавшись командой: $obj 0U=[ADSI]"LDAP://0U=Кадры,DC=contoso,DC=com"
3.Создайте объект пользователя в подразделении с помощью команды: $objUser=$objOU.Create("user","CN=M3PM Норт")
4. Посредством указанной далее команды задайте обязательный атрибут имени входа пред - Windows 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 вы создали пользователя, непосредственно набирая команды
вWindows 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. Сохраните сценарий под именем «Newuser . psl» |
в папке |
Д о к у м е н т ы |
(Documents), включая кавычки, чтобы программа |
Б л о к н о т |
не добавила |
расширение .txt. |
|
|
3.Откройте Windows PowerShell.
4.Введите команду get-childitem и нажмите клавишу Enter. Командлет GetChildltem перечисляет все текущие дочерние объекты в конвейере. Папка, указанная в командной строке Windows PowerShell, находится в конвейере.
5.Введите команду dir и нажмите клавишу Enter.
Псевдоним dir ссылается на командлет Get-Childltem.
6.Введите команду cd documents и нажмите клавишу Enter. Вы должны перейти к папке Документы (Documents).
7.Запустите сценарии на выполнение с помощью команды set-executionpolicy remotesigned
8.Чтобы выполнить сценарий, введите .\newuser.ps1 и нажмите клавишу Enter. Нотация. \ указывает текущий путь в качестве пути к сценарию. Без данной нотации возникнет ошибка.
9.Проверьте, создан ли в Active Directory пользователь.
Упражнение 4. Создание нового пользователя с п о м о щ ь ю VBScript
В этом упражнении вы создадите сценарий 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. Сохраните сценарий под именем «Newuser.vbs» |
в |
папке |
Д о к у м е н т ы |
|
(Documents), включая кавычки, чтобы программа |
Б л о к н о т |
не добавила |
||
расширение .txt. |
|
|
|
|
4. Откройте окно командной строки. |
|
|
|
|
5. Введите команду cd %userprofile%\documents и нажмите |
клавишу Enter. |
|||
6. Выполните сценарий с помощью команды cscript.exe newuser.vbs. 7. Проверьте, был ли создан пользователь в Active Directory.