Поиск на сайте: Расширенный поиск


Новые программы oszone.net Читать ленту новостей RSS
CheckBootSpeed - это диагностический пакет на основе скриптов PowerShell, создающий отчет о скорости загрузки Windows 7 ...
Вы когда-нибудь хотели создать установочный диск Windows, который бы автоматически установил систему, не задавая вопросо...
Если после установки Windows XP у вас перестала загружаться Windows Vista или Windows 7, вам необходимо восстановить заг...
Программа подготовки документов и ведения учетных и отчетных данных по командировкам. Используются формы, утвержденные п...
Red Button – это мощная утилита для оптимизации и очистки всех актуальных клиентских версий операционной системы Windows...
OSzone.net Microsoft PowerShell Windows PowerShell 2.0 преподносит сценарии для Active Directory — и не только для Windows Server 2008 R2 RSS

Windows PowerShell 2.0 преподносит сценарии для Active Directory — и не только для Windows Server 2008 R2

Текущий рейтинг: 5 (проголосовало 2)
 Посетителей: 4239 | Просмотров: 6574 (сегодня 0)  Шрифт: - +

Иногда, кажется, что для создания необходимого решения Microsoft может потребоваться целая вечность. Я имею в виду, десятки тысяч сотрудников по всему миру, а "Halo 4" нет до сих пор? Но иногда, ждать не сложно, потому что Microsoft пытается создать правильное решение — и в случае сценариев и автоматизации Active Directory ожидания оправдались. Windows Server 2008 R2 поставляется с модулем Windows PowerShell 2.0, позволяющим создавать фантастические сценарии и автоматизацию для Active Directory.

Системные требования: правда и мифы

Для работы новых команд Active Directory для Windows PowerShell потребуется Windows PowerShell v2. Команды распространяются в новом модуле для 2.0, не как PSSnapin. Модули легко распространяются и не требуют установки или регистрации — вы просто копируете файлы модуля в папку оболочки Modules и используете команду Import-Module для импортирования модуля в оболочку.

Windows PowerShell 2.0 предустановлен в Windows 7 и Windows Server 2008 R2; он будет доступен для Windows Server 2008, Windows Vista, Windows XP и Windows Server 2003 где-то в конце 2009 или начале 2010 года. Модуль Active Directory поставляется с Windows Server 2008 R2, но для использования этих команд не обязательно иметь контроллер домена (DC) в среде этой ОС. Фактически, команды будут работать хорошо вместе с Windows Server 2003 DC и Windows Server 2008 (не-R2). Вместе с DC для них вы установите бесплатную службу Active Directory Management Gateway Service (можно загрузить с microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=008940c6-0296-4597-be3e-1d24c1cf0dda). Служба шлюза обеспечивает работу с Active Directory, и может быть установлена на Windows Server 2003 R2 SP2 и более позднюю версию, или Windows Server 2008 SP2 и более позднюю версию.

Сейчас на вашем клиентском компьютере нужна функционирующая система Windows 7 или Windows Server 2008 R2, поскольку в настоящее время невозможно установить модуль на что-то постарше.

Проверка подлинности

Одна из сложнейших частей работы с Active Directory является проверка подлинности: вам может понадобиться управлять не только тем доменом, в который вы вошли, но вы можете не иметь доверия в доменах, которыми хотите управлять. В некоторых случаях у вас могут быть административные права в другом домене, но только через альтернативную учетную запись пользователя. Windows PowerShell 2.0 не предоставляет встроенный механизм для сохранения всех этих полномочий. Поэтому люди, писавшие модуль Active Directory, должны были внести новую идею. Их разработка проста и элегантна: модуль Active Directory включает поставщика Windows PowerShell PSDrive. Это означает, что вы можете "прокладывать путь" к домену Active Directory. Этот путь содержит ваши полномочия и позволяет продлить эти полномочия в течении всей сессии оболочки. Когда модуль загружается в оболочку, он автоматически передает ваше имя учетной записи в домене, используя некоторые полномочия, необходимые для работы Windows PowerShell 2.0 (внимание: будет работать Контроль учетных записей, поэтому убедитесь, что запускаете оболочку "под Администратором", если это необходимо). Что-бы сопоставить новые домены, используйте командлет New-PSDrive, который поддерживает параметры командной строки для указания полномочий.

