Занятие 3 |
Поддержка пользовательских объектов и учетных записей |
123 |
DN. После ввода последнего DN и нажатия Enter нажмите комбинацию клавиш Ctrl+Z в начале следующей строки, а затем клавишу Enter, чтобы указать завершение команды. Команда будет выполнена для каждого введенного DN.
Более сложный способ состоит в передаче DN-имен команде Dsmod путем их помещения в конвейер результатов команды Dsquery. Команда Dsquery описана в главе 2. Она выполняет в Active Directory поиск согласно указанному критерию и возвращает DN - имена соответствующих объектов. Например, для изменения атрибута office (Комната) учетных записей пользователей Линда и Скотт Митчелл и их перемещения в офис Сидней используйте следующую команду:
dsquery user -name "• Митчелл" | dsmod user |
- o f f i c e |
"Сидней" |
Команда DSMOD USER выполняет в |
Active |
Directory поиск пользователей, |
имена которых заканчиваются словом Митчелл. Затем DN-имена найденных объектов помещаются в конвейер команды DSMOD USER, которая назначает д л я атрибута office значение Сидней.
В качестве еще одного примера предположим, что для всех пользователей требуется назначить д о м а ш н ю ю папку на машине SERVER01. Следующая команда меняет атрибуты homeDirectory и homeDrive объектов пользователей в подразделении Кадры:
dsquery |
user "ои=Кадры,dc=contoso,dc=com" | dsmod user |
-hmdir |
"\\server01\users\%username%\documents" -hmdrv "U:" |
Как мы уже говорили на занятии 1, при настройке значений параметров |
|
-email, |
-hmdir, -profile и -webpg с помощью команды DS можно использовать |
специальный маркер %username% для представления атрибута sAMAccountName
объектов |
пользователей. |
К о м а н д а |
Dsget |
Команда Dsget извлекает и выводит выбранные атрибуты одного или нескольких объектов. Д а л е е показан синтаксис этой команды, который аналогичен синтаксису Dsmod:
dsget user ОЫ_попьзоватепя. . . параметры
DN-имена для множества пользователей можно указать в командной строке, разделив их пробелами, ввести в консоль или поместить результаты команды DSQUERY USER в конвейер. В отличие от Dsadd и Dsmod команда Dsget принимает только параметр без значения. В частности, она принимает параметр samid, как и команда Dsadd, однако не принимает значение. Вместо этого она выводит текущее значение атрибута. Например, д л я отображения имени входа пред - Windows 2000 пользователя Д ж е ф ф Ф о р д в подразделении Кадры используйте следующую команду:
dsget user "сп=Джефф Форд,ои=Кадры,dc=contoso,dc=com" -samid
Д л я отображения имен входа пред-Windows 2000 всех пользователей в комнате Сидней используйте следующую команду:
dsquery user - o f f i c e "Сидней" | dsget user -samid
-) 124 Пользователи Глава з
Управление атрибутами пользователей
с помощью Windows PowerShell и VBScript
Для чтения атрибута объекта пользователя с помощью Windows PowerShell или VBScript используется интерфейс ADSI, который подключается к объекту пользователя. Этот процесс называется привязкой. На занятии 2 мы подключались к подразделению для создания объекта. К существующему объекту можно подключиться напрямую. Один из способов выполнения этой задачи состоит в использовании пути к службам каталогов a D S P a t h (Active Directory Services Path) объекта, которым является моникер протокола L D A P : / / с отличительным именем объекта.
Далее приведена команда Windows PowerShell для подключения к учетной записи пользователя Джефф Форд в подразделении Кадры: $objUser=[ADSI]"LDAP://cn=fl)Ke(txt> ®opfl,ou=KaflPbi,dc=contoso, dc=com"
А вот аналогичная команда VBScript:
Set obj User=GetObject("LDAP://сп=Джефф Форд, ои=Кадры,dc=contoso,dc=com"
Помните, что Windows PowerShell указывает интерфейс ADSI, a VBScript использует инструкцию GetObject. Для назначения объектной ссылки переменной в VBScript предназначена инструкция Set. В Windows PowerShell инструкция Set не используется, а все переменные помечены префиксом в виде знака доллара.
После получения переменной, ссылающейся |
на объект, м о ж н о |
извлечь |
ее свойства. Например, в Windows PowerShell |
д л я и з в л е ч е н и я |
атрибута |
sAMAccountName пользователя введите такую команду: |
|
|
SobjUser.GetC'sAMAccountName") |
|
|
В VBScript нужно указать на извлечение атрибута. Обычно д л я этого используется инструкция WScript.Echo, как показано в примере:
WScript.Echo objUser.GetC'sAMAccountName")
Довольно часто вам будет встречаться укороченный формат .свойство, например: $objUser.sAMAccountName в Windows PowerShell и objUser.,sAMAccountName
в VBScript. Хотя этот метод в большинстве случаев работает, рекомендуется использовать метод Get, особенно при работе с объектами Active Directory в Windows PowerShell.
Процесс модификации атрибута состоит из трех шагов. .
1.Подключение к объекту пользователя.
2.Модификация атрибута.
3.Подтверждение изменения.
Мы уже обсуждали механизм подключения к объекту. Второй шаг состоит
визменении атрибута. Большинство атрибутов являются однозначными. Их можно модифицировать с помощью метода Put объекта. Далее показан пример использования этого метода в Windows PowerShell:
SobjUser.putC'company","Contoso, Ltd.")
Занятие 3 |
Поддержка пользовательских объектов и учетных записей |
125 |
А так метод Put используется в VBScript: objUser.put "company",."Contoso, Ltd."
Единственная разница заключается в том, что VBScript не использует круглые скобки д л я передачи параметров методу Put.
Во втором шаге можно назначить много атрибутов. После указания всех атрибутов нужно подтвердить изменения в каталоге с помощью метода Setlnfo. Далее приведена версия использования этого метода в Windows PowerShell:
SobjUser!SetlnfoC)
Версия метода Setlnfo в VBScript идентична, если не считать имени переменной:
objUser.SetInfo()
Объединив все три шага вместе, мы получим сценарий Windows PowerShell: $objUser=[ADSI]"LDAP://сп=Джефф Форд, ои=Кадры,dc=contoso,dc=com" SobjUser.putC'company", "Contoso, Ltd.")
{objUser.SetlnfoO
Далее показан этот же сценарий в VBScript:
Set obj Use r=GetObj ect (" LDAP: //сп=Джефф Форд, ои=Кадры, dc=contoso, dc=com" objUser.put "company","Contoso, Ltd."
objUser.SetlnfoO
Как полностью удалить атрибут? Вначале нужно подключиться к объекту. Затем строковому атрибуту можно присвоить пустую строку "", а числовому — значение О, если нуль является соответствующим представлением значения EMPTY. Однако атрибуты (кроме обязательных) также можно удалять полностью. Д л я этого нужно использовать метод PutEx объекта пользователя. Д л я удаления атрибута office, к примеру, в Windows PowerShell используется следующий код:
SobjUser.PutEx(1, "office", 0) SobjUser.SetlnfoO
В VBScript д л я удаления атрибута нужно ввести следующие строки кода: objUser.PutEx 1, "office", 0
objUser.SetlnfoO
Администрирование учетных записей пользователей
Основное н а з н а ч е н и е объектов пользователей в Active Directory состоит в поддержке проверки подлинности лица или службы. Учетные записи предоставляются, администрируются и в конечном счете аннулируются. Самые распространенные административные задачи, связанные с учетными записями пользователей, состоят в сбросе паролей, разблокировке учетной записи, отключении, включении, удалении, перемещении и переименовании объектов пользователей.
Вследующих подразделах описаны все эти задачи и методы их выполнения
спомощью интерфейса Windows, Windows PowerShell, VBScript или командной
-) 126 |
Пользователи |
Глава з |
строки. Для выполнения каждой задачи требуются соответствующие разрешения доступа к объектам пользователей. Делегирование административных разрешений описано в глане 2.
Сброс пароля пользователя
Если пользователь забыл свой пароль и пытается войти в сеть, он получит сообщение, показанное на рис. 3-7.
. " ; -.!'. * .'. • .•••• |
1 |
о ^Jiial^ |
|||
•t «t • Ш view |
VM |
Turn |
Windo*j |
help |
|
• 0 J. |
2 |
. : |
Ю О З • © Й |
|
|
Ш И Ш Ш Ш Ш !
|
|
|
|
|
|
|
|
* |
" |
|
|||
|
|
|
f X ) Н«<р«ое юм пользователя или пароль. |
|
|
||||||||
|
|
|
|
|
|
|
1 OK |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
Windows S e r v e r s |
|
|
||||
|
|
|
|
|
|
|
Enterprise |
|
|
|
|
|
|
1 |
-•- |
|
j • |
_-.__. |
|
J |
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Рис. 3-7. |
Сообщение входа в систему, указывающее, что введено неверное имя пользователя |
||||||||||||
(или пароль) |
|
|
|
|
|
|
|
|
|
|
|
||
Для успешного входа пользователя потребуется сбросить пароль, причем знать его старый пароль не нужно. Достаточно щелкнуть правой кнопкой мыши объект пользователя в Active Directory и применить команду Смена пароля (Reset Password). Когда откроется показанное на рис. 3-8 диалоговое окно Смена пароля (Reset Password), необходимо заполнить поля Н о в ы й пароль (New Password) и Подтверждение (Confirm Password). Это лучший метод потребовать смены пароля при следующем входе — пароль будет известен только пользователю.
твшиаявш..,.'., |
л\*1 |
НшьА парам,
ПсдттС"Ди«'Я
Р Тс*6'.ег>ть о-ему лкхя» rpn слевугшем ав систол,
НеоС,01ммо1ьат1'.из»ст**ы,,еаП1мв(*пем/ «ндо.чтобы
ИЭТ«Т»«Вбегут*/*s С'1Г;
Смтоаппввпгмтасвтм , четна, запий, па ftuvioc мхтроплкзп
Г разблокировать уиемро запись пользователя
| СК | Отмена j
Рис. 3-8. Окно смены пароля
Занятие 3 |
Поддержка пользовательских объектов и учетных записей |
1 2 7 |
Вы также можете применить команду DS для сброса пароля пользователя и при желании потребовать сменить пароль при следующем входе пользователя. Введите такую команду:
dsmod user ОН_пользователя -pwd Новый_пароль -mustchpwd yes
В Windows PowerShell нужно ввести следующие команды:
Sobj User=[ADSI]"LDAP://ОЫ_пользователя"
SobjUser.SetPassword("Новый_пароль")
Отметим, что в отличие от ситуации с другими атрибутами метод Setlnfo не используется после применения команды SetPassword для настройки пароля пользователя. Однако чтобы потребовать сменить пароли при следующем входе, нужно задать такие команды:
SobjUser.Put ("pwdLastSet",0) SobjUser. S e t l n f o O
В VBScript код аналогичен:
Set obj User=GetObj ect("LDAP://0Ц_пользователя") objUser.SetPassword "Новый_пароль"
objUser.Put "pwdLastSet",0 objUser . Setlnfo
Пароли даже можно импортировать с помощью команды LDIFDE, описанной в занятии 1. Дополнительные сведения вы найдете в статье 263991 базы знаний Microsoft по адресу http://support.microsoft.com/default.aspx?scid=kb;enus;263991.
Разблокировка учетной записи
В главе 8 описана настройка политики паролей и блокировки учетных записей. П о л и т и к а б л о к и р о в к и предназначена для защиты от проникновения в корпоративную сеть путем многократного ввода различных паролей с целью определить корректный . При попытке входа с использованием некорректного пароля генерируется ошибка входа. Если в течение указанного периода времени, определенного политикой блокировки, возникает слишком много ошибок входа, учетная запись блокируется. При следующей попытке входа появляется сообщение о блокировке учетной записи.
ПРИМЕЧАНИЕ |
Подключенные диски с альтернативными учетными данными |
Распространенной причиной блокировок учетных записей является подключенный диск с альтернативными учетными записями. В случае изменения пароля альтернативной учетной записи и многократных попыток клиента Windows подключиться к диску учетная запись блокируется.
Политика блокировки учетных записей устанавливает период времени, по истечении которого выполняется автоматическое разблокирование учетной записи. Однако пользователь, пытающийся войти в сеть и обнаруживающий, что его учетная запись заблокирована, наверняка обратится в группу технической поддержки. Чтобы разблокировать учетную запись, щелкните ее правой кнопкой мыши, выберите пункт Свойства (Properties), перейдите на вкладку Учетная запись (Account) и установите флажок Разблокировать учетную запись ( Unlock Account).