2016-03-18 7 views
0

これはこれまで私が持っていたものですが、私は運がありません。あなたはどう思いますか?アクティブなディレクトリのユーザー名、メンバーのアカウント、lastlogondateを取得するためのpowershellスクリプトを作成するにはどうすればよいですか?

Get-ADUser -LDAPFilter "(name=*)" -SearchScope Subtree ` 
    -SearchBase "OU=adminaccounts,OU=Managed Objects,DC=testdomain,DC=Com" ` | 
    % { 
    $user = $_ 
    $user | Get-ADPrincipalGroupMembership | 
    Select @{N="User";E={$user.sAMAccountName}}, 
      @{N="Group";E={$_.Name}}, 
      @{N="Last‌​Logon";E={[DateTime]::FromFileTime($user.LastLogon)}} 
    } | 
    Select User,Group,LastLogon | 
    Export-Csv C:\temp\report.csv -nti 
+0

"運が悪い"とは具体的に考える必要があります。 –

+0

私はまだPowershellを初めて使っていることを謝ります。スクリプトはlastlogondate以外のすべてを出力します。 –

+0

調整が完了しました。上記のスクリプトをオリジナルの質問で編集して、あなたが推奨したものを編集しました。残念ながら、それは私に同じ結果をもたらします。ユーザーとグループは表示されますが、lastlogonは表示されません。 –

答えて

0

LastLogonはプロパティの中にないことGet-ADUser戻り、デフォルトでは、NameSamAccountNameとは異なり。 (

Get-ADUser -LDAPFilter "(name=*)" -SearchScope Subtree ` 
    -SearchBase "OU=adminaccounts,OU=Managed Objects,DC=testdomain,DC=Com" ` 
    -Properties LastLogon | ...

また、ネストされたパイプライン内の現在のオブジェクト変数($_)が異なる値を持っているので、あなたが期待するよりも、最初のselect文の中$user.LastLogon$_.LastLogonを置き換える:あなたは、明示的にそのプロパティを含めるようにコマンドレットを指示する必要がありますユーザーの主なグループ):

... | select ...,@{N="Last‌​Logon";E={[DateTime]::FromFileTime($user.LastLogon)}}
+0

私はそれを現在のスクリプトの前に置くことはできますか? –

+0

@JeremySmith現在のスクリプトを変更します。上記の抜粋の一部が太字で強調されている理由があります。 –

+0

最初のスクリプトに推奨する変更を追加しました。どう思いますか? –

関連する問題