Учетная запись Active Directory - PullRequest
1 голос
/ 18 марта 2020

Я пытаюсь написать небольшой скрипт, чтобы проверить, не истек ли срок действия Active Directory AccountExpirationDate или он активен и имеет значение null. Кажется, я могу сделать одно или другое, но не оба. $accexpoutput - просто для удаления пробелов при печати на экран. Вот мой текущий сценарий

$username = Read-Host -Prompt "Input Username"
$currdate = Get-Date
$accexp = Get-ADUser -Filter 'Name -like $username' | Select -ExpandProperty AccountExpirationDate
$accexpoutput = (Get-ADUser -Filter 'Name -like $username'  -Properties AccountExpirationDate | Format-list AccountExpirationDate | Out-String).trim()

if($accexp -gt $currdate -or !$accexp){write-host $accexpoutput $currdate -ForegroundColor Blue -BackgroundColor Green}

else {Write-Host $accexpoutput $currdate -ForegroundColor Red -BackgroundColor Black}

Любые советы или помощь будут оценены.

1 Ответ

1 голос
/ 19 марта 2020

В вашем случае вы можете использовать следующее:

$accexp = Get-ADUser -Filter 'Name -like $username' -Properties AccountExpirationDate |
    Select -ExpandProperty AccountExpirationDate

Объяснение:

По умолчанию ADUser объекты возвращаются Get- ADUser имеет набор свойств по умолчанию. Любые свойства, не входящие в набор по умолчанию, должны быть явно переданы или представлены * в параметре -Properties.

Несколько свойств не по умолчанию могут быть получены с использованием синтаксиса -Properties Property1,property2,property3, поскольку -Properties принимает массив.

В частности, передача набора свойств в -Properties не будет подавлять вывод свойства по умолчанию. Вам нужно будет использовать какой-нибудь другой механизм фильтрации c, например Select-Object, если вы хотите видеть только определенный набор свойств c.

Использование -Properties * не рекомендуется в большинстве случаев, поскольку дополнительные ресурсы, необходимые для запроса лишних свойств. Поскольку в вашем случае вам нужно только одно дополнительное свойство, вы должны передать это свойство только в параметр.

Вы можете просмотреть Active Directory по умолчанию и расширенные свойства , предоставленные mklement0 , чтобы увидеть расширенный и стандартный список свойств. Обратите внимание, что не все свойства считаются стандартными или расширенными. Вы можете получить эти не стандартные и не расширенные свойства по их отображаемому имени LDAP, используя -Properties.

...