Найти пользователей со свойством AD .whenСоздано менее чем за 90 дней - PullRequest
0 голосов
/ 02 июля 2018
$daysOld = "-90"
$currentDate = get-date
$removeIfBefore = $currentDate.AddDays($daysOld)
$vpnuserstest = Get-ADGroupMember VPN_users -Recursive | select     samaccountname | foreach ($_.samaccountname) {
Get-ADUser $_.samaccountname -Properties samaccountname, whenCreated |
Select-Object samaccountname,@{n='Days Since Created';e={($((Get-Date)) -     $($_.WhenCreated)).Days}} |
Format-table -AutoSize}

Подробное описание: Я беру пользователей из группы VPN_users и ищу их свойства "samaccountname" и "whenCreated". Тогда я бы хотел взять сегодняшнюю дату и вернуться назад на 90 дней. Любой, чья дата «whenCreated» попадает в это 90-дневное окно, я хочу добавить в таблицу, чтобы потом ее можно было экспортировать.

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

Извините, если код выглядит как "frankenstein'd" ... потому что это так. Я взял разные аспекты из разных поисков Google и соединил их.

1 Ответ

0 голосов
/ 02 июля 2018

Вот один из способов: создать строку метки времени и использовать ее с параметром -LDAPFilter. Пример:

$daysOld = 90
$timestampUTC = (Get-Date).AddDays(-$daysOld).ToUniversalTime()
$timestampString = "{0:yyyyMMddHHmmss.0Z}" -f $timestampUTC
Get-ADUser -Properties whenCreated -LDAPFilter "(whenCreated<=$timestampString)"

Если вы хотите ограничить результаты пользователями, которые являются членами определенной группы, вы можете обновить фильтр запросов LDAP. Пример:

$daysOld = 90
$timestampUTC = (Get-Date).AddDays(-$daysOld).ToUniversalTime()
$timestampString = "{0:yyyyMMddHHmmss.0Z}" -f $timestampUTC
Get-ADUser -Properties whenCreated -LDAPFilter "(&(whenCreated<=$timestampString)(memberOf=CN=Group Name,OU=Container,DC=fabrikam,DC=com))"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...