2017-01-12 1 views
1

Ich verwende eine Textdatei, die aus AD von deaktivierten Benutzernamen generiert wurde, z. jdoakes. Ich verwende das folgende Skript, um das letzte Mal zu erhalten, an dem sich der Benutzer anmeldete. Bei der Ausführung wird nur der nicht deaktivierte Benutzer zurückgegeben. Irgendeine Möglichkeit, dies zum Funktionieren zu bringen?Get-ADUser verwendet keine Import-Textdatei

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

Es werden keine der Benutzernamen in der Textdatei zurückgegeben.

Antwort

2

Sie können -Filter mit -Identity nicht verwenden (identity ist der Parameter, an den Sie beim Piping binden). Sie müssen nach der Tatsache filtern:

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

Verwenden Sie '-not $ _. Enabled ', wenn Sie für deaktivierte Konten filtern möchten. –

+0

Der obige Code mit dem -nicht funktioniert für mich bis auf ein Problem. Es zeigt, dass das letzte Mal, als sich der Benutzer anmeldete, der 31. Dezember 1600 war. Sollte ich eine andere Eigenschaft verwenden? – user88671

+0

Ich änderte das Skript zu diesem und die Daten kamen richtig heraus: Get-Content oldusers.txt | Get-ADUser - Eigenschaften Name, Manager, LastLogonTimeStamp | Where-Object -FilterScript { -nicht $ _. Aktiviert } | Select-Objektname, Manager, @ {n = 'LastLogonTimeStamp'; e = {[DateTime] :: FromFileTime ($ _. LastLogonTimeStamp)}} – user88671

Verwandte Themen