5

6か月間ログインしていないADのすべてのユーザーを検索し、終了ユーザーOUまたは終了ユーザー\ベンダーなどのOUに誰も含めないPowerShellスクリプトを作成しようとしています。どちらのOUも除外できないようです。検索の6か月の部分は完全に機能します。

これが私の現在のコードです:

Search-ADAccount -accountinactive -datetime (get-date).AddMonths(-6) -usersonly | ft Name,LastLogonDate | ? {$_.DistinguishedName -notlike "*ou=Terminated Users,*" -and $_.DistinguishedName -notlike "*ou=vendors and others,*"} | Out-File stale_users.txt

OU名の末尾から*を削除し、-またはを試し、各OUを単独で試しました。それでも、それらのOUの検索をスキップしません。

4

2 に答える 2

3

除外コードと「ft」または「Format-Table」の順序を入れ替えます。DistinguishedNameフィールドがないところまでデータをフォーマットしてから、その欠落しているフィールドと照合しようとしています。

Search-ADAccount -accountinactive -datetime (get-date).AddMonths(-6) -usersonly | `
  ? {$_.DistinguishedName -notlike "*ou=Terminated Users,*" -and $_.DistinguishedName -notlike "*ou=vendors and others,*"} |`
  ft Name,LastLogonDate |`
  Out-File stale_users.txt
于 2012-12-10T18:10:49.293 に答える
0

@Markによって提案されたソリューションは私には機能しませんでした(Windows Server 2016)、これは機能しました

Search-ADAccount -accountinactive -datetime (get-date).AddMonths(-6) -usersonly | `
  ? {$_.DistinguishedName -notmach "ou=Terminated Users|ou=vendors and others"} |`
  ft Name,LastLogonDate |`
  Out-File stale_users.txt
于 2020-05-08T11:06:06.657 に答える