2017-01-12 3 views
1

Я использую текстовый файл, созданный из AD имен пользователей с ограниченными возможностями, например. jdoakes. Я использую следующий скрипт, чтобы получить последний раз, когда пользователь вошел в систему. Когда он запущен, он возвращает только пользователя с отключенным доступом. Любой способ сделать эту работу?Get-ADUser не использует текстовый файл импорта

Get-Content oldusers.txt | 
    Get-ADUser -Filter {Enabled -eq $true} -Properties Name,Manager,LastLogon | 
    Select-Object Name, Manager, 
    @{n='LastLogon';e={[DateTime]::FromFileTime($_.LastLogon)}} 

Он не возвращает ни одного из имен пользователей в текстовом файле.

ответ

2

Вы не можете использовать -Filter с -Identity (идентификация - это параметр, к которому вы привязываетесь, когда вы трубу). Вам необходимо будет фильтровать после факта:

Get-Content oldusers.txt | 
    Get-ADUser -Properties Name,Manager,LastLogon | 
    Where-Object -FilterScript { 
     $_.Enabled 
    } | 
    Select-Object Name,Manager,@{n='LastLogon';e={[DateTime]::FromFileTime($_.LastLogon)}} 
+1

Использовать '-not $ _. Enabled', если вы хотите отфильтровать для отключенных учетных записей. –

+0

Вышеприведенный код с -не работал для меня, кроме одной проблемы. Он показывает, что в последний раз, когда пользователь вошел в систему, был 31 декабря 1600. Должен ли я использовать другое свойство? – user88671

+0

Я изменил сценарий на это, и даты были корректными: Get-Content oldusers.txt | Get-ADUser -Properties Имя, менеджер, LastLogonTimeStamp | Where-Object -FilterScript { -not $ _. Включено } | Select-Object Name, Manager, @ {n = 'LastLogonTimeStamp'; e = {[DateTime] :: FromFileTime ($ _. LastLogonTimeStamp)}} – user88671