パスワードが無期限に設定されているフォレスト内のすべてのユーザーアカウントを確認するために、Powershellを介してADにクエリを実行しようとしています。
簡単なGoogle検索を使用してオンラインでいくつかのスクリプトを見つけましたが、どれも期待どおりに機能していないようです。次に、technet( https://technet.Microsoft.com/en-us/library/finding_users_whose_password_never_expires%28v=ws.10%29.aspx )で次の行を見つけましたが、この行を実行すると、
Search-ADAccount -PasswordNeverExpires | FT Name,ObjectClass -A
非常に少数の結果しか得られず、返されたリストには、このオプションが設定されていることがわかっている多数のユーザーが不足していることがわかっています。
このスクリプトのどこが間違っているのか、結果セットが小さい理由は何ですか?
以下を使用して動作します。
get-aduser -filter * -properties Name, PasswordNeverExpires | where { $_.passwordNeverExpires -eq "true" } | where {$_.enabled -eq "true"}
ADデータベースを検索して、「PasswordNeverExpires」が「True」に設定されているユーザーを検索し、結果をPowershellコンソールに返します。
言い回しと間違ったコマンドレットを編集し、以下を追加します結果をクリーンアップするには、これを上記のPowerShellコードの最後に追加します
| Format-Table -Property Name, PasswordNeverExpires -AutoSize
あなたはこのようなものを使うことができます:
Get-ADUser -filter { (PasswordNeverExpires -eq $true) -and (enabled -eq $true)} -searchbase "OU=,OU=,DC=,DC=" -Properties Surname,givenname, userprincipalName,PasswordNeverExpires| FT Name,ObjectClass,PasswordNeverExpires -A