Сделать стартовой Добавить в избранное
 
Панель управления
логин :  
пароль :  
   
   
Регистрация
Напомнить пароль?
Статьи по Windows 9x Me XP 2003 Longhorn Vista Linux FreeBSD Apache MySQL хостинг PHP Perl » Администратору / пользователю » Software » Windows PowerShell: Автоматизация управления каталогом
Навигация по сайту
Главная Софт
Форум FeedBack
 
Расширенный поиск
Календарь
«    Май 2008    »
ПнВтСрЧтПтСбВс
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 
Популярные статьи
 

 

Администратору / пользователю » Software : Windows PowerShell: Автоматизация управления каталогом
 

Путь ADSI

Интерфейс ADSI схож по принципу действия с инструментарием WMI. Вы выдаете запрос, используя особый синтаксис. Запрос передается удаленному компьютеру (контроллеру домена, к примеру) и выполняется. Результатом запроса является объект или коллекция объектов Active Directory (скажем, отдельный пользователь или целая группа). Вы получаете ссылку на этот объект и можете с ней работать. Можно менять свойства объекта, при помощи методов сохранять изменения, удалять объекты и т. д. Например, чтобы создать пользователя, вы запрашиваете подразделение (OU) или контейнер, в котором пользователь будет размещен. В ответ вы получаете метод Create, при помощи которого можно создать пользователя.

Пока вы выполняете самые простые операции, работа с ADSI в Windows PowerShell кажется абсолютно простой и прозрачной. К примеру, такая команда используется для получения имени пользователя и значения атрибута Company, указанного для него:

$user = [ADSI]"LDAP://cn=Ringo,ou=Singers,dc=company,dc=pri" 
$user.Get("Company")

Пользователя можно подать на вход командлета Get-Member — это позволит узнать, какие свойства и методы у него есть. К сожалению, в Windows PowerShell 1.0 подобные объекты реализованы не самым лучшим образом. Как видно из рис. 1, оболочка не способна ни перечислить атрибуты каталога объекта, ни предоставить список методов, доступных для него, — в отличие от метода Get.




alt



Поддержка этих функций улучшена в версии CTP консоли Windows PowerShell 2.0, но лишь отчасти. Все равно платформа Microsoft® .NET Framework, лежащая в основе, не позволяет администраторам видеть все то, что им нужно: платформа изначально создавалась для разработчиков. Еще одна проблема состоит в том, что специалисты по Windows PowerShell не всемогущи. Хорошую поддержку Active Directory можно реализовать только при участии тех, кто в ней разбирается. Другими словами, нужно подключить группу разработчиков Active Directory. Я уверен, через какое-то время именно так все и будет. В конце концов, оболочка Windows PowerShell появилась совсем недавно. Но что же нам делать до этого?

Возможно, вы помните, что в июньском выпуске журнала за 2007 год я рассказывал об использовании технологий ADSI в Windows PowerShell (technetmagazine.com/issues/2007/06/PowerShell). В ней можно найти дополнительную информацию об этой «встроенной» технологии. Здесь же я покажу вам несколько новых подходов.

Богатая экосиситема

Архитектор Windows PowerShell Джефри Сновер (Jeffrey Snover) нередко ссылается на богатство экосистемы, внутри которой оболочка существут. Под этим он подразумевает всю ту огромную работу, которую проделали разработчики, чтобы расширять оболочку Windows PowerShell могли не только сотрудники Майкрософт. Некоторые компании уже создают командлеты для Windows PowerShell, позволяющие управлять их продуктами из командной строки. Среди них VMWare, IBM, Citrix, Foundry.

Один из моих любимых примеров «богатства экосистемы» — программное обеспечение Quest. Эта компания предлагает ряд бесплатных командлетов для управления Active Directory. Загрузить их можно на веб-узле quest.com/powershell. Этой же компанией разработан бесплатный графический интерфейс PowerGUI (powergui.org), который надстраивается над Windows PowerShell, помогая работать с оболочкой тем, кто еще не до конца освоил командную строку. Интерфейс PowerGUI поможет изучить командлеты, предназначенные для управления Active Directory. И поверьте мне, вам захочется ими воспользоваться. По простоте и функциональности с этим набором командлетов не сравнится ни одно средство управления Active Directory. (Если вам нужны дополнительные сведения о PowerGUI, почитайте рубрику «Инструментарий» в январском выпуске журнала за 2008 год: technetmagazine.com/issues/2008/01/Toolbox.)

