リモートコンピューターでPowerShellコマンドを実行する方法
PowerShellリモート処理を使用すると、リモートのWindowsシステム上でPowerShellコマンドを実行したり、完全なPowerShellセッションにアクセスしたりできます。他のオペレーティングシステム上のリモート端末にアクセスするためのSSHに似ています.
PowerShellはデフォルトでロックダウンされているため、使用する前にPowerShellリモート処理を有効にする必要があります。この設定プロセスは、ドメインではなくワークグループを使用している場合(たとえば、ホームネットワークで)、もう少し複雑です。.
リモートアクセスしたいPCでPowerShellリモート処理を有効にする
最初のステップは、リモート接続したいPC上でPowerShellリモート処理を有効にすることです。そのPCでは、管理者権限でPowerShellを開く必要があります。.
Windows 10では、Windows + Xを押して、パワーユーザーメニューから[PowerShell(管理者)]を選択します。.
Windows 7または8の場合は、[スタート]ボタンをクリックし、「powershell」と入力します。結果を右クリックして[管理者として実行]を選択します。
PowerShellウィンドウで、次のコマンドレット(コマンドのPowerShellの名前)を入力して、Enterキーを押します。
PSRリモーティングを有効にする - 強制
このコマンドは、WinRMサービスを開始し、システムで自動的に開始されるように設定して、着信接続を許可するファイアウォールルールを作成します。の -力
コマンドレットの一部は、PowerShellに、各手順を促すことなくこれらの操作を実行するように指示します。.
あなたのPCがドメインの一部であるなら、それはあなたがしなければならないすべてのセットアップです。あなたはあなたの接続をテストする前にスキップすることができます。あなたのコンピュータがワークグループの一部である場合 - それらはおそらくホームネットワークまたはスモールビジネスネットワーク上にあります - あなたはやるべきもう少しセットアップ作業があります.
注:ドメイン環境でリモート処理を設定することに成功したかどうかは、ネットワークの設定によって異なります。リモート処理は、管理者によって設定されたグループポリシーによって自動的に無効にされるか、さらには有効にされることがあります。また、PowerShellを管理者として実行するために必要な権限がない可能性もあります。いつものように、このようなことを試す前にあなたの管理者に相談してください。彼らは練習を許可しないために正当な理由があるかもしれません、または彼らはあなたのためにそれを準備する気があるかもしれません.
ワークグループを設定する
コンピュータがドメインに属していない場合は、設定を行うためにさらにいくつかの手順を実行する必要があります。前のセクションで説明したように、接続先のPCで既にリモート処理が有効になっているはずです。.
注:PowerShellリモート処理をワークグループ環境で機能させるには、ネットワークをパブリックではなくプライベートのネットワークとして構成する必要があります。違いについての詳細、そしてすでにパブリックネットワークを設定している場合にプライベートネットワークに変更する方法については、プライベートネットワークとパブリックネットワークに関するガイドをご覧ください。.
次に、接続したい両方のPCでTrustedHosts設定を構成する必要があります。 そして あなたが接続しようとしているPC(複数可)、つまりコンピュータはお互いを信頼するでしょう。これを行うには、2つの方法があります。.
ホームネットワークに接続してリモートPCに接続したい場合は、PowerShellで次のコマンドレットを入力できます(これも管理者として実行する必要があります)。.
設定項目wsman:\ localhost \ client \ trustedhosts *
アスタリスクは、すべてのPCにとってワイルドカード記号です。接続可能なコンピュータを制限したい場合は、アスタリスクをIPアドレスのコンマ区切りリストまたは承認済みPCのコンピュータ名に置き換えることができます。.
そのコマンドを実行した後は、新しい設定を有効にするためにWinRMサービスを再起動する必要があります。次のコマンドレットを入力して、Enterキーを押します。
再起動サービスWinRM
そして覚えておいてください、あなたはあなたが接続したいと思うどんなPCでもあなたが接続したいと思うPCの上でそれらの2つのコマンドレットを実行する必要があるでしょう.
接続をテストする
PCをPowerShell Remoting用にセットアップしたので、接続をテストします。リモートシステムにアクセスするPCで、次のコマンドレットをPowerShellに入力し(「COMPUTER」をリモートPCの名前またはIPアドレスに置き換えます)、Enterキーを押します。
Test-WsManコンピューター
この簡単なコマンドは、WinRMサービスがリモートPC上で実行されているかどうかをテストします。正常に完了すると、ウィンドウにリモートコンピュータのWinRMサービスに関する情報が表示され、WinRMが有効になっていてPCが通信できることを示します。コマンドが失敗すると、代わりにエラーメッセージが表示されます。.
単一のリモートコマンドを実行する
リモートシステムでコマンドを実行するには、次のコマンドを使用します。 呼び出しコマンド
次の構文を使用したコマンドレット
起動コマンド-ComputerNameコンピュータ-ScriptBlock コマンド -credential USERNAME
「COMPUTER」はリモートPCの名前またはIPアドレスを表します。 「COMMAND」は実行したいコマンドです。 「USERNAME」は、リモートコンピュータと同じようにコマンドを実行するユーザ名です。ユーザー名のパスワードを入力するように求められます.
これが一例です。 IPアドレスが10.0.0.22のリモートコンピュータのC:\ディレクトリの内容を表示したいです。ユーザ名“ wjgle”を使いたいので、次のコマンドを使います。
Invoke-Command -ComputerName 10.0.0.22 -ScriptBlock Get-ChildItem C:\ -credential wjgle
リモートセッションを開始する
Invoke-CommandコマンドレットとリモートIPアドレスを繰り返し入力する代わりに、リモートPCで実行するコマンドレットがいくつかある場合は、代わりにリモートセッションを開始できます。次のコマンドレットを入力してEnterキーを押すだけです。
Enter-PSSession -ComputerName COMPUTER -Credential USER
繰り返しますが、「COMPUTER」をリモートPCの名前またはIPアドレスに置き換え、「USER」を起動したいユーザーアカウントの名前に置き換えます。.
プロンプトが変わり、接続先のリモートコンピュータが表示されます。また、リモートシステムでPowerShellコマンドレットをいくつでも直接実行できます。.