• PowerShell – Поддержание группы безопасности для Password Settings objects (PSOs) в актуальном состоянии

    imageПо мотивам применения Password Settings objects (PSOs) с нацеливанием объектов PSO на доменные группы безопасности встаёт вопрос о поддержании состава этих групп в актуальном состоянии. В моём окружении все учетные записи, находящиеся в определённом OU, должны быть включены в доменную группу безопасности, к которой применяется PSO, что само по себе уже есть критерий, по которому можно автоматизировать задачу поддержания группы в актуальном состоянии с помощью PowerShell. Представляю соответствующий скрипт.

    Читать далее...

  • AD DS - Создание нескольких политик паролей Password Settings objects (PSOs) в домене Windows Server 2008/2008 R2

    imageВ службах AD DS Windows Server 2008 появился новый механизм AD DS Fine-Grained Password and Account Lockout Policy, позволяющий в рамках домена создавать несколько разных политик паролей, применяемых к конкретным доменным пользователям или доменным глобальным группам безопасности. Такой механизм может быть полезен в случае, если, например, необходимо для определенной группы пользователей иметь ослабленные/усиленные политики безопасности, отличающиеся от тех, что заданы на уровне всего домена в Default Domain Policy.

    Рассмотрим сценарий создания объекта PSO в домене соответствующего следующим критериям:

    clip_image001

    clip_image002

    Для начала создадим в домене глобальную группу безопасности, в которую будут включены все пользователи, для которых необходимо переопределить политики безопасности паролей:

    clip_image003

     

    Создание объекта PSO с помощью MMC-оснастки Active Directory Services Interface editor (ADSI Edit)

    Откроем оснастку ADSIEDIT.MSC и подключимся к контексту именования по умолчанию нашего домена указав в поле Name FQDN имя нашего домена

    clip_image004

    Перейдём в контейнер DC=holding, DC=com -> CN=System -> CN=Password Settings Container

    clip_image005

    И в контекстном меню на контейнере Password Settings Container выберем создание нового объекта PSO (msDC-PasswordSettings)

    clip_image006

    Укажем имя нашего нового объекта PSO

    clip_image007

    Укажем значение атрибута msDS-PasswordSettingsPrecedence. Значение этого атрибута определяет приоритет в случае конфликта нескольких PSO, применяемых к одной и той же группе безопасности или пользователю.

    clip_image008

    Значение атрибута msDS-PasswordReversibleEncryptionEnabled определяет возможность обратимого шифрования пароля для учетных записей пользователей. Устанавливаем его в false как рекомендуемое.

    clip_image009

    Зададим значение атрибута msDS-PasswordHistoryLength определяющего количество неповторяемых паролей для учетных записей пользователей.

    clip_image010

    Значение атрибута msDS-PasswordComplexityEnabled, установленное нами в true, определяет включение требования соблюдения сложности паролей и является рекомендуемым.

    clip_image011

    Значение атрибута msDS-MinimumPasswordLength, установленное нами в 8, определяет минимальную длину паролей учетных записей пользователей.

    clip_image012

    Значение атрибута msDS-MinimumPasswordAge, установленное нами в 1:00:00:00 (1 день), определяет минимальный срок действия паролей учетных записей пользователей.

    clip_image013

    Значение атрибута msDS-MaximumPasswordAge, установленное нами в 90:00:00:00 (90 дней), определяет максимальный срок действия паролей учетных записей пользователей.

    clip_image014

    Значение атрибута msDS-LockoutThreshold, установленное нами в 5, определяет порог блокировки учетных записей пользователей (после 5 неудачных попыток авторизации срабатывает механизм блокировки учетной записи).

    clip_image015

    Значение атрибута msDS-LockoutObservationWindow, установленное нами в 0:00:30:00 (30 минут), определяет период сброса счетчика блокировок учетных записей пользователей.

    clip_image016

    Значение атрибута msDS-LockoutDuration, установленное нами в 0:00:30:00 (30 минут), определяет продолжительность блокировки заблокированных учетных записей пользователей.

    clip_image017

    На этом работа мастера создания PSO завершается.

    clip_image018

    После того как только что созданный объект PSO появляется в консоли, открываем его свойства.

    clip_image019

    Среди списка атрибутов находим атрибут msDS-PSOAppliesTo и убедившись в том что его значение не определено, открываем его редактирование.

    clip_image020

    В окне редактирования Multi-valued Distinguished Name With Security Principal Editor нажимаем Add Windows Account и выбираем соответствующую доменную глобальную группу безопасности, которую мы создали ранее.

    clip_image021

    clip_image022

    Сохраняем свойства объекта PSO и убеждаемся в том, что привязка к соответствующей группе безопасности произведена (для этого можно проверить значение атрибута msDS-PSOApplied в свойствах самой группы безопасности).

    clip_image023

    Теперь на всех пользователей, включенных в эту группу безопасности, будут действовать параметры, заданные в нашем объекте PSO независимо от текущих настроек в Default Domain Policy.

    Создание объекта PSO с посмощью CLI-утилиты LDIF Directory Exchange (LDIFDE)

    Помимо создания объекта PSO через оснастку ADSIEDIT.MSC, мы можем создать его с помощью утилиты командной строки LDIFDE. В некоторых сценариях это может быть более быстро и удобно. Для этого нам предварительно нужно подготовить файл в формате *.LDF (LDAP Data Interchange Format) следующего содержания:

    dn: CN=KOM-SRV-PSO-Users,CN=Password Settings Container,CN=System,DC=holding,DC=com
    changetype: add
    objectClass: msDS-PasswordSettings
    msDS-MaximumPasswordAge: -77760000000000
    msDS-MinimumPasswordAge:-864000000000
    msDS-MinimumPasswordLength:8
    msDS-PasswordHistoryLength:5
    msDS-PasswordComplexityEnabled:TRUE
    msDS-PasswordReversibleEncryptionEnabled:FALSE
    msDS-LockoutObservationWindow:-18000000000
    msDS-LockoutDuration:-18000000000
    msDS-LockoutThreshold:5
    msDS-PasswordSettingsPrecedence:1
    msDS-PSOAppliesTo:CN=KOM-SRV-PSO-Users,CN=Users,DC=holding,DC=com

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

    Единица времени

    Множитель

    1 минута

    -60*(10^7) = - 600000000

    1 час

    -60*60* (10^7) = -36000000000

    1 день

    -24*60*60*(10^7) = -864000000000

    То есть, например, чтобы установить значение атрибута msDS-LockoutDuration равным 30 минутам, для получения значения в формате I8 нужно умножить 30 на -600000000 (в этом примере значение равно -18000000000). Более подробную информацию по этому поводу можно получить в приложении Appendix B: PSO Attribute Constraints

    После того как мы подготовили LDF файл, произведём импорт указанной в нём информации командой:

    LDIFDE -i -f NewPSO.ldf

    clip_image024

    Более подробную информацию об использовании утилиты LDIFDE можно найти в статье KB237677 - Использование средства LDIFDE для импорта и экспорта объектов каталогов в Active Directory

    Дополнительные источники информации:

    Windows Server TechCenter - AD DS Fine-Grained Password and Account Lockout Policy Step-by-Step Guide

    TechDays.ru - Active Directory: политика паролей

  • Ошибка обработки GPP: Group Policy object did not apply because its targeting item failed with error code 0x86012004

    imageРанее уже описывалась проблема с обработкой Group Policy Preferences (GPP) в части применения нацеливания (Item-level targeting) на OU - Долгая обработка GPP на этапе “Applying Group Policy Drive Maps policy” на клиентах RODC Windows Server 2008 R2

    В ходе дальнейшей эксплуатации GPP для изменения членства группы Администраторов на доменных компьютерах описанная проблема проявила себя по аналогичному сценарию (при нацеливании на доменные OU). Чтобы уйти от этого, приняли решение использовать нацеливание на группы безопасности, то есть изменять членство группы Администраторов в зависимости от членства учетной записи компьютера в той или иной доменной группе безопасности. Однако после настройки GPP и применения на клиентских компьютерах с Windows 7 и Windows Server 2008 R2 обнаружилось, что данная настройка GPP не отрабатывает. Сбор трейсов GPP выявил ошибку обработки типа:

    Failed filter [FilterGroup]. [ hr = 0x86012004 "Клиентское расширение перехватило необрабатываемое исключение "filter expand" в: "Access violation (0xc0000005) occurred at 0xca12dad1; the memory at 0xca12dad1 could not be ????."%100790275" ]

    Как выяснилось, эта проблема известна уже почти год и описана в статье KB976399 - FIX: You cannot apply Group Policy settings on a computer that is running Windows 7 or Windows Server 2008 R2 when security group filters are used in Group Policy preference settings.

    К удивлению для себя выяснил, что данное обновление через WSUS не раскатывалось и для его применения MS предлагает воспользоваться отдельно загружаемым файлом исправления

    Имеющийся на данный момент перечень исправлений включенных в готовящийся к выпуску SP1 для Windows 7 и Windows Server 2008 R2 - Documentation for Windows 7 and Windows Server 2008 R2 Service Pack 1 Release Candidate (KB976932) говорит нам о том, что этот фикс туда включен. Так что ждём релиза SP1, а пока можем выбрать для себя либо вариант с отдельной установкой фикса на проблемных клиентов, либо опять же нужно выбирать альтернативные методы нацеливания.

  • Windows Server 2008 R2 Task Scheduler: Error 2147943712

    Столкнулся с ситуацией, когда при создании нового задания в планировщике задач (Task Scheduler) на Windows Server 2008 R2 возникла необходимость запускать это задание в фоновом режиме от имени определенной учетной записи доменного пользователя. Попытка сохранения задания с введенными учетными данными завершалась ошибкой

    image

    Как выяснилось, ОС попросту блокировала попытку сохранения учетных данных, так как была изменена политика безопасности Network access: Do not allow storage of passwords and credentials for network authentication
    По умолчанию эта политика находится в состоянии Disabled, и её включение приводит к вышеописанной проблеме.

    image

    Найти этот параметр можно в оснастке Local Security Policy (Панель управления (Control Panel) > Администрирование (Administrative Tools) > Local Security Policy). Параметр может изменяться как на уровне локальной политики компьютера, так и задаваться доменными GPO.

  • Долгая обработка GPP на этапе “Applying Group Policy Drive Maps policy” на клиентах RODC Windows Server 2008 R2

    На этапе внедрения RODC на базе Windows Server 2008 R2 была замечена проблема связанная с увеличением времени входа в систему на клиентских ПК. Проблема была выявлена на всех площадках где для авторизации в домене и применения групповых политик клиенты использовали RODC. После ввода учетных данных процесс входа в систему на несколько минут «замерзал» на этапе «Applying Group Policy Drive Maps policy». Разумеется, подозрение сразу пало на обработку Group Policy Preferences (GPP) в части обработки подключения сетевых дисков, так как в одной из групповых политик, применяемых в части User Configuration у меня было n-ное количество таких подключаемых дисков через механизмы GPP с использованием для каждого подключения нацеливания (Item-level targeting)

    clip_image001

    Для подключения разных дисков использовались три вида нацеливания: по членству пользователя в доменной группе, по NetBios имени компьютера и по вхождению пользователя в определенный OU в домене.
    Для того чтобы выяснить то, обработка какого именно подключения являлась корнем проблемы пришлось прибегнуть к включению трейсов для обработки параметров GPP. Для этого пришлось в групповой политике применяемой к испытуемому клиентскому компьютеру в разделе Computer Configuration активировать и настроить параметр Policies > Administrative Templates > System > Group Policy >Logging and tracing > Drive Maps Policy Processing.

    clip_image002

    По умолчанию ведение трейсов выключено и параметры для определения размещения лог файлов ссылаются на каталог %COMMONAPPDATA%GroupPolicyPreferenceTrace.

    Как ни странно, я не обнаружил в своих испытуемых системах Windows 7/Windows Server 2008 R2 переменной окружения %COMMONAPPDATA% и поэтому изменил путь для хранения логов с использованием существующей переменной окружения - %programDATA%. В данном случае меня интересовал параметр User trace и его значение получилось у меня таким: %programDATA%GroupPolicyPreferenceTraceUser.log

    Уровень логирования пришлось использовать максимальный, чтобы получить весь доступный объем информации о происходящем в процессе обработки GPP. И на всякий случай увеличено было значение максимального размера лог-файла.

    clip_image003

    После того как новая политика, включающая логирование применения GPP была применена на клиенте с помощью команды gpupdate, был сделано logoff/logon чтобы спровацировать обработку GPP в части подключения сетевых дисков пользователю. Теперь на испытуемом клиентском компьютере в указанном каталоге (C:ProgramDataGroupPolicyPreferenceTrace) был обнаружен файл трассировки User.log

    После изучения лога стало понятно, что обработка GPP всех сетевых дисков проходила «на одном дыхании» и заметный провал во времени обработки (более 1 минуты) происходил именно на одном определенном диске - “H:”

    clip_image004

    Оказалось что это единственный сетевой диск, в котором для нацеливания использовался признак вхождения пользователя в определенный OU в домене. Было принято решение для пробы изменить нацеливание для данного сетевого диска по признаку членства пользователя в доменной группе… Каково же было моё удивление когда время входа в систему сократилось в разы :) Даже покажу лог обработки после внесённых изменений, чтобы не быть голословным

    clip_image005

    Причем повторюсь, - проблема наблюдалась только на клиентах, которые сидели в сайте с RODC, на клиентах же имеющих в сайте полноценные DC такой «бяки» замечено не было.
    Исходя из этой истории, напрашивается вывод о том, что к применению Item-Level targeting нужно подходить с аккуратностью и предварительной обкаткой разных вариантов, тем более GPP предоставляет нам хороший выбор таких вариантов.

  • GPO: The client-side extension could not remove computer policy setting…because it failed with error code '0x8007000d The data is invalid.' (Event ID 8194 Source Group Policy Registry)

    imageВ один момент заметил, что на одном из контроллеров домена под управлением Windows Server 2008 перестал работать механизм GP Preferences. При этом в логе System периодически фиксировалась ошибка

    Log Name:      Application 
    Source:        Group Policy Registry 
    Date:          08.06.2010 6:04:43 
    Event ID:      8194 
    Task Category: (2) 
    Level:         Error 
    Keywords:      Classic 
    User:          SYSTEM 
    Computer:      DC02.mydom.com 
    Description: 
    The client-side extension could not remove computer policy settings for 'Default Domain Controllers Policy {6AC1786C-016F-11D2-945F-00C04fB984F9}' because it failed with error code '0x8007000d The data is invalid.' See trace file for more details.

    Как выяснилось, проблема связана с тем, что по какой-то причине ломается кэш преференций какой-либо групповой политики, что в дальнейшем приводит к проблеме обработки преференций и в других политиках применяемых на данном компьютере.

    Читать далее...

  • Проблема репликации групповых политик (Event ID 13568 Source NtFrs)

    imageНарвался на ситуацию когда в домене Windows Server 2008 на одном из контроллеров домена перестали обновляться групповые политики после некорректного выключения ОС. При этом с логе File Replication Service периодически фиксировались события с кодом 13568

    image

    Читать далее...

  • Интересный параметр GPO: Удалить команду "Выполнить" из меню "Пуск"

    В процесс настройки ужесточенной групповой политики для применения на терминальных серверах наткнулся на интересное поведение одного из параметров GPO.

    Путь в GPO:
    Конфигурация пользователя/Административные шаблоны/Меню "Пуск" и панель задач

    Параметр:
    Удалить команду "Выполнить" из меню "Пуск"

    image 

    Cуть в том, что при включении данного параметра, как выяснилось, в системе перестает корректно работать переход по UNC пути не только в Explorer и IE но и во всех других приложениях, например в той же 1С…т.е. переход с диска на диск в GUI путём клацанья мышкой как бы работает, но например из командного интерпретатора Cmd.exe при попытке подключения сетевого диска утилитой net – возникают ошибки по типу ограничения доступа…что само по себе не очень логично, и мне пришлось убить почти час времени чтобы среди кучи выставленных параметров GPO на терминальном сервере найти виновника странного поведения системы…
    В описании к данному параметру GPO конечно есть какая-то далеко неоднозначная фраза что-то типа «перестает работать интерфейс»…но что она значит на деле приходиться узнавать путем хождения по граблям …