Что-бы изменить каталоги в подключенном домене, используйте привычную команду Cd: Cd AD:, например, меняет фокус оболочки на отображаемый домен по умолчанию. Изменения в домене важны, поскольку все команды Active Directory по умолчанию будут использовать полномочия какого-либо домена, на котором сфокусирована оболочка на данный момент. Это действительно ловкий трюк, позволяющий запускать команды Active Directory каждый раз, не указывая вручную полномочия. Нужно ли запускать одни и те же команды на другом домене? Только зайдите на этот домен, нажмите пару раз стрелку вверх, что бы обратно вызвать команду Active Directory и нажмите Ввод, для повторного запуска в новом домене.

Необязательно работать таким способом с командами Active Directory, но тем не менее: каждая из них так же поддерживает параметры командной строки необходимые для указания полномочий в зависимости от случая. Таким образом, вы можете работать каким угодно способом. Такую гибкость я очень ценю. Команда продукта могла бы легко выбрать ту или иную технологию. И фактически они включают обе технологии, таким образом, учитывая разнообразие своей аудитории.

Команды

Все говорят, что модуль Active Directory дает 82 новые команды в оболочке, начиная от очевидных, таких как New-ADUser до более изотерических, как Install-ADServiceAccount. Все эти командлеты имеют приставку "AD", которая выполняет две важные функции. Первая, помогает различить похожие командлеты, — New-ADUser создает нового пользователя AD. Она не создает нового локального пользователя или нового пользователя SQL Server, или какого-нибудь еще. Во-вторых, приставка помогает легко найти все командлеты: ведите Help *-AD* и вы получите список всех 82 команд.

У каждой команды Active Directory есть параметры командной строки — в некоторых случаях множество параметров. New-ADUser, например, имеет несметное количество параметров и позволяет устанавливать справочные атрибуты, такие как Office, Organization и так далее, без необходимости запоминать внутреннюю схему имен атрибутов (Я никогда не смогу запомнить что в схеме "Last Name" — это "sn"). В этих командах есть один изящный момент:

они защищают вас от глупостей, которые вы можете совершить. Например, если вы запустите Get-ADUser, вы будете ждать список всех пользователей в алфавитном порядке. В большом домене это не только займет некоторое время, но и может сильно воздействовать на ваш DC. Что-бы предотвратить это, есть принудительный параметр команды -filter, позволяющий задавать точку отсчета (такую, как организационная единица) или другие критерии. При помощи -filter *фактически вы получите каждого пользователя в алфавитном порядке. Однако команда не будет автоматически получать каждый атрибут этих пользователей — поскольку это, опять же, может немного понизить работоспособность DC. Дополнительные параметры, такие как -ResultPageSize (предлагает указать, сколько результатов будет показано за раз) и -Properties (предлагает указать, какие атрибуты получать), помогают регулировать баланс между выполнением и получением необходимой информации.

Это похоже на серьезную работу

Я не очень нежно вспоминаю те дни, когда создание и заполнение нового пользователя в Active Directory занимало два десятка строк VBScript. Теперь это просто:

PS AD:\> new-aduser -name DonJ -CannotChangePassword $True -Department IT -DisplayName 'Don Jones' -EmployeeNumber 42 -GivenName Don -Office 'Las Vegas' -Organization 'Concentrated Technology' -PasswordneverExpires $True

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

New-ADUser ... -passThru | Set-ADAccountPassword ... -passThru | Enable-ADAccount

