[ホーム] - [Windows Server 2016 FAQ 一覧] - [invoke-method が実行できないときの確認事項]



作成日:2019/11/11
更新日:2019/12/08
対象:Windows Server 2016

invoke-method が実行できないときの確認事項




【目次】


Invoke-Commandの実行エラー


Powershellの Invoke-Command コマンドレットにより、リモートPCでコマンドを遠隔実行することが可能です。
しかしコマンドを実行しても以下のエラーで失敗する場合があります。


[servername] リモート サーバー servername への接続に失敗し、次のエラー メッセージが返されました: WinRM クライアントは要求を処理できません。認証スキームが Kerberos と異なる場合、またはクライアント コンピューターがドメインに参加していない場合は、 HTTPS
トランスポートを使用するか、または宛先コンピューターが TrustedHosts 構成設定に追加されている必要があります。 TrustedHosts を構成するには winrm.cmd を使用します。TrustedHosts 一覧に含まれるコンピューターは認証されていない可能性があります
。 winrm help config コマンドを実行すると、詳細が表示されます。詳細については、about_Remote_Troubleshooting のヘルプ トピックを参照してください。
+ CategoryInfo : OpenError: (servername:String) [], PSRemotingTransportException
+ FullyQualifiedErrorId : ServerNotTrusted,PSSessionStateBroken




Windows ドメイン環境の場合


ドメイン環境の場合は特に追加の設定は不要なようです。ただし実行ユーザが "domain admins" 権限を保有している必要があるようです。


非Windowsドメイン環境


Windows ドメイン環境でない場合は、"操作する側" , "操作される側"でそれぞれ事前に設定が必要です。

(1)操作される側
以下はすべて管理者権限でPowershellを開いて実行します。


PS C:\> Set-WSManQuickConfig -Force
WinRM は既にこのコンピューター上で要求を受信するように設定されています。
このコンピューター上でのリモート管理には、WinRM が既に設定されています。




PS C:\> Set-ExecutionPolicy RemoteSigned -Force



(2)操作する側


PS C:\> winrm quickconfig -force

WinRM はこのコンピューター上で要求を受信するように設定されていません。
次の変更を行う必要があります:

WinRM サービスを開始します。
WinRM サービスの種類を遅延自動開始に設定します。

WinRM は要求を受信するように更新されました。

WinRM サービスの種類を正しく変更できました。
WinRM サービスが開始されました。
WinRM は、管理用にこのコンピューターへのリモート アクセスを許可するように設定されていません。
次の変更を行う必要があります:

WinRM ファイアウォールの例外を有効にします。
ローカル ユーザーにリモートで管理権限を付与するよう LocalAccountTokenFilterPolicy を構成してください。

WinRM はリモート管理用に更新されました。

WinRM ファイアウォールの例外を有効にしました。
ローカル ユーザーにリモートで管理権限を付与するよう LocalAccountTokenFilterPolicy を構成しました。





PS C:\> Set-Item WSMan:\localhost\Client\TrustedHosts -Value *

WinRM セキュリティの構成。
このコマンドは WinRM クライアントの TrustedHosts の一覧を変更します。TrustedHosts
の一覧内にあるコンピューターは認証されない可能性があります。クライアントはこれらのコンピューターに資格情報を送信する可
能性があります。この一覧を変更しますか?
[Y] はい(Y) [N] いいえ(N) [S] 中断(S) [?] ヘルプ (既定値は "Y"): y




PS C:\> Set-ExecutionPolicy RemoteSigned -Force




(3)認証情報を送信する

PS C:\> Invoke-Command onprehp -Credential testdomain\administrator -ScriptBlock { dir c:\ }



認証情報を送信します。
相手がドメインコントローラの場合は <ドメイン名>\<ユーザ名>で指定します。
相手がメンバサーバあるいはワークグループサーバの場合は <ホスト名>\<ユーザ名>で指定します。

(*)操作する側がドメインに所属していない場合。

接続先の名前解決


Invoke-Commandで相手を IP アドレスではなくホスト名で指定している場合はホスト名が正しく名前解決されていることを確認します。


その他


その他以下を確認してください。

・Firewallで必要なポートが開かれているか。
・コマンドが存在するか。








(ご注意) 本サイト内の内容を使用して発生したいかなる時間的損害、金銭的損害あるいはいかなる損害に対して、いかなる人物も一切の責任を負いません。あくまでも個人の判断で使用してください。 本ページは独自に調査をしたアンオフィシャル(非公式)な内容です。内容に誤りがあったり、仕様変更により内容が変わる可能性があります。 本サイト内掲載されている情報は、著作権法により保護されています。いかなる場合でも権利者の許可なくコピー、配布することはできません。 このページはリンクフリーです。(このページへの直接リンクも可能です。)


Copyright(c) TOOLJP.COM 1999-2020

[Windows Server 2016 FAQ 一覧に戻る]