リモート接続の認証

Windows Remote Management では、いくつかの標準的な認証方法とメッセージ暗号化をサポートすることで、コンピューター間の通信のセキュリティが維持されます。

既定のグループ アクセス

セットアップ中に、WinRM によってローカル グループ WinRMRemoteWMIUsers__が作成されます。 その後、WinRM は、ローカル管理グループまたは WinRMRemoteWMIUsers__ グループのメンバーではないすべてのユーザーにリモート アクセスを制限します。 コマンド プロンプトで「net localgroup WinRMRemoteWMIUsers__ /add domain\<username>」と入力すると、ローカル ユーザー、ドメイン ユーザー、またはドメイン> グループをWinRMRemoteWMIUsers__に追加<できます。 必要に応じて、グループ ポリシーを使用してグループにユーザーを追加できます。

既定の認証設定

既定の資格情報、ユーザー名、パスワードは、スクリプトを実行するログオン ユーザー アカウントの資格情報です。

リモート コンピューター上の別のアカウントに変更するには

  1. ConnectionOptions オブジェクトまたは IWSManConnectionOptions オブジェクトで資格情報を指定し、CreateSession 呼び出しに指定します。
  2. CreateSession 呼び出しの flags パラメーターに WSManFlagCredUserNamePassword を設定します。

次の一覧には、スクリプトまたはアプリケーションが既定の資格情報で実行されるときに発生する処理の一覧が含まれています。

  • Kerberos は、クライアントがドメイン内にあり、リモートの宛先文字列が localhost、127.0.0.1、または [::1] のいずれかではない場合の既定の認証方法です。
  • ネゴシエート は、クライアントがドメイン内にない場合の既定のメソッドですが、リモートの宛先文字列は、localhost、127.0.0.1、または [::1] のいずれかです。

ConnectionOptions オブジェクトを使用して明示的な資格情報を指定する場合は、Negotiate が既定の方法です。 ネゴシエート認証は、コンピューターがドメインかワークグループかに応じて、進行中の認証方法が Kerberos か NTLM かを決定します。 ローカル アカウントを使用してリモート ターゲット コンピューターに接続する場合は、アカウントの前にコンピューター名を付ける必要があります。 たとえば、myComputer\myUsername です。

Negotiate、Digest、または Basic 認証を指定し、 ConnectionOptions オブジェクトを指定できない場合は、明示的な資格情報が必要であることを示すエラーが表示されます。 HTTPS がトランスポートではない場合は、信頼されたホスト コンピューターの一覧でターゲット リモート コンピューターを構成する必要があります。

既定の構成設定で有効になっている認証の種類の詳細については、「 Windows リモート管理のインストールと構成」を参照してください。

基本認証

WSMan.CreateSession の呼び出しで基本認証を明示的に確立するには、flags パラメーターに WSManFlagUseBasic フラグと WSManFlagCredUserNamePassword フラグを設定します。 基本認証は、WinRM クライアントと WinRM サーバーの両方の既定の構成設定で無効になっています。

ダイジェスト認証

WSMan.CreateSession の呼び出しでダイジェスト認証を明示的に確立するには、flags パラメーターに WSManFlagUseDigest フラグを設定します。 ダイジェストはサポートされていません。 WinRM サーバー コンポーネント用に構成することはできません。

ネゴシエート認証

WSMan.CreateSession の呼び出しでネゴシエート認証 (Windows 統合認証とも呼ばれます) を明示的に確立するには、flags パラメーターに WSManFlagUseNegotiate フラグを設定します。

ユーザー アカウント制御 (UAC) は、WinRM サービスへのアクセスに影響します。 ワークグループでネゴシエート認証が使用されている場合、組み込みの管理者アカウントのみがサービスにアクセスできます。 Administrators グループ内のすべてのアカウントがサービスにアクセスできるようにするには、次のレジストリ値を設定します。

Hkey_local_machine\ソフトウェア\マイクロソフト\Windows\CurrentVersion\ポリシー\システム\LocalAccountTokenFilterPolicy = 1

Kerberos 認証

WSMan.CreateSession の呼び出しで Kerberos 認証を明示的に確立するには、flags パラメーターに WSManFlagUseKerberos フラグを設定します。 クライアント コンピューターとサーバー コンピューターの両方をドメインに参加させる必要があります。 認証方法として Kerberos を使用する場合、 WSMan.CreateSession または IWSMan::CreateSession の呼び出しで IP アドレスを使用することはできません。

クライアント証明書ベースの認証

WSMan.CreateSession の呼び出しでクライアント証明書ベースの認証を確立するには、flags パラメーターに WSManFlagUseClientCertificate フラグを設定します。

まず、Winrm コマンド ライン ツールを使用して、クライアントとサービスの両方で証明書認証を有効にする必要があります。 詳細については、「 認証オプションの有効化」を参照してください。 WinRM サーバー コンピューターの CertMapping テーブルにエントリを作成する必要もあります。 これにより、1 つ以上の証明書とローカル アカウント間のマッピングが確立されます。 認証と承認に証明書が使用されると、対応するローカル アカウントが WinRM サービスによって実行される操作に使用されます。

マッピングは、特定のリソース URI に対して作成できます。 CertMapping テーブル エントリの作成方法など、詳細については、コマンド プロンプトで 「winrm help certmapping 」と入力します。

Note

このコンテキストで WinRM で使用できる最大サイズ証明書は 16 KB です。

 

認証オプションの有効化または無効化

システムのインストール時の既定の認証オプションは Kerberos です。 詳細については、「 Windows リモート管理のインストールと構成」を参照してください。

スクリプトまたはアプリケーションで、有効になっていない特定の認証方法が必要な場合は、この種類の認証を有効にするように構成を変更する必要があります。 この変更は、Winrm コマンド ライン ツールを使用するか、Windows リモート管理 グループ ポリシー オブジェクトのグループ ポリシーを使用して行うことができます。 特定の認証方法を無効にすることもできます。

Winrm ツールを使用して認証を有効または無効にするには

  1. WinRM クライアントの構成を設定するには、 Winrm Set コマンドを使用し、クライアントを指定します。 たとえば、次のコマンドは、クライアントのダイジェスト認証を無効にします。

    winrm set winrm/config/client/auth @{Digest="false"}

  2. WinRM サーバーの構成を設定するには、 Winrm Set コマンドを使用し、サービスを指定します。 たとえば、次のコマンドは、サービスの Kerberos 認証を有効にします。

    winrm set winrm/config/service/auth @{Kerberos="true"}

Windows リモート管理について

WSMan.CreateSession

Windows リモート管理の使用