2017-02-11 2 views
0

Я использовал строку кода в соответствии с приведенными ниже строками, чтобы рассчитать, когда пользовательские пароли истекают.Как я могу идентифицировать недавно просроченные пароли?

$Expiration = (([datetime]::FromFileTime((Get-ADUser –Identity 'MyTestUser' -Properties "msDS-UserPasswordExpiryTimeComputed")."msDS-UserPasswordExpiryTimeComputed"))-(Get-Date)).Days 

Проблема с этим, как я запускаю это каждую ночь, некоторые пароли, которые истекли в последнее время дают результат как 0, хотя на самом деле это минус число, которое округляется. Мой вопрос: могу ли я получить более подробный ответ, чтобы я мог сделать это точно? Мне нужно иметь возможность сравнивать результаты в выражении if, поскольку я хочу определить, истекает ли пароль пользователя в выходные и т. Д., Чтобы я мог их уведомить.

У меня есть все остальное, только деталь запроса.

ответ

0

Предполагая, что код работает так, как вы хотите, вы ограничиваете себя, работая на основе .Days. Значение не округлено, оно просто сообщает о полных днях. Timespan объектов имеют и другие свойства.

Вместо этого я предлагаю работать с TotalHours и добавить некоторую логику, которая также будет работать с отрицательными значениями. Что-то вроде $Expiration -gt -24 -and $Expiration -lt 72. Это должно быть истекли за последние 24 часа или в следующие 3 дня.

+0

Всего часов - это именно то, что мне нужно – rrafluap

Смежные вопросы