В одном из дочерних доменов моего клиента, у него есть проблема, что ряд (похоже) случайных пользователей не могут изменить свой пароль из-за "сложности бла-бла". Однако это неверно, когда:
a) Администратор сбрасывает пароль на новый или
b) у пользователя установлен флаг «должен сбрасывать пароль при входе в систему»
То, что я пробовал до сих пор:
GPO: Есть только политика домена по умолчанию с настройками пароля. Настройки следующие:
Поставщик паролей на PDC : Я читал, что вы можете использовать собственные поставщики паролей через реестр. Проверял с доменом, где все работает. Вроде по умолчанию. Единственное, что я видел, это настройка EveryoneIncludesAnonymous = 0
.
Пользователь все еще не мог изменить свой PW после того, как я создал для него PSO, с конфигурацией, которая должна работать. Похоже, они не применялись.
PDC доступен
Set-ADAccountPassword
на контроллере домена тоже не работал.
Дескриптор безопасности учетной записи пользователя выглядит вполне нормально. Каждый имеет право изменить пароль.
В ADUC со свойствами пользователя все в порядке. Пользователь не может изменить пароль = $ false и т. Д.
Вывод сетевого пользователя / домена Myuser
User name cardm004
Full Name Cardman, Michael
Comment Test User
User's comment
Country/region code 000 (System Default)
Account active Yes
Account expires Never
Password last set 16.01.2017 13:14:58
Password expires Never
Password changeable 15.02.2017 13:14:58
Password required Yes
User may change password Yes
Workstations allowed All
Logon script login.cmd
User profile
Home directory
Last logon 18.01.2017 08:14:01
Logon hours allowed All
Local Group Memberships
Global Group memberships *Domain Users
The command completed successfully.
Вывод чистых учетных записей
Force user logoff how long after time expires?: Never
Minimum password age (days): 0
Maximum password age (days): 37201
Minimum password length: 10
Length of password history maintained: 5
Lockout threshold: Never
Lockout duration (minutes): 30
Lockout observation window (minutes): 30
Computer role: Workstation
У меня сейчас нет идей. Что я могу попытаться выяснить, почему пользователи не могут менять свои пароли?
Обновление
Я обнаружил, что моделирование групповой политики показывает разные конфигурации для разных пользователей. Часть «параметры пароля» и «политика блокировки учетной записи» не отображаются для пользователей, которые не могут изменить свои пароли. Поэтому я предполагаю, что на контроллерах домена может быть проблема с репликацией. Я проверил статус репликации с помощью repadmin / showrepl
, и результаты были удовлетворительными. Я проверил содержимое файла в sysvol на всех 3 контроллерах домена, и они идентичны. Так или иначе, контроллеры домена обновлены, но компьютеры не получают конфигурации.
GPUpdate / force
и GPResult / r
или GPResult / h file.html
выглядят хорошо и не показывают ошибок. Перезагрузка после GPUpdate / force
не изменила ошибку.
GPResult / r
показывает правильный сайт и отображает быстрое соединение, Политика домена по умолчанию
(где выполняются настройки) отображается как примененная.
Обновление 2
Я создал дополнительный объект групповой политики, чтобы установить параметры пароля. Для этого я создал подразделение, в которое переместил компьютер и учетную запись пользователя и связал этот объект групповой политики с помощью enformed = $ true
с этим подразделением. GPResult / h
показывает правильную примененную конфигурацию, Net user / domain testuser
- нет. Параметры локальной политики идентичны параметрам GPO.
Проблема все еще возникает.
Обновление 3
Клиент открыл тикет в Microsoft. У них еще нет решения, но выяснилось, что, похоже, проблема с GP: пользователь и его устройство были перемещены в отдельное OU для тестирования с отключенным наследованием. Они применили к нему новый GPO с несколькими настройками пароля. GPResult
показал обновленные настройки, но пользователь все еще не мог изменить свой пароль.
Затем они удалили GP-ссылку и снова включили наследование, настройки тестового GPO остались в системе. Настройки политики домена по умолчанию не были применены (они были ниже, чем в тестовом GPO), и пользователь все еще не мог изменить свой пароль.
Я буду держать вас в курсе, возможно, кто-то из вас запустит в один прекрасный день или найдет решение раньше, чем это сделает Microsoft. вызывается до и после каждой записи в командной строке? Было бы очень полезно иногда прокручивать назад в терминале и ощущать, сколько времени занимает работа.
Есть ли у других умные способы решить эту проблему - я уверен, что это достаточно распространенный сценарий.
Что касается решений с этим подходом, я предполагаю, что это немного связано с этим вопросом Q. Запустить интерактивную подоболочку bash с начальными командами, не возвращаясь немедленно в ("супер") оболочку
, где ясно, что вы можете добавлять команды в начало .. но это только часть решения. Возможно, предварительное ожидание, а затем получение приглашения оболочки для отображения текущего времени было бы довольно изящным решением?
Мысли?
ПРИМЕЧАНИЕ: это не прямой ответ на вопрос OP, но, возможно, он может быть полезен для решения этой проблемы.
Для уже запущенных процессов вы можете получить дата / время начала, выдающая простую ps ax -F
. Он покажет результат, подобный следующему:
apache 1733 1678 0 83467 7752 0 10:07 ? S 0:00 /usr/sbin/httpd apache 1734 1678 0 83467 7752 0 10:07 ? S 0:00 /usr/sbin/httpd apache 1735 1678 0 83467 7752 0 10:07 ? S 0:00 /usr/sbin/httpd apache 1736 1678 0 83467 7768 0 10:07 ? S 0:00 /usr/sbin/httpd apache 1737 1678 0 83467 7752 0 10:07 ? S 0:00 /usr/sbin/httpd apache 1738 1678 0 83467 7752 0 10:07 ? S 0:00 /usr/sbin/httpd
Как видите, восьмой столбец показывает дату / время начала.
Вы можете просто изменить переменную приглашения оболочки PS1
для отображения текущей отметки времени. Можно использовать одно из следующего:
\t the current time in 24-hour HH:MM:SS format
\T the current time in 12-hour HH:MM:SS format
\@ the current time in 12-hour am/pm format
\A the current time in 24-hour HH:MM format
Вы можете найти их с другими параметрами в man bash
. Отредактируйте файл .bashrc
, чтобы изменить PS1
по своему усмотрению.
Затем вы можете определить, когда будет выполняться какая-либо команда. Конечно, если вы будете бездействовать долгое время, прежде чем нажать Enter, вы не сможете узнать точное время.
Изменить: Другой вариант - использовать утилиту ts
, чтобы показать, как продвигается ваш скрипт. . Выполните свой сценарий как:
$ /path/to/script | ts
Каждый оператор эха будет отображаться с отметкой времени.