【PowerShell】リモート接続を行う方法(Enter-PSSession)

当ページのリンクには広告が含まれています。

こんにちは、Windows インフラエンジニア ばにゃです。

Enter-PSSessionコマンドによるリモート接続

本記事では、PowerShellを使用して別コンピューターにリモート接続する方法について解説します。

単純に別コンピューターにリモート接続を行うだけであれば、リモートデスクトップ接続がもっとも簡単でわかりやすい方法です。

リモートデスクトップ接続

リモートデスクトッププロトコルを利用して他のコンピューターに接続を行い、ネットワーク越しに他のコンピューターの操作および画面転送を行う技術

本記事では、リモートデスクトップ接続が許可されていない環境や、なんらかの問題でリモートデスクトップ接続に失敗してしまう環境でも、リモート接続を行なうことが可能な方法について解説します。

結論として、以下のように Enter-PSSession コマンドを実行することでリモート接続が可能となります。

Enter-PSSession -ComputerName <接続先コンピューターのホスト名 or IPアドレス> -Credential <接続に使用するアカウント>

Enter-PSSessionコマンドの詳細や、実行に失敗してしまう場合の対処方法について知りたい方は、以降に記載する内容も確認してください。

目次

前提となる環境

本記事では、以下のような環境を例として記載します。この環境で私自身が実機動作確認済みの手順となります。

環境
  • Windows Server 2019
  • Windows Server 2016
  • Windows 10

※Windows OS 全般

リモート接続方法

Enter-PSSessionコマンドで別コンピューターにリモート接続を行う方法です。

Enter-PSSessionコマンドによるリモート接続

接続元コンピューターよりPowerShellを起動し以下のコマンドを実行します。

Enter-PSSession -ComputerName <接続先コンピューターのホスト名 or IPアドレス> -Credential <接続に使用するアカウント>

-ComputerName で指定する接続先は、IPアドレス/ホスト名/FQDN名、いずれでも問題ありません。

コマンドの実行に成功すると以下のような認証画面が開くので -Credential で指定したユーザーアカウントのパスワードを入力します。

Enter-PSSession 認証画面

以下のようなメッセージが表示されれば、Enter-PSSessionでのリモート接続が完了です。

[接続先コンピューターのホスト名 or IPアドレス>]: PS C:\Users\<ユーザーアカウント名>\Documents>

リモート接続完了後のPowerShell上で実行するコマンドは、接続先コンピューターで実行されることになります。

リモート接続を終了する場合は以下のコマンドを実行します。

exit

Enter-PSSessionが失敗する場合の対処方法

Enter-PSSessionコマンド実行時にエラーが表示されて失敗する場合、以下の内容を参考に対処を行ってください。

Windows Remote Management (WS-Management) サービスの起動

Enter-PSSession エラー

Enter-PSSession : リモート サーバー xxx.xxx.xxx.xxx への接続に失敗し、次のエラー メッセージが返されました: WinRM は処理を完了できません。 指定したコンピューター名が有効であること、コンピューターにネットワーク経由でアクセスできること、およびWinRM サービスのファイアウォールの例外が有効になっていてこのコンピューターからアクセスできることを確認してください。既定では、パブリック プロファイルの WinRM ファイウォールの例外によって、同一のローカル サブネット内のリモート コンピューターへのアクセスは制限されます。詳細については、about_Remote_Troubleshooting のヘルプ トピックを参照してください。

Enter-PSSessionコマンド実行時に上記のようなメッセージが表示された場合、接続先コンピューターで以下のサービスが起動しているか確認します。

  • Windows Remote Management (WS-Management)
Windows Remote Management (WS-Management) サービス

サービスが起動していない場合、サービス起動後に再度Enter-PSSessionコマンドを実行します。

TrustedHosts構成設定の確認/追加

Enter-PSSession エラー

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

Enter-PSSessionコマンド実行時に上記のようなメッセージが表示された場合、接続元コンピューターのTrustedHosts構成設定を確認/追加します。

まず接続元コンピューターで以下のサービスを起動します。

  • Windows Remote Management (WS-Management)
Windows Remote Management (WS-Management) サービス

PowerShellを起動し以下のコマンドを実行して現在の TrustedHosts構成設定 を確認します。

Get-Item WSMan:\localhost\Client\TrustedHosts

初期状態では以下のように Value に値がない状態が表示されます。

   WSManConfig: Microsoft.WSMan.Management\WSMan::localhost\Client

Type            Name                           SourceOfValue   Value
----            ----                           -------------   -----
System.String   TrustedHosts

以下のコマンドを実行して、TrustedHosts構成設定 に接続先コンピューターを追加します。

Set-Item WSMan:\localhost\Client\TrustedHosts -Value <接続先コンピューターのホスト名 or IPアドレス>

-Value で指定する接続先は、IPアドレス/ホスト名/FQDN名、いずれでも問題ありません。

以下のような表示がされるため、Y を入力してEnterを押下します。

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

再度以下のコマンドを実行して、TrustedHosts構成設定 を確認します。

Get-Item WSMan:\localhost\Client\TrustedHosts

実行結果で、追加した接続先コンピューターの情報が表示されていれば問題ありません。

   WSManConfig: Microsoft.WSMan.Management\WSMan::localhost\Client

Type            Name                           SourceOfValue   Value
----            ----                           -------------   -----
System.String   TrustedHosts                                   xxx.xxx.xxx.xxx

上記手順完了後、再度 Enter-PSSession コマンドを実行します。

参考情報

Microsoft ドキュメント

Enter-PSSession コマンドについては、Microsoft の以下サイトも参考にしてください。

関連記事

関連書籍

PowerShell 6.0 まで対応している PowerShell 関連の書籍です。現状で 6.0 まで対応している数少ない書籍のため、PowerShell の学習におすすめです。

にほんブログ村 IT技術ブログへ
にほんブログ村

よかったらシェアしてね!

この記事を書いた人

ばにゃ ばにゃ システムエンジニア

国内大手SIer勤務、SE15年以上やっています。これまでの経験を元にIT技術情報やIT資格試験、たまに投資/資産形成やSE界隈の話について記事にしていきます。

コメント

コメントする

CAPTCHA


目次