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과 함께 사용할 수 없습니다 (ID는 파이프 할 때 바인딩 할 매개 변수입니다). 사실을 필터링해야합니다 :

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

위의 -not 코드는 한 가지 문제를 제외하고는 저에게 효과적이었습니다. 사용자가 마지막으로 로그온 한 시간은 1600 년 12 월 31 일이었습니다. 다른 속성을 사용해야합니까? – user88671

+0

나는이 스크립트를 다음 날짜로 바꿨다. Get-Content oldusers.txt | Get-ADUser - 속성 이름, 관리자, LastLogonTimeStamp | Where-Object -FilterScript { - 없음 $ _. 사용 가능 } | Select-Object Name, Manager, @ {n = 'LastLogonTimeStamp'; e = {[DateTime] :: FromFileTime ($ _. LastLogonTimeStamp)}} – user88671

관련 문제