ドメインユーザーとしてログオンしようとすると「このワークステーションとプライマリドメインとの信頼関係に失敗しました。」と出てログインできない場合があります。
この現象はセキュアチャネルが破損している場合に見られます。
この記事ではこういった破損したセキュアチャネルを修復する手順について解説します。
※そもそもセキュアチャネルが何かを知りたい人はこのあたりを参照してください。
セキュアチャネルの状態を確認する
ログイン時に上記画像のメッセージが出ていれば基本的にセキュアチャネルが破損していますが、正確に状態を把握するには「nltest /sc_verify:ドメイン名」コマンドを実行します。
↓正常な場合の実行結果
PS > nltest /sc_verify:example.com フラグ: b0 HAS_IP HAS_TIMESERV 信頼された DC 名 \\DC1.example.com 信頼された DC 接続状態 Status = 0 0x0 NERR_Success 信頼の確認 Status = 0 0x0 NERR_Success コマンドは正常に完了しました
↓セキュアチャネルが破損している場合の実行結果
PS > nltest /sc_verify:example.com フラグ: 80 信頼された DC 名 信頼された DC 接続状態 Status = 5 0x5 ERROR_ACCESS_DENIED 信頼の確認 Status = 5 0x5 ERROR_ACCESS_DENIED コマンドは正常に完了しました
ではどうするかというと、一旦ドメイン抜けて再参加というのも一つの解ではありますが、
「一時的でもGPOが外れたら困る」とか
「ドメイン参加は管理者しかできないようにしてる」
「ドメインを抜けるとどこに影響するか分からず不安」
といった場合もあると思うので、PowerShellのTest-ComputerSecureChannelコマンドで修復することをお勧めします。以下手順。
セキュアチャネルを修復する
PowerShell 3.0以降の環境が必要ですが、Windows 7の場合はデフォルトのバージョンが2.0なので、次のサイトからWMF3.0をダウンロードおよびインストールします。
Windows Management Framework 3.0
http://www.microsoft.com/en-us/download/details.aspx?id=34595
WMF3.0のインストールが完了したら、$PSVersionTableコマンドでPowerShellのバージョンが3.0になっていることを確認します。
PS > $PSVersionTable.PSVersion Major Minor Build Revision ----- ----- ----- -------- 3 0 -1 -1
準備が整ったら実際に修復します。
「Test-ComputerSecureChannel -credential ドメイン名\ドメイン管理者ユーザー -repair」をPowerShellで実行します。
Test-ComputerSecureChannel -credential example.com\administrator -repair
すると指定したユーザーで認証を求める画面が表示されるので、パスワードを入力してあげます。
認証が通り修復が完了すれば、PowerShellの画面に「True」が返ってきます。
前述のnltestコマンドでセキュアチャネルが正常になっていることを確認してみましょう。