ワークステーションとADドメイン間の信頼関係が壊れたときの修復方法(再参加・再起動不要)
本記事では、ドメイン資格情報を使用してコンピューターにログオンしようとした際に「このワークステーションとプライマリドメイン間の信頼関係に失敗しました」というエラーが表示される問題について、その根本原因と、コンピューターの再起動やドメインへの再参加を行わずに、セキュアチャネルを通じてドメインコントローラーとの信頼関係を修復する簡単な方法を解説します。
「このワークステーションとプライマリドメイン間の信頼関係に失敗しました」エラーとは
この問題は、ユーザーがドメインアカウントでワークステーションやメンバーサーバーにログオンしようとした際に、パスワード入力後に次のようなエラーが発生することで判明します。
このワークステーションとプライマリドメイン間の信頼関係に失敗しました。
(The trust relationship between this workstation and the primary domain failed.)
また、以下のように表示される場合もあります。
サーバー上のセキュリティデータベースには、このワークステーションの信頼関係に対するコンピューターアカウントがありません。
(The security database on the server does not have a computer account for this workstation trust relationship.)
Active Directoryドメインにおけるコンピューターアカウントのパスワード
コンピューターをActive Directoryドメインに参加させると、専用のコンピューターアカウントが作成されます。ユーザーと同様に、各コンピューターにもパスワードが割り当てられ、これを使ってドメイン内での認証やドメインコントローラー(DC)との信頼された接続の確立を行います。ただし、ユーザーのパスワードと異なり、コンピューターのパスワードは自動的に設定・変更される点が特徴です。
ADにおけるコンピューターアカウントのパスワードについて、押さえておくべき重要なポイントは以下の通りです。
- ADのコンピューターパスワードは定期的に変更する必要があります(デフォルトでは30日ごと)。ヒント: コンピューターパスワードの最大有効期間は、「コンピューターの構成 → Windows の設定 → セキュリティの設定 → ローカルポリシー → セキュリティオプション」にある[ドメイン メンバー: マシン アカウント パスワードの最長有効期間]ポリシーで変更できます。設定範囲は0〜999日(デフォルトは30日)です。
- ユーザーパスワードと異なり、コンピューターのパスワードは期限切れになりません。パスワードの変更はドメインコントローラーではなく、コンピューター側から開始されます。また、コンピューターのパスワードはドメインのパスワードポリシーの対象外です。したがって、たとえコンピューターが30日以上電源オフになっていても、電源を入れれば古いパスワードのままでDC上での認証が可能です。認証後、ローカルのNetlogonサービスがローカルデータベース内のコンピューターパスワードを更新し(パスワードはレジストリの
HKLM\SECURITY\Policy\Secrets\$machine.ACCに保存されています)、その後Active Directory上のコンピューターアカウントのパスワードも更新します。 - コンピューターのパスワードは最も近いDC上で変更され、その変更はPDCエミュレーターFSMO役割を持つドメインコントローラーには即座に送信されません(あるDCでパスワードを変更したコンピューターは、ADの変更がレプリケートされるまで他のDCでは認証できません)。
コンピューターがドメインコントローラーに送信するパスワードハッシュが、ADデータベース内のコンピューターアカウントのパスワードと一致しない場合、コンピューターはDCとのセキュアな接続を確立できず、信頼関係のエラーが返されます。
問題が発生する主な原因
- コンピューターが、AD上でパスワードが変更される前の古い復元ポイントやスナップショット(仮想マシンの場合)から復元された。ロールバックすると、コンピューターは古いパスワードでDCに認証を試みます。これが最も典型的な原因です。
- 同じ名前のコンピューターがAD内に作成された、または誰かがADUCコンソール(
dsa.msc)でドメイン内のコンピューターアカウントをリセットした。 - 管理者によってドメイン内のコンピューターアカウントが無効化された(例: 非アクティブなADオブジェクトを無効化する定期作業の一環として)。
- 比較的まれなケースですが、コンピューターのシステム時刻が正しくない場合も発生します。
従来の修復方法(古典的な手順)
従来、コンピューターとドメイン間の信頼関係を修復するには、以下の手順が一般的でした。
- AD上でコンピューターアカウントをリセットする
- ローカル管理者権限でコンピューターをドメインからワークグループへ移動する
- 再起動する
- コンピューターをドメインに再度参加させる
- もう一度再起動する
一見シンプルですが、この方法は非常に手間がかかり、少なくとも2回の再起動が必要で、10〜30分程度の時間を要します。さらに、以前のローカルユーザープロファイルの扱いで問題が生じることもあります。
そこで次に紹介するのは、PowerShellを使って、ドメインへの再参加や再起動なしに信頼関係を修復するスマートな方法です。
PowerShellでコンピューターとドメイン間の信頼関係を確認・修復する
ドメインアカウントで認証できず「このワークステーションとプライマリドメイン間の信頼関係に失敗しました」というエラーが表示される場合は、まずローカル管理者アカウントでコンピューターにログオンしてください。ネットワークケーブルを抜いた状態で、最近ログオンしたことのあるドメインアカウントのキャッシュ済み資格情報(Cached Credentials)を使ってログオンすることも可能です。
管理者権限でPowerShellコンソールを開き、Test-ComputerSecureChannelコマンドレットを使用して、ローカルコンピューターのパスワードがADに保存されているものと一致しているかを確認します。
Test-ComputerSecureChannel -Verbose
パスワードが一致せず、コンピューターがドメインとの信頼関係を確立できない場合、コマンドはFalseを返し、「ローカルコンピューターとドメイン woshub.com の間のセキュアチャネルが壊れています」というメッセージが表示されます。
AD上のコンピューターアカウントのパスワードを強制的にリセットするには、次のコマンドを実行します。
Test-ComputerSecureChannel -Repair -Credential (Get-Credential)
パスワードをリセットするには、コンピューターアカウントのパスワードをリセットする権限を持つユーザーアカウントの資格情報を入力します。このユーザーには、Active Directory内のコンピューターを管理する権限が委任されている必要があります(Domain Adminsグループのメンバーでも構いません)。
その後、再度Test-ComputerSecureChannelを実行し、Trueが返されることを確認してください(「ローカルコンピューターとドメイン woshub.com の間のセキュアチャネルは正常です」というメッセージが表示されます)。
これにより、再起動や手動でのドメイン再参加なしにコンピューターのパスワードがリセットされました。以降はドメインアカウントでコンピューターにログオンできます。
また、パスワードを強制的にリセットするには、Reset-ComputerMachinePasswordコマンドレットを使用することもできます。
Reset-ComputerMachinePassword -Server mun-dc01.woshub.com -Credential woshub\adm_user1
mun-dc01.woshub.comは、コンピューターのパスワードを変更する対象となる、最も近いドメインコントローラーの名前です。
運用上のヒント
- 仮想マシンのスナップショット作成やシステムの復元ポイント作成の前に、毎回コンピューターのパスワードをリセットしておくと、後で以前の状態にロールバックしやすくなります。
- 開発環境やテスト環境など、スナップショットからVMを頻繁に復旧する必要がある場合は、GPOを使用してこれらのコンピューターのドメインでのパスワード変更を無効化できます。その場合は、「コンピューターの構成 → ポリシー → Windows の設定 → セキュリティの設定 → ローカルポリシー → セキュリティオプション」にある[ドメイン メンバー: マシン アカウント パスワードの変更を無効にする]ポリシーを設定します。テスト用コンピューターが属するOUにポリシーを適用するか、GPOのWMIフィルターを利用してください。
また、Windows PowerShell用Active DirectoryモジュールのGet-ADComputerコマンドレットを使えば、AD内でコンピューターのパスワードが最後に変更された日付を確認できます。
Get-ADComputer -Identity mun-wks5431 -Properties PasswordLastSet
Test-ComputerSecureChannelおよびReset-ComputerMachinePasswordコマンドレットは、PowerShell 3.0以降で利用可能です。Windows 7 / Windows Server 2008 R2では、PowerShellのバージョンアップが必要になります。
さらに、コンピューターとDCの間にセキュアチャネルが確立されているかどうかは、次のコマンドでも確認できます。
nltest /sc_verify:woshub.com
信頼関係が正常に修復されていれば、以下の出力が確認できます。
Trusted DC Connection Status = 0 0x0 NERR_Success
Trust Verification Status = 0 0x0 NERR_Success
Netdomを使用したドメイン信頼関係の修復
Windows 7/2008 R2およびそれ以前のバージョンでPowerShell 3.0が利用できない環境では、Test-ComputerSecureChannelやReset-ComputerMachinePasswordコマンドレットを使用してコンピューターのパスワードをリセットすることができません。その場合は、netdom.exeツールを使用して、ドメインコントローラーとのセキュアチャネルを復元します。
NetdomはWindows Server 2008以降に標準搭載されており、RSAT(Remote Server Administration Tools)経由でクライアントコンピューターにもインストールできます。信頼関係を修復するには、ローカル管理者の資格情報でログオンし(ログオン画面で.\Administratorと入力)、次のコマンドを実行します。
Netdom resetpwd /Server:DomainController /UserD:Administrator /PasswordD:Password
The machine account password for the local machine has successfully reset.
(ローカルマシンのマシンアカウントパスワードが正常にリセットされました。)
- Server: 任意の利用可能なドメインコントローラーの名前
- UserD: ドメイン管理者権限を持つユーザー、または該当コンピューターアカウントを含むOUに対して委任された権限を持つユーザーの名前
- PasswordD: ユーザーのパスワード
実行例:
Netdom resetpwd /Server:mun-dc01 /UserD:jsmith /PasswordD:Pra$$w0rd
コマンド実行後、コンピューターの再起動は不要です。一度サインアウトし、ドメインアカウントで再度サインインするだけで完了します。
このように、コンピューターとドメイン間の信頼関係の修復は、適切なツールを使えば非常に簡単に行えます。
-
パソコンとAndroidスマホ間でファイルを転送する5つの方法【初心者向けガイド】
最近Androidスマートフォンに機種変更した方や、新しいパソコンを購入した方は、いずれファイルのやり取りが必要になる場面に直面するでしょう。「やり方がわからない…」と不安になる必要はありません。この記事では、パソコンとAndroidスマホの間でファイルを転送するための基本的な方法を、初心者にもわかりやすく解説します。スマホとパソコンの間でファイルを移動したい理由はさまざまです。大切なデータをバックアップとしてパソコンに保存しておきたい、Androidスマホで編集したい画像ファイルをパソコンから受け取りたい――そんなときに役立つのがファイル転送です。ここでは、最もよく使われている代表的な方法を
-
サイバースクワッティングとタイポスクワッティングの違いとは?知っておきたい危険性と対策
近年、Webサイトの開設に欠かせないドメイン名(URL)の需要は急速に高まっています。ビジネス用途、コンテンツ発信、ブログ運営など、目的はさまざまですが、ドメイン名はもはやビジネス戦略の一部となっています。検索結果で上位に表示されやすい覚えやすいドメイン名ほど価値が高く、転売価格も上がる傾向があります。しかし、こうした需要の高まりに目をつけ、インターネット上で人々から金銭を巻き上げようとする悪意ある者たちが現れました。 ここでは、ドメイン取得者を標的とする「サイバースクワッティング」と「タイポスクワッティング」の仕組みと、それぞれの違いについて詳しく解説します。 サイバースクワッティングとは?