Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Выборка пользователей с атрибутом accountExpires < текущей даты АД

Ответить
Настройки темы
PowerShell - [решено] Выборка пользователей с атрибутом accountExpires < текущей даты АД

Аватара для ejik_off

Старожил


Сообщения: 430
Благодарности: 9

Профиль | Отправить PM | Цитировать


Доброе время суток!
собственно задача в названии темы.
вот скрип
Код: Выделить весь код
$date = get-date -Format G
Get-ADUser -Filter * -Properties accountExpires| select name, @{label='accountExpires';e={[DateTime]::FromFileTime($_.accountExpires)}} | Where-Object {$_.accountExpires -Gt "1/1/1601 6:00:00 AM" -and [datetime]::FromFileTime($_.accountExpires) -lt $date }
При запуске скрипта вываливается ошибка:
Цитата:
Cannot convert argument "0", with value: "2/16/2017 12:00:00 AM", for "FromFileTime" to type "System.Int64": "Cannot convert value "2/16/2017 12:00:00 AM" to type "System.Int64". Error: "Invali
d cast from 'DateTime' to 'Int64'.""
At line:1 char:265
+ Get-ADUser -Filter * -Properties accountExpires| select name, @{label='accountExpires';e={[DateTime]::FromFileTime($_.accountExpires)}} | Where-Object {$_.accountExpires -Gt "1/1/1601 6:00:00 AM" -and [datetime]::FromFileTime <<<< ($_.accountExpires) -lt $date }
+ CategoryInfo : NotSpecified: ( [], MethodException
+ FullyQualifiedErrorId : MethodArgumentConversionInvalidCastArgument
подскажите где ошибка?

Отправлено: 09:10, 14-09-2017

 

Ветеран


Microsoft MVP


Сообщения: 1107
Благодарности: 744

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
$date = Get-Date
Get-ADUser -LDAPFilter "(&(!accountExpires=0)(!accountExpires=9223372036854775807))" -Properties accountExpires| select name, @{n='accountExpires';e={[DateTime]::FromFileTime($_.accountExpires)}} | Where-Object {$_.accountExpires -lt $date }
или
Код: Выделить весь код
Get-ADUser -Filter {AccountExpirationDate -lt $date}
или
Код: Выделить весь код
Get-ADUser -Filter "AccountExpirationDate -lt '$(Get-Date)'"

Последний раз редактировалось Kazun, 14-09-2017 в 09:36.

Это сообщение посчитали полезным следующие участники:

Отправлено: 09:29, 14-09-2017 | #2



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

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для ejik_off

Старожил


Сообщения: 430
Благодарности: 9

Профиль | Отправить PM | Цитировать


большое спасибо!!!

Отправлено: 09:58, 14-09-2017 | #3


Аватара для ejik_off

Старожил


Сообщения: 430
Благодарности: 9

Профиль | Отправить PM | Цитировать


Kazun, странно, в тестовой среде все перечисленные команды отработали правильно.
А в продуктиве первая команда вытащила всех юзеров у которых атрибут accountExpires = 1/1/1601 6:00:00 AM, хатя в фильтре указано таких не выводить, как так получилось?
Остальные две команды вообще ничего не вывели.
и в тесте и в продуктиве DC 2008R2

Отправлено: 11:00, 14-09-2017 | #4


Аватара для ejik_off

Старожил


Сообщения: 430
Благодарности: 9

Профиль | Отправить PM | Цитировать


Все разобрался, почему то при запуске скрипта на самом контролере не работает, запустил скрипт с рабочей машины, все работает. Что то консолью Powershell_ise на ДС

Отправлено: 12:54, 14-09-2017 | #5



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Выборка пользователей с атрибутом accountExpires < текущей даты АД

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Узнать даты понедельника и пятницы текущей недели V!RTuE Скриптовые языки администрирования Windows 1 28-02-2015 22:31
CMD/BAT - [решено] Добавление текущей даты в начало имени файла Orlov_Pyotr Скриптовые языки администрирования Windows 6 27-02-2013 13:30
CMD/BAT - Сранение даты из файла с текущей датой InVariable Скриптовые языки администрирования Windows 0 07-02-2012 11:53
VBS/WSH/JS - [решено] Удаление файлов созданных ранее текущей даты на неделю KillHunter Скриптовые языки администрирования Windows 5 06-03-2009 12:23




 
Переход