Обзор сценариев Windows Power Shell
Автор Nikolay Ilin, Last modified by Anton Shlykov на 20 апреля 2016 10:55 AM

Пакет сценариев Windows PowerShell 2.0, позволяющий автоматизировать операции управления свойствами пользователей Indeed-Id в Active Directory, поставляется в составе дистрибутива Indeed-Id.
По умолчанию файлы сценариев находятся в каталоге \Indeed-Id Admin Pack\<версия>\Misc\PowerShellScripts\дистрибутива Indeed-Id.
Сценарии, входящие в состав данного пакета, можно использовать как в качестве готовых сценариев, так и в качестве примеров для разработки собственных скриптов.

1. Требования к окружению

Для выполнения поставляемых сценариев необходимы:

  • установленная среда Microsoft Windows PowerShell 2.0.

Скачать пакет Windows Management Framework, содержащий оболочку Windows PowerShell 2.0, можно на официальном сайте Microsoft по адресу: http://support.microsoft.com/kb/968929

  • установленный компонент Indeed-Id Administration Tools Indeed-Id Admin Pack

2. Группы сценариев

Поставляемые сценарии Windows PowerShell делятся на три группы в зависимости от объекта, которым они управляют:

  • сценарии для управления свойствами пользователей Indeed-Id в рамках контейнеров (подразделений (OU), контейнеров (CN), папок)
    Имена этих сценариев имеют постфикс ou (*.ou.ps1).
    Например: enable.disable.IndeedID.OU.ps1

  • сценарии для управления свойствами пользователей Indeed-Id в рамках группы
    Имена этих сценариев имеют постфикс cn (*.cn.ps1).
    Например: enable.disable.IndeedID.cn.ps1

  • cценарии для управления свойствами конкретного (одного) пользователя Indeed-Id
    Имена этих сценариев не имеют специфических постфиксов или имеют постфикс user (*.user.ps1).
    Например: enable.disable.IndeedID.user.ps1, set.IndeedID.caching.options.ps1

Однако описанные выше правила именования не относятся к ряду файлов сценариев. Это относится, прежде всего, к сценариям, предназначенным для выполнения служебных действий (установка значений необходимых констант, импорт ключа шифрования и т.п.), а также к некоторым сценариям, в которых целевой объект (OU, группа) определяется параметрами, заданными непосредственно при запуске скрипта.

3. Структура и разработка файлов сценариев

Файлы поставляемых сценариев Windows PowerShell в общем виде имеют одинаковую структуру.

3.1. Описание сценария

В заголовке файла в виде комментария указаны сведения о сценарии:

  • имя и версия сценария

  • назначение сценария

  • описание параметров запуска сценария

Например:

# Version: 2.2
# enable.disable.IndeedID.LFW.OU.ps1
# enable/disable IndeedID Logon for Windows for users from specified OU
# argument: OU distinguished name (ou=name,dc=domain), enable/disable flag, [file name], [level for search in OU (1-not search in child OU, other-search in child OU)]

3.2. Параметры запуска сценария

Параметры запуска сценария описаны после ключевого слова param.

Например:

param([string] $ou, [uint32] $f, [string] $lf, [uint32] $l)

После описания параметров запуска в сценариях выполняется проверка значений заданных параметров. Проверка значений предусматривает вывод справочной информации о работе сценария (сообщение об ошибке, пример команды запуска сценария).

Например:

if (!$ou.Length)
{
  write-warning "You must specify OU distinguished name."
  write-warning "Example: .\enable.disable.IndeedID.LFW.OU.ps1 -ou 'ou=office,dc=test,dc=local' -f 1"
  break 
}

3.3. Разработка пользовательских функций

Пользовательские функции реализуют логику и алгоритм работы сценария для решения поставленной задачи.
Описание функций выполняется по правилам, установленным в Windows PowerShell.

Для разработки сценария управления свойствами пользователей Indeed-Id требуется использование некоторых констант, определение которых приведено в служебном файле constants.ps1. Поэтому в случае необходимости этот файл должен быть включен в разрабатываемый сценарий.
Описание файла constants.ps1 и его использование описаны в статье Определение констант Indeed-Id (constants.ps1).

Для управления параметрами системы Indeed-Id необходимо подключиться к Серверу Indeed-Id:

#connect server
$srvLocator = new-object -com IndeedID.DispServerLocator    # создание экземпляра объекта IndeedID.DispServerLocator
$server = $srvLocator.ConnectServer("")                    # подключение к Серверу Indeed-Id

Список всех свойств и методов объекта можно посмотреть перенаправив созданный объект по конвейеру на командлетGet-Member:

> $server | Get-Member
   TypeName: System.__ComObject#{128c139d-9224-4add-8506-f0ee4f57ae76}

Name                     MemberType Definition
----                     ---------- ----------
CheckEffectivePrivileges Method     uint CheckEffectivePrivileges (uint)
CheckEffectiveRights     Method     uint CheckEffectiveRights (uint)
IsSupportMode            Method     bool IsSupportMode (string)
ComputerManagement       Property   IDispComputerManagement ComputerManagement () {get}
SystemManagement         Property   IDispSystemManagement SystemManagement () {get}
UserManagement           Property   IDispUserManagement UserManagement () {get}

Например:

# get user
$user = $server.UserManagement.GetUser("", $userName, $NF_UPN)

4. Запуск сценариев

4.1. Настройка политики запуска сценариев

Для запуска сценариев в оболочке Windows PowerShell необходимо включить политики выполнения сценариев. Для этого нужно выполнить команду:

Set-ExecutionPolicy Unrestricted

и подтвердить включение политики.

Выключение политики выполнения сценариев можно произвести командой:

Set-ExecutionPolicy Restricted

4.2. Определение объекта управления для запуска сценария

Для выполнения сценариев управления свойствами пользователей Indeed-Id в рамках контейнеров (сценарии *.ou.ps1) или групп (сценарии *.cn.ps1) требуется задать соответствующий объект управления.

Определить путь к объекту управления можно с помощью утилиты ADSI Edit от Microsoft. Для этого необходимо:

1. Запустить ADSI Edit.

Примечание:
Для установки утилиты на компьютеры под управлением операционных систем Windows Server 2003 и Windows XP необходимо установить пакет Windows Server 2003 Support Tools, который можно скачать с официального сайта Microsoft по ссылке: http://www.microsoft.com/download/en/de … p;id=15326
На компьютерах под управлением операционных систем Windows Server 2008 и Windows Server 2008 R2 утилита ADSI Edit устанавливается с Remote Server Administration Tools (RSAT).
Ознакомиться с утилитой ADSI Edit можно на официальном сайте Microsoft по ссылке: http://technet.microsoft.com/en-us/libr … ngADSIEdit

2. Развернуть узел «Domain [<НазваниеДомена>]» в дереве.

3. Выбрать в дереве объект и в контекстном меню выбрать пункт «Properties».

4. В окне свойств объекта на вкладке «Attribute Editor» выбрать из списка атрибут.

 

(2 голос(а))
Эта статья полезна
Эта статья бесполезна

Комментарии (0)
Портал технической поддержки компании Индид