管理者がユーザー アカウントの Active Directory パスワードをリセットしなければならない理由は数多くあり、これを実行する方法も複数あります。 Active Directory Users and Computers MMC、DSMOD コマンド ライン ツール、ADSI プログラミング、および PowerShell コマンドレットを使用することができます。 サードパーティ製のActive Directory管理ツールも、ユーザーのパスワードのリセットを含むActive Directory管理タスクを提供している。 内蔵ツールやサードパーティ製ツールを使用すれば、単一のユーザーアカウントに対するパスワードリセット操作を実行できますが、複数のユーザーアカウントのパスワードをリセットしたい場合は、スクリプトによるアプローチか、すべてのユーザーを選択してからパスワードを設定できるツールを使用する必要があります。 この記事では、ユーザー アカウントのパスワードをリセットするさまざまな方法を説明します。
Permissions to reset Active Directory passwords
パスワード リセット操作を実行する前に、Active Directory で十分な権限を持つ必要があることに注意することが重要です。 通常のユーザーアカウントは、他のユーザーアカウントのパスワードをリセットすることはできません。
Active DirectoryユーザーとコンピュータMMCを使用してパスワードをリセットする
Active DirectoryユーザーとコンピュータMMCからユーザーアカウントのパスワードをリセットしたい場合は、次の手順に従ってください:
- セキュリティグループのメンバーであるドメインユーザーアカウントを使ってコンピュータにログオンします
- Active Directory Users and Computersを開きます。
- パスワードをリセットしたいユーザーアカウントを探します。
- 右ペインでユーザーアカウントを右クリックし、「パスワードのリセット」アクションをクリックします。
- パスワードを入力し確認する必要があります。
次のログオン時にパスワードを変更させたい場合は、[次のログオン時にパスワードを変更する]オプションを選択する必要があります。
問題: Active DirectoryのユーザーとコンピュータMMCでは、複数のユーザーアカウントを選択し、選択したユーザーに共通のパスワードを設定することが可能です。 Active DirectoryのユーザーとコンピュータMMCのアプローチでは、1つの組織単位のユーザーしか選択できず、選択したユーザーには共通のパスワードしか設定できないという問題があります。 複数のユーザーアカウントに固有のパスワードを設定する必要がある場合、PowerShellのアプローチを使用する必要があります。 PowerShell はより良いコントロールを提供し、CSV ファイルから各ユーザーに固有のパスワードを設定するのに役立ちます。
Dsmod コマンドラインを使用したパスワードのリセット
Dsmod コマンドライン ツールはかなり長い間使用されてきました。 Dsmod は Directory Service Modification の略です。 このツールは、Microsoft が Active Directory を含むほとんどの Windows Server の役割と機能で使用される PowerShell コマンドレットを開発しているときに設計されました。 PowerShellが他の古いツールよりも大きな柔軟性を提供するため、DsmodはもはやActive Directory管理者に使用されていませんが、Dsmodはパスワードのリセットを含むユーザーアカウントのプロパティの変更に関して、非常に素晴らしい仕事をします。 Dsmod を使用してユーザー アカウントのパスワードをリセットするには、次のコマンドを実行します:
DSMOD User <DistinguishedName Of The User> -PWD <NewPassword> -MustChPWD Yes
上記のコマンドでわかるように、「Dsmod User」コンテキストは Active Directory ユーザー アカウントのパスワードをリセットするために使用することができます。 しかし、Dsmodの問題は、あなたがパスワードをリセットしたいユーザーアカウントの識別名を提供する必要があることです。 言い換えると、Dsmod はユーザー アカウントの SamAccountName を受け付けません。
PowerShell コマンドレットを使用してパスワードをリセットする
単一または複数のユーザー アカウントのパスワードをリセットする好ましい方法は、常に PowerShell です。 Set-ADAccountPassword PowerShellコマンドレットを使用して、単一または複数のユーザーに対してパスワード リセット操作を実行することができます。 Set-ADAccountPasswordコマンドレットは、「-Identity」パラメータを提供し、識別名とユーザーオブジェクトGUIDを受け入れる以外に、ユーザーアカウントのSamAccountNameも受け入れることができることに注意することが重要である。 これは、Dsmodコマンドラインツールに対する主要な利点です。 単一のユーザーアカウントのパスワードをリセットするには、次のPowerShellコマンドを実行します:
上記のコマンドは、識別名形式で指定されたユーザーアカウントのパスワードをリセットします。 Set-ADAccountPasswordコマンドレットでユーザーのSamAccountNameを使用したい場合、以下のPowerShellコマンドを使用します:
Set-ADAccountPassword –Identity JohnThomas –Reset –NewPassword (ConvertTo-SecureString -AsPlainText "ThisPassword001" -Force)
上記の両方のPowerShellコマンドは単一のユーザーアカウントに対してのみ使用できますが、パスワードをリセットしたいユーザーアカウントのリストを含むCSVファイルを使用してForEachループを追加すると、複数のユーザーアカウントのパスワードをリセットする際に便利です。 例えば、以下のPowerShellスクリプトでは、CSVファイルで指定された固有のパスワードをユーザーごとにリセットします。
上記のスクリプトでは、C:³³以下にユーザーのSamAccountNameと新しいパスワードを含む「UserWithPass」の名前のCSVファイルが作成されたと仮定します。 スクリプトでは、CSVファイルから各ユーザー名とパスワードを確認し、Set-ADAccountPasswordコマンドレットを使用してリセットします。
サードパーティ製管理ツールの使用
Active Directoryパスワードをリセットする方法を提供するサードパーティ製管理ツールも存在します。
ヒント: Set-ADAccountPassword コマンドレットは、ユーザーが配置されている本番組織単位をターゲットにすることもできますが、すべてのユーザーに対して一意のパスワードが設定されるようにするには、スクリプトによって処理される各ユーザーに対して一意のパスワードを生成できるロジックをスクリプトに含めることが必要になります。
Active Directory のパスワードをリセットするには Active Directory Users and Computers MMC を使用できますが、PowerShell の方法を使用するとより柔軟性があり、また CSV ファイルで指定した各ユーザーに固有のパスワードをリセットするのに役立ちます。
Photo credit: