次の方法で共有


RDP を使用して Azure VM に接続するときの認証エラーのトラブルシューティングについて説明します。

適用対象: ✔️ Windows VM

この記事は、Azure 仮想マシン (VM) への接続にリモート デスクトップ プロトコル (RDP) 接続を使用する場合に、発生した認証エラーのトラブルシューティングを行うのに役立ちます。

Note

この記事は役に立ちましたか? あなたの入力は私たちにとって重要です。 このページの Feedback ボタンを使用して、この記事がどれだけうまく機能したか、または改善方法をお知らせください。

現象

ようこそ画面が表示された、オペレーティング システムが実行中であることを示している Azure VM のスクリーンショットをキャプチャします。 ただし、リモート デスクトップ接続を使用して VM に接続しようとすると、次のいずれかのエラー メッセージが表示されます。

  • 認証エラーが発生しました。 ローカル セキュリティ機関にアクセスできません。
  • 接続しようとしているリモート コンピューターにはネットワーク レベル認証 (NLA) が必要ですが、Windows ドメイン コントローラーに接続して NLA を実行することはできません。 リモート コンピューターの管理者であれば、[システムのプロパティ] ダイアログ ボックスの [リモート] タブにあるオプションを使用して、NLA を無効にすることができます。
  • このコンピューターはリモート コンピューターに接続できません。 接続を再試行してください。問題が解決しない場合は、リモート コンピューターの所有者またはネットワーク管理者にお問い合わせください。

原因

NLA が VM への RDP アクセスをブロックする理由は複数あります。

  • VM とドメイン コントローラー (DC) の通信ができません。 この問題があると、RDP セッションからドメイン資格情報を使用して VM にアクセスすることができません。 ただし、その場合もローカル管理者の資格情報を使用してログオンすることはできます。 この問題は、次の状況で発生する可能性があります。
    • VM と DC の間の Active Directory セキュリティ チャネルが破損している。
    • VM 上にアカウントのパスワードの古いコピーが残っており、DC 上にそれよりも新しいコピーがある。
    • この VM の接続先 DC が正常な状態ではない。
  • VM の暗号化レベルは、クライアント コンピューターで使用される暗号化レベルよりも高くなります。
  • TLS 1.0、1.1、または 1.2 (サーバー) プロトコルが VM 上で無効になっています。 VM が、ドメイン資格情報を使用したログオンを無効にするように設定されていて、ローカル セキュリティ機関 (LSA) が正しく設定されていません。
  • VM は Federal Information Processing Standards (FIPS) 準拠アルゴリズムによる接続のみを受け付けるように設定されています。 これは通常、Active Directory ポリシーを使用して行われます。 これはまれな構成ですが、FIPS はリモート デスクトップ接続のみに適用できます。

トラブルシューティングを行う前に

バックアップ スナップショットの作成

バックアップ スナップショットを作成するには、「ディスクのスナップショットの作成」の手順に従います。

VM にリモート接続する

VM にリモート接続するには、「How to use remote tools to troubleshoot Azure VM issues」(リモート ツールを使用して Azure VM の問題をトラブルシューティングする) で説明されているいずれかの方法を使用します。

グループ ポリシー クライアント サービス

これがドメインに参加している VM である場合は、まず、Active Directory ポリシーによって変更が上書きされないように、グループ ポリシー クライアント サービスを停止します。 そのためには、次のコマンドを実行します。

REM Disable the member server to retrieve the latest GPO from the domain upon start
REG add "HKLM\SYSTEM\CurrentControlSet\Services\gpsvc" /v Start /t REG_DWORD /d 4 /f

問題を解決した後、ドメインから最新の GPO を取得するために、ドメインに接続するこの VM の機能を復元します。 これを行うには、次のコマンドを実行します。

sc config gpsvc start= auto
sc start gpsvc

gpupdate /force

変更が元に戻された場合、それは Active Directory ポリシーが問題の原因であることを意味します。

回避策

VM に接続して原因を解決するための回避策として、NLA を一時的に無効にすることができます。 NLA を無効にするには、次のコマンドを使用するか、Run コマンドDisableNLA スクリプトを使用してください。

REM Disable the Network Level Authentication
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v UserAuthentication /t REG_DWORD /d 0

次に、VM を再起動し、トラブルシューティング セクションに進みます。

問題が解決したら、次のコマンドを実行して、VM を再起動して、NLA を再度有効にします。

REG add "HKLM\SYSTEM\CurrentControlSet\Control\Lsa" /v disabledomaincreds /t REG_DWORD /d 0 /f
REG add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v UserAuthentication /t REG_DWORD /d 1 /f

トラブルシューティング

  1. ドメイン参加済み VM のトラブルシューティングを行います。
  2. スタンドアロン VM のトラブルシューティングを行います。

ドメイン参加済み VM のトラブルシューティング

この問題をトラブルシューティングするには:

  1. VM が DC に接続できるかどうかを確認します。
  2. DC の正常性を確認します。

Note

DC の正常性をテストするには、同じ VNET、サブネット内にあり、同じログオン サーバーを使用する別の VM を使用できます。

リモートで VM に接続する」セクションの手順に従って、コンソール、リモート CMD、またはリモート PowerShell を使用して、問題のある VM に接続します。

  1. VM が接続しようとしている DC を確認します。コンソールで次のコマンドを実行します。

    set | find /i "LOGONSERVER"
    
  2. VM と DC の間のセキュリティで保護されたチャネルの正常性をテストします。 これを行うには、管理者特権の PowerShell インスタンスで Test-ComputerSecureChannel コマンドを実行します。 このコマンドは、セキュリティで保護されたチャネルが有効かどうかを示す True または False を返します。

    Test-ComputerSecureChannel -verbose
    

    チャネルが破損している場合は、次のコマンドを実行して修復します。

    Test-ComputerSecureChannel -repair
    
  3. VM と DC 上で、Active Directory コンピューター アカウントのパスワードが更新されていることを確認します。

    Reset-ComputerMachinePassword -Server "<COMPUTERNAME>" -Credential <DOMAIN CREDENTIAL WITH DOMAIN ADMIN LEVEL>
    

DC と VM の間の通信に異常がないにもかかわらず、DC が完全に機能していないために RDP セッションを開くことができない場合は、DC の再起動を試してみてください。

上記のコマンドによってドメインとの通信の問題が解決しなかった場合は、この VM をドメインに再度参加させることをお勧めします。 これを行うには、次の手順を実行します。

  1. 次のコンテンツを使用して Unjoin.ps1 という名前のスクリプトを作成し、Azure portal でスクリプトを Custom スクリプト拡張機能 としてデプロイします。

    cmd /c "netdom remove <<MachineName>> /domain:<<DomainName>> /userD:<<DomainAdminhere>> /passwordD:<<PasswordHere>> /reboot:10 /Force"
    

    このスクリプトは、ドメインから VM を強制的に削除し、10 秒後に VM を再起動します。 次に、ドメイン側の Computer オブジェクトをクリーンアップする必要があります。

  2. クリーンアップが完了したら、この VM をドメインに再参加させます。 これを行うには、次の内容を使用して JoinDomain.ps1 という名前のスクリプトを作成し、Azure portal でカスタム スクリプト拡張機能としてスクリプトをデプロイします。

    cmd /c "netdom join <<MachineName>> /domain:<<DomainName>> /userD:<<DomainAdminhere>> /passwordD:<<PasswordHere>> /reboot:10"
    

Note

これにより、指定した資格情報を使用して VM をドメインに参加させます。

Active Directory チャネルが正常であり、コンピューターのパスワードが更新されていて、ドメイン コントローラーが想定どおりに動作している場合は、次の手順を行います。

問題が解決しない場合は、ドメインの資格情報が無効になっていないかどうかを確認します。 これを行うには、管理者特権でコマンド プロンプト ウィンドウを開き、次のコマンドを実行します。このコマンドでは、VM が、VM にログオンするためのドメイン アカウントを無効にするように設定されているかどうかを確認します。

REG query "HKLM\SYSTEM\CurrentControlSet\Control\Lsa" /v disabledomaincreds

キーが 1 に設定されている場合は、サーバーがドメイン資格情報を許可するように設定されていることを意味します。 このキーを 0 に変更します。

スタンドアロン VM のトラブルシューティング

MinEncryptionLevel の確認

CMD インスタンスで、次のコマンドを実行して、 MinEncryptionLevel レジストリ値を照会します。

reg query "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v MinEncryptionLevel

レジストリ値に基づいて、以下の手順に従います。

  • 4 (FIPS): FIP 準拠アルゴリズムの接続を確認します。

  • 3 (128 ビット暗号化): 次のコマンドを実行して重大度を 2 に設定します。

    reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v MinEncryptionLevel /t REG_DWORD /d 2 /f
    
  • 2 (クライアントによって指示された可能な最大の暗号化): 次のコマンドを実行して暗号化を最小値の 1 に設定します。

    reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v MinEncryptionLevel /t REG_DWORD /d 1 /f
    

レジストリに対する変更が反映されるように、VM を再起動します。

TLS のバージョン

システムに応じて、RDP では TLS 1.0、1.1、1.2 (サーバー) のいずれかのプロトコルが使用されます。 これらのプロトコルが VM 上でどのように設定されているかに関するクエリを実行するには、CMD インスタンスを開き、次のコマンドを実行します。

reg query "HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server" /v Enabled
reg query "HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server" /v Enabled
reg query "HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server" /v Enabled

返された値が全部 1 でない限り、プロトコルは無効になっています。 これらのプロトコルを有効にするには、次のコマンドを実行します。

reg add "HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server" /v Enabled /t REG_DWORD /d 1 /f
reg add "HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server" /v Enabled /t REG_DWORD /d 1 /f
reg add "HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server" /v Enabled /t REG_DWORD /d 1 /f

その他のプロトコルのバージョンでは、次のコマンドを実行できます。

reg query "HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS x.x\Server" /v Enabled
reg query "HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS x.x\Server" /v Enabled

Note

SSH/TLS バージョン x.x は、SCHANNEL エラーに関するゲスト OS ログから取得します。

FIP 準拠アルゴリズムの接続を確認する

リモート デスクトップで FIPS 準拠アルゴリズムの接続のみを使用するように指定できます。 これはレジストリ キーを使用して設定できます。 これを行うには、管理者特権でコマンド プロンプト ウィンドウを開きし、次のキーのクエリを実行します。

reg query "HKLM\SYSTEM\CurrentControlSet\Control\Lsa\FIPSAlgorithmPolicy" /v Enabled

コマンドから 1 が返された場合は、レジストリ値を 0 に変更します。

reg query "HKLM\SYSTEM\CurrentControlSet\Control\Lsa\FIPSAlgorithmPolicy" /v Enabled /t REG_DWORD /d 0

VM 上の現在の MinEncryptionLevel を確認します。

reg query "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v MinEncryptionLevel

コマンドから 4 が返された場合は、レジストリ値を 2 に変更します。

reg query "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v MinEncryptionLevel /t REG_DWORD /d 2

レジストリに対する変更が反映されるように、VM を再起動します。

次のステップ

お問い合わせはこちらから

質問がある場合やヘルプが必要な場合は、サポート要求を作成するか、Azure コミュニティ サポートにお問い合わせください。 Azure フィードバック コミュニティに製品フィードバックを送信することもできます。