知識マップ: PowerShell Remoting(WinRM)入門 ── 複数台のWindowsを一括管理する
記事「PowerShell Remoting(WinRM)入門 ── 複数台のWindowsを一括管理する」の主張を、概念と関係(エッジ)に分解した知識グラフの全体です。各関係には根拠・確認日・確度が付いています。
この記事は、WinRM(WS-Managementの実装)の上で動くPowerShell Remotingの仕組みと安全な使い方を扱う。Enable-PSRemotingはWinRMサービスの起動・リスナー作成・ファイアウォール例外・セッション構成の有効化を自動化し、ドメイン環境はKerberosによる相互認証でそのまま接続できる一方、ワークグループ環境はNTLM認証となり接続側のTrustedHostsへの登録と明示的な資格情報が必要になるとしている。Invoke-Commandによる一括実行の結果はメソッドを持たないデシリアライズ済みオブジェクトであり、操作はリモート側のScriptBlockで完結させるべきだとする。接続先からさらに別サーバーへ届かないsecond hop問題には、$using:による資格情報の明示的な受け渡しを最も手軽な対処とし、リソースベースのKerberos制約付き委任やJEA、リスクの大きいCredSSPを状況に応じた選択肢として位置づけている。
flowchart LR
accTitle: PowerShell Remoting(WinRM)の知識マップ
accDescr: PowerShell RemotingがWinRM上でInvoke-CommandやPSSessionを動かし、ドメインのKerberosとワークグループのNTLM/TrustedHostsで認証経路が分かれ、second hop問題に対して明示的な資格情報渡し・委任・JEA・CredSSPという複数の対処が並ぶ関係を示す図。
powershell_remoting["PowerShell Remoting"]
winrm["WinRM(Windows Remote Management)"]
invoke_command["Invoke-Command"]
enter_pssession["Enter-PSSession"]
new_pssession["New-PSSession"]
ssh_remoting["SSHベースのPowerShell Remoting"]
clixml_deserialization["CLIXMLシリアライズ/デシリアライズされたオブジェクト"]
test_wsman["Test-WSMan"]
kerberos["Kerberos"]
ntlm["NTLM"]
enable_psremoting["Enable-PSRemoting"]
windows_firewall["Windowsファイアウォール"]
get_netfirewallrule["Get-NetFirewallRule"]
trustedhosts["TrustedHosts"]
winrm_https_listener["WinRM HTTPS(5986)リスナー"]
mutual_authentication["相互認証"]
resource_based_kerberos_constrained_delegation["リソースベースのKerberos制約付き委任"]
second_hop_problem["second hop(ダブルホップ)問題"]
credssp["CredSSP"]
account_takeover["アカウント乗っ取り"]
jea["JEA(Just Enough Administration)"]
using_scope_modifier["$using:スコープ修飾子"]
powershell_remoting -.->|"利用する"| winrm
powershell_remoting -->|"利用する"| invoke_command
powershell_remoting -->|"利用する"| enter_pssession
powershell_remoting -->|"利用する"| new_pssession
powershell_remoting -.->|"利用する"| ssh_remoting
powershell_remoting -->|"利用する"| clixml_deserialization
powershell_remoting -.->|"で確認できる"| test_wsman
powershell_remoting -.->|"利用する"| kerberos
powershell_remoting -.->|"利用する"| ntlm
enable_psremoting -->|"自動化する"| winrm
windows_firewall -->|"で構成できる"| enable_psremoting
windows_firewall -->|"で確認できる"| get_netfirewallrule
winrm -.->|"で構成できる"| trustedhosts
winrm -->|"で構成できる"| winrm_https_listener
ntlm -.->|"前提とする"| trustedhosts
kerberos -->|"実装を担う"| mutual_authentication
resource_based_kerberos_constrained_delegation -.->|"軽減する"| second_hop_problem
credssp -.->|"用いるのは非推奨"| second_hop_problem
credssp -.->|"原因になり得る"| account_takeover
jea -.->|"推奨される対応"| second_hop_problem
using_scope_modifier -.->|"推奨される対応"| second_hop_problem
invoke_command -.->|"利用する"| using_scope_modifier
new_pssession -.->|"推奨される対応"| invoke_command
ssh_remoting -->|"両立しない"| jea
概念間の関係(全24件)
図と同じ関係を文章でも列挙します。表示している文と機械可読な意味データ(RDFa)は同じ要素に載っています。確度が「確立した関係」のものは直接の関係として、「条件付きの関係」のものは成立条件つきの言明(rdf:Statement)として表現しています。
- PowerShell RemotingはWinRM(Windows Remote Management)を利用します。
- PowerShell RemotingはInvoke-Commandを利用します。
- PowerShell RemotingはEnter-PSSessionを利用します。
- PowerShell RemotingはNew-PSSessionを利用します。
- PowerShell RemotingはSSHベースのPowerShell Remotingを利用します。
- PowerShell RemotingはCLIXMLシリアライズ/デシリアライズされたオブジェクトを利用します。
- PowerShell RemotingはTest-WSManで確認できます。
- PowerShell RemotingはKerberosを利用します。
- PowerShell RemotingはNTLMを利用します。
- Enable-PSRemotingはWinRM(Windows Remote Management)を自動化します。
- WindowsファイアウォールはEnable-PSRemotingで構成できます。
- WindowsファイアウォールはGet-NetFirewallRuleで確認できます。
- WinRM(Windows Remote Management)はTrustedHostsで構成できます。
- WinRM(Windows Remote Management)はWinRM HTTPS(5986)リスナーで構成できます。
- NTLMはTrustedHostsを前提とします。
- Kerberosは相互認証の実装を担います。
- リソースベースのKerberos制約付き委任はsecond hop(ダブルホップ)問題を軽減します。
- CredSSPをsecond hop(ダブルホップ)問題に用いることは推奨されません。
- CredSSPはアカウント乗っ取りの原因になることがあります。
- JEA(Just Enough Administration)はsecond hop(ダブルホップ)問題に対する本記事の推奨です。
- $using:スコープ修飾子はsecond hop(ダブルホップ)問題に対する本記事の推奨です。
- Invoke-Commandは$using:スコープ修飾子を利用します。
- New-PSSessionはInvoke-Commandに対する本記事の推奨です。
- SSHベースのPowerShell RemotingはJEA(Just Enough Administration)と両立しません。
主要概念の定義
機械可読データ
このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。