WinRM 接続の有効化の方法

ksocket にて Windows 機の詳細情報を取得するためには WinRM 接続を許可する必要があります。 これを有効化するには以下の手順を対象のWindows PowerShellコンソール(管理者権限)で実行してください。

# ExecutionPolicyがRestrictedだった場合、RemoteSignedに変更する
> Get-ExecutionPolicy
Restricted
> Set-ExecutionPolicy RemoteSigned

# WinRMサービスを実行できるようにする
> winrm qc

# Basic認証で接続する場合は、Basic認証での接続を許可する
> winrm set winrm/config/service/auth '@{Basic="true"}'
> winrm set winrm/config/service '@{AllowUnencrypted="true"}'

# ユーザに対して読み取り権限を付与する
# 以下コマンド実行によって表示されたウィンドウで、
# 該当するユーザに読み取り権限と実行権限を許可して適用
> winrm configSDDL default

# WMIリソースのアクセス権限設定
# 以下コマンド実行によって表示されたウィンドウで、
# [操作]>[プロパティ]>[セキュリティ] を選択
# - Root\CIMV2 から[セキュリティ]を選択し、
#   該当するユーザにメソッドの実行とリモートの有効化を許可して適用
# - Root\StandardCimv2 から[セキュリティ]を選択し、
#   該当するユーザにメソッドの実行とリモートの有効化を許可して適用
> wmimgmt.msc

以下の記事で、上記と同様の設定を行えるスクリプトをご紹介しています。

WinRM 接続を簡単に有効化するスクリプトの紹介 - Kompira cloud Blog

ドメインアカウントを使用してアクセスする場合の注意

ドメインアカウントを使用する場合、Basic認証によるアクセスは行うことができません。
この場合はNTLM認証でアクセスするようにksocketのcredentialファイルを設定してください。