Путь Windows PowerShell

Любой прием, предполагающий использование командлетов, можно смело назвать «путем Windows PowerShell». Вам не приходится работать ни с классическими сценариями, ни с путаными объектами программирования. Вот мой самый любимый однострочник. Эта команда импортирует файл CSV и на основании данных, хранящихся в нем, создает десятки, даже сотни пользователей Active Directory:

Import-CSV 'C:\provision1.csv' |
ForEach-Object {New-QADUser -organizationalUnit 'company.pri/Singers' -name ($_.'First Name' + '.' + $_.'Last Name')
-samAccountName $_.'Logon name' -city $_.city -title $_.'Job title' -department $_.department}

После того как файл CSV импортирован и разбит на объекты, последние подаются на вход командлета ForEach-Object, который для каждого объекта выполняет тот фрагмент кода, который в тексте команды заключен в фигурные скобки. То есть сценарий запускается по одному разу для каждой строки файла CSV. В сценарии есть специальная переменная $_. Это ссылка на текущий объект, а именно на текущую строку файла CSV.

Для каждой строки я запускаю командлет New-QADUser. Это один из командлетов надстройки Quest — всего их там около десятка. Обратите внимание на имя командлета — QADUser. Буква Q — это, как вы, наверное, догадались, сокращение от Quest. Такое обозначение используется для того, чтобы избежать конфликтов с командлетом New-ADUser, который разработчики Microsoft Active Directory, вероятно, в ближайшем будущем выпустят. Так оба командлета можно будет загрузить в оболочку одновременно, и их будет проще различать.

Оставшаяся часть однострочника представляет собой набор параметров командлета New-QADUser. Вначале указывается подразделение (organizationalUnit), в котором будет располагаться новый пользователь. Затем идет имя атрибута, соответствующего столбцу First Name (Имя), потом точка, а после нее — атрибут, соответствующий столбцу Last Name (Фамилия).

Последнее, на что здесь нужно обратить внимание: параметр city в Active Directory будет заменен атрибутом l (или Locality-Name). Командлет тоже имеет параметр l, выполняющий практически те же самые функции. В большинстве случаев для параметров, соответствующих атрибутам Active Directory, можно использовать как имя атрибута, так и текстовую метку из средства «Пользователи и компьютеры Active Directory».

Еще один путь Windows PowerShell

Active Directory представляет собой иерархическое хранилище, а одна из сильных сторон Windows PowerShell — возможность представить любое иерархическое хранилище как диск и использовать хорошо знакомые команды управления хранилищами: Dir, Del, Ren, Copy и т. д. К сожалению, в Windows PowerShell 1.0 нет поставщика PSDrive для Active Directory, и поэтому Active Directory представить в виде диска не получится.

Но тут снова на выручку приходит богатство экосистемы: PowerShell Community Extensions. Это бесплатная надстройка, которую можно получить на веб-узле codeplex.com/powershellcx. После установки PowerShell Community Extensions вы сможете указать оболочке ваше доменное имя и затем управлять Active Directory так, словно это обычный диск:

CD COMPANY:  CD SINGERS  DIR
Эта команда переводит вас в домен COMPANY, в подразделение Singers OU и выдает список объектов (см. рис. 2). Теперь можно при помощи команды Del удалить пользователя, при помощи команды Md создать новое подразделение и т. д. В поставщике Community Extensions PSDrive есть подводные камни. Некоторые функции в нем могут давать неожиданные результаты — из-за того, что они просто не согласуются с принципами работы Active Directory. Кроме того, вы должны быть предельно внимательны: если вы перейдете в корень домена и запустите команду del * -recurse, вы удалите все объекты в домене (если у вас есть соответствующие полномочия). И по умолчанию никто вас переспрашивать не будет, действительно ли их нужно удалить. Но несмотря на это, приведенная команда позволяет сделать очень многое, так что нужны просто некоторые навыки и осторожность.

	alt

Приступайте к работе