Я сократил синтаксис, понятно что — "..." это место для нормальных параметров. Пример показывает, как -passThru позволяет продолжить вывод объекта пользователя в другой командлет. Эта технология позволяет невероятно эффективно использовать однострочные выражения — команды в одну строчку, а не сценарий — что позволяет работать более эффективно.

Подождите … Это еще не все

Вот здесь я создал небольшой храм, прямо в своем офисе, для парней и девчонок, которые пишут эти команды Active Directory: я обнаружил маленькое чудо под названием конвейерное связывание параметров. И эти люди использовали его в полную силу. Выполните Help New-ADUser -full, и посмотрите помощь для каждого отдельного параметра. Вы заметите, что многие из них соответствуют атрибутам Active Directory, таким как City, Office и Department — принимают входной конвейер "ByPropertyName". Это и означает, что вы можете передавать входной конвейер командлета New-ADUser. И если входные параметры содержат свойства, которые соответствуют по имени параметра, то они будут согласованы автоматически. Поэтому, если ввод содержит свойство "City", то оно прикрепится к параметру -City. Если ваш входной конвейер содержит свойство "Department", оно подключится к параметру -Department.

Если вы знаете, как работает командлет Import-CSV, то вы, наверное, уже взволнованы. Представьте, что файл .CSV содержит такие колонки:

"Name","Department","Organization","City"

Каждая строка файла содержит информацию для этих колонок. Вы можете легко создать эти структуры в Microsoft Office Excel, Microsoft Office Access, Microsoft SQL Server, или где-нибудь еще, и затем выгрузить свои данные в формат CSV. Если вы сделаете это учитывая соответствие имен колонок и имен параметров New-ADUser, то вы можете создать новых пользователей так:

Import-CSV c:\new-users.csv | New-ADUser

Да, это все что вам придется набрать. Если ваш файл .CSV содержит все необходимые колонки — -Name (параметр -Name задается принудительно) — то New-ADUser волшебным образом правильно свяжет.CSV колонки с правильными параметрами. Вы можете импортировать сотни новых пользователей за секунды, вводя не больше 50 символов. Если вы не хотите изучать Windows PowerShell 2.0… то, я думаю, что вы должны просто нажать "Далее, Далее, Готово".

Управление AD сделано правильно

Один из основных принципов Windows PowerShell это то, что программисты должны написать все административные функции для управления Active Directory — в командлетах оболочки. Любой GUI должен быть, по сути, внешним интерфейсом для этих командлетов. Microsoft Exchange Server 2007 предоставляет нам такую систему, и работает великолепно. Вы получите прекрасный графический пользовательский интерфейс и всегда будете иметь возможность перемещения в командную строку, если этот интерфейс не будет удовлетворять вашим нуждам. Таким способом Microsoft перезаписывает пользователей и компьютеры Active Directory?

Ну, нет. Но если честно, это довольно старый инструмент. Тем не менее, есть еще одна инновационная технология в Windows Server 2008 R2. Это Центр администрирования Active Directory, еще более новый графический интерфейс для управления Active Directory. И угадайте, что находится под Центром администрирования? Да, это командлеты Active Directory. Это означает, что те вещи, которые вы делаете в графическом интерфейсе, вы можете сделать и из оболочки.

В итоге, практически после десятилетия, Active Directory действительно преуспел. Теперь у нас есть возможность простого интуитивного управления через графический интерфейс. Или более мощного автоматизированного управления через полнофункциональную командную строку — что, откровенно говоря, не намного сложнее, чем использование графического интерфейса. Вам не придется ждать Windows Server 2008 R2, потому что с правильными дополнениями ваши домены Windows Server 2003 могут позволить себе такую же управляемость.

Автор: Дон Джонс  •  Иcточник: TechNet Magazine  •  Опубликована: 22.04.2010
Нашли ошибку в тексте? Сообщите о ней автору: выделите мышкой и нажмите CTRL + ENTER


Оценить статью:
Вверх
Комментарии посетителей
Комментарии отключены. С вопросами по статьям обращайтесь в форум.