ユーザー:あなたの組織のユーザーは、パスワードを忘れることはありますか?もちろん、そんなことはないでしょう!Active Directoryユーザーがアカウントをロックアウトしたことはありますか?絶対にないはずです!PowerShellを使用してActive Directoryでロックアウトされたユーザーを見つけるためにできることを見てみましょう!
Active Directoryでのパスワードリセットの呼び出しやアカウントのロックアウトに苦しんでいませんか?Specops uResetの無料トライアルを入手してください。
ネットワークがマルウェアに感染し、できるだけ多くのドメインユーザーアカウントで認証しようとすることはありましたか?そうでないことを願っていますが、私はそれが何度か起こったのを見ています。ユーザーとワームは、1つまたは複数のADアカウントがロックアウトされる理由の2つです。パスワードポリシーに応じて、ロックアウトは毎日のように発生するか、時折のことです。
原因や状況に関係なく、アカウントのロックアウトはユーザーに影響します。ほとんどのことに依存しているActive Directoryドメインアカウントがロックアウトされると、ユーザーはすぐに気付くでしょう。ヘルプデスクでアカウントを再有効にできますが、それが再発した場合はどうでしょうか?…また、繰り返されます。…そして再び。この問題の根本的な原因を突き止めることは重要です。
1つの方法は、PowerShellとActiveDirectoryモジュールを使用することです。 Active Directoryモジュール内のSearch-AdAccount
コマンドレットを使用することで、ドメイン全体で現在ロックされているすべてのアカウントを簡単に追跡できます。
関連記事:Active Directory PowerShellモジュールのインストール方法
PowerShellでActive Directoryのロックアウトユーザーを検索する
ロックアウトされたアカウントを検索するには、LockedOut
パラメータを使用してSearch-AdAccount
コマンドを実行できます。 これにより、その権限を持っていれば現在ロックされているすべてのユーザーが返されます。
このコマンドは素晴らしいですが、常にロックされているアカウントがあり、どのシステムから来ているかを特定する必要がある場合はどうでしょうか? ネットワーク上のどこかにマルウェア感染がある場合や、リモートデスクトップセッションからログアウトを忘れた管理者がいる場合など、これは一般的なタスクです。 そんなことは絶対にないですよね?
Active Directoryのロックアウトの原因を見つけるには、まず適切なドメインコントローラーをクエリする必要があります。 この場合、PDCエミュレーター役割を持つドメインコントローラーがそれに該当します。
PDCe役割ホルダーを見つける
すべてのパスワード認証はこのDCに届き、常に確認する最適な場所です。PDCeロールを保持しているドメインコントローラーを見つけるには、Get-ADDomain
コマンドレットから返されるPDCEmulator
プロパティを確認できます。
ロックアウトのためのイベントログの検索
PDCeロールを保持しているDCを取得したら、そのDCのセキュリティイベントログ(セキュリティログ)からイベントID 4740をクエリする必要があります。イベントID 4740は、アカウントがロックアウトされるたびに登録されるイベントです。これはGet-WinEvent
コマンドレットを使用して行います。
PowerShellを使用してActive Directoryでロックアウトされたユーザーを見つけるのはもうすぐです!
ユーザー名と場所の解析
これにより、すべてのロックアウトイベントが返されますが、直ちにロックアウトが実行されたユーザー名とコンピュータ名は表示されません。ユーザー名を見つけるには、Get-WinEvent
が返すProperties
と呼ばれるプロパティに少し深く入る必要があります。
ハッシュテーブルフィルターを移動してコードの折り返しを防ぎ、さらに重要なのは、Select-Object
の計算されたプロパティを使用してProperties
プロパティからユーザー名とコンピュータ名を抽出しました。これらのイベントの各々で、ロックアウトされたユーザー名は常にProperties
配列の最初の要素であり、2番目の要素は常にロックアウトが実行されたコンピュータ名です。
PowerShellを利用してADアカウントをアンロックする
今、ロックアウトされたADユーザーを見つけたら、アカウントをロック解除する方法はどうなりますか? PowerShellのActiveDirectory
モジュール は、Unlock-ADAccount
コマンドを提供しており、顧客を素早く作業に戻すことができます。以下に示すように、PowerShellを使用してADアカウントをロック解除します。このコマンドは、ActiveDirectory
モジュールをロードした後、Windows PowerShellとPowerShell 7の両方で機能します。
おそらく、一度にすべてのロックされたユーザーのロックを解除したいと考えていますが、Search-ADAccount
コマンドを-LockedOut
パラメータとともに使用し、結果をUnlock-ADAccount
コマンドにパイプしてください。
サービスデスクの通話を削減し、VPN外でもリモートユーザーのキャッシュ資格情報を更新する、自己サービスのパスワードリセットソリューション。 Specops uResetのデモを入手!
要約

現時点では、ドメイン内で現在ロックされているすべてのアカウントを迅速に特定し、すべてのアカウントのロックアウト履歴を確認できるはずです。今はジョーに、RDPセッションを開いたままにしておくことについて厳重に語る時です…
Source:
https://adamtheautomator.com/find-locked-out-users-in-active-directory-powershell/