На занятиях меня часто спрашивают, для чего можно сейчас использовать Windows PowerShell. Ведь далеко не каждый продукт Майкрософт задействует эту оболочку. Создается впечатление, что Windows PowerShell еще не готова к полноценной работе.

А на самом деле она уже работает на полную. Пусть в Майкрософт не создали набора средств для управления Active Directory из командной строки, зато другие разработчики взяли эту задачу на себя и отлично с ней справились. Windows PowerShell помогает выполнять задания по администрированию, в том числе позволяет администрировать самые трудоемкие из них, например создание большого количества пользователей. Нужно просто познакомиться с тем, что делает сообщество, чтобы оболочка Windows PowerShell стала действительно полезной. (Зайдите, к примеру, на веб-узел PowerShellCommunity.org, одним из спонсоров которого является Майкрософт. Я участвую в его администрировании.) Если в Windows PowerShell загрузить хороший инструментарий, можно будет создать сценарии для некоторыз задач администрирования, отнимающих много времени, и повысить эффективность работы администратора при одновременной экономии времени.

 
 
 
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
 
 
  • Диагностика перехода с Exchange Server 2003 на Exchange Server 2007
  • Контроль шифрованной файловой системы (Encrypting File System – EFS) с помо ...
  • Использование программы «Миграция в Active Directory» версии 2 для перехода ...
  • Десять веских оснований для перехода на Windows Server 2003
  • Расширение схемы Active Directory
  •  
     
     (голосов: 0)
    Комментарии (18)  Распечатать
     
     
    #1 написал: blablabla
     



    Группа: Гости
    Регистрация: --
    Да ниче так, мне понравилось!
    http://softcity.ucoz.org
     
     
    Публикаций: 0 | Комментариев: 0 цитировать    
     
     
    #2 написал: Сочинский
     



    Группа: Гости
    Регистрация: --
    Сенкс, самое оно )
     
     
    Публикаций: 0 | Комментариев: 0 цитировать    
     
     
    #3 написал: Ира
     



    Группа: Гости
    Регистрация: --
    Вы молодцы, спасибо!
     
     
    Публикаций: 0 | Комментариев: 0 цитировать    
     
     
    #4 написал: Ерофеев
     



    Группа: Гости
    Регистрация: --
    Респект от меня лично )
     
     
    Публикаций: 0 | Комментариев: 0 цитировать    
     
     
    #5 написал: Рекламист
     



    Группа: Гости
    Регистрация: --
    Благодарствую!
     
     
    Публикаций: 0 | Комментариев: 0 цитировать    
     
     
    #6 написал: Шутник
     



    Группа: Гости
    Регистрация: --
    Оценка 5, базару ноль
     
     
    Публикаций: 0 | Комментариев: 0 цитировать    
     
     
    #7 написал: Wedrov
     



    Группа: Гости
    Регистрация: --
    Даже и не придирешься!
     
     
    Публикаций: 0 | Комментариев: 0 цитировать    
     
     
    #8 написал: Кирилл
     



    Группа: Гости
    Регистрация: --
    И да прибудет с нами сила.
     
     
    Публикаций: 0 | Комментариев: 0 цитировать    
     
     
    #9 написал: Толбанов
     



    Группа: Гости
    Регистрация: --
    Ух ты, мне понравилось!
     
     
    Публикаций: 0 | Комментариев: 0 цитировать    
     
     
    #10 написал: Larionov
     



    Группа: Гости
    Регистрация: --
    И придратся не к чему, а я так люблю покритиковать...
     
     
    Публикаций: 0 | Комментариев: 0 цитировать    
     
     
    #11 написал: Шушалев
     



    Группа: Гости
    Регистрация: --
    Ой, благодарю
     
     
    Публикаций: 0 | Комментариев: 0 цитировать    
     
     
    #12 написал: Краснов
     



    Группа: Гости
    Регистрация: --
    Приятный у вас сайт
     
     
    Публикаций: 0 | Комментариев: 0 цитировать    
     
     
    #13 написал: Афанасий
     



    Группа: Гости
    Регистрация: --
    Даже и не придирешься!
     
     
    Публикаций: 0 | Комментариев: 0 цитировать    
     
     
    #14 написал: Дубов