ja-JP/about_Remote.help.txt
|
TOPIC about_Remote 簡単な説明 PowerShell でリモートコマンドを実行する方法について説明します。 詳細な説明 一時的または永続的な接続を使って、1 台または複数台のリモートコンピュー ターでリモートコマンドを実行できます。また、1 台のリモートコンピューター と対話型セッションを開始することもできます。 メモ: PowerShell リモート処理を使うには、ローカルコンピューターとリモート コンピューターの両方をリモート処理用に構成する必要があります。詳しくは、 about_Remote_Requirements を参照してください。 対話型セッションを開始する方法 リモートコマンドを実行する最も簡単な方法は、リモートコンピューターとの対 話型セッションを開始することです。 セッションを開始すると、入力したコマンドはリモートコンピューターで直接入 力したかのようにリモートコンピューターで実行されます。各対話型セッション で接続できるのは 1 台のコンピューターだけです。 対話型セッションを開始するには、Enter-PSSession コマンドレットを使います。 次のコマンドは、Server01 コンピューターとの対話型セッションを開始します。 Enter-PSSession Server01 PowerShell は、コマンドプロンプトにリモートコンピューターの名前を含めるよ うに変更します。 Server01\PS> これで、Server01 コンピューターでコマンドを入力できます。 対話型セッションを終了するには、次のように入力します。 Exit-PSSession 詳しくは、Enter-PSSession を参照してください。 リモートコマンドを実行する方法 リモートコンピューターで他のコマンドを実行するには、Invoke-Command コマン ドレットを使います。 1 つのコマンド、または互いに関連しない少数のコマンドを実行するには、 Invoke-Command の ComputerName パラメーターでリモートコンピューターを指定 します。ScriptBlock パラメーターでコマンドを指定します。 たとえば、次のコマンドは Server01 コンピューターで Get-Culture コマンドを 実行します。 Invoke-Command -ComputerName Server01 -ScriptBlock {Get-Culture} 永続的な接続を作成する方法 Invoke-Command コマンドレットの ComputerName パラメーターを使うと、 PowerShell はリモートコンピューターへの一時的な接続を確立します。コマンド が完了すると、その接続は閉じられます。この一時セッションで定義された変数や 関数は失われます。 リモートコンピューターへの永続的な接続を作成するには、New-PSSession コマ ンドレットを使います。たとえば、次のコマンドは Server01 と Server02 のコン ピューターに PSSession を作成し、その PSSession を $s 変数に保存します。 $s = New-PSSession -ComputerName Server01, Server02 PSSession でコマンドを実行する方法 PSSession を使うと、関数、エイリアス、変数の値などのデータを共有する一連 のリモートコマンドを実行できます。PSSession でコマンドを実行するには、 Invoke-Command コマンドレットの Session パラメーターを使います。 たとえば、次のコマンドは Invoke-Command コマンドレットを使い、Server01 と Server02 のコンピューターの PSSession で Get-Process コマンドを実行します。 このコマンドは、各 PSSession の $p 変数にプロセスを保存します。 Invoke-Command -Session $s -ScriptBlock {$p = Get-Process} PSSession は永続的な接続を使うため、同じ PSSession で $p 変数を使う別のコ マンドを実行できます。次のコマンドは、$p に保存されたプロセスの数を数えま す。 Invoke-Command -Session $s -ScriptBlock {$p.Count} 複数のコンピューターでリモートコマンドを実行する方法 複数のコンピューターでリモートコマンドを実行するには、Invoke-Command の ComputerName パラメーターの値にすべてのコンピューター名を入力します。名前 はコンマで区切ります。 たとえば、次のコマンドは 3 台のコンピューターで Get-Culture コマンドを実行 します。 Invoke-Command -ComputerName S1, S2, S3 -ScriptBlock {Get-Culture} 複数の PSSession でコマンドを実行することもできます。次のコマンドは Server01、Server02、Server03 のコンピューターに PSSession を作成し、各 PSSession で Get-Culture コマンドを実行します。 $s = New-PSSession -ComputerName S1, S2, S3 Invoke-Command -Session $s -ScriptBlock {Get-Culture} コンピューターの一覧にローカルコンピューターを含めるには、ローカルコン ピューターの名前を入力するか、ドット (.) を入力するか、localhost と入力し ます。 Invoke-Command -ComputerName S1, S2, S3, localhost -ScriptBlock {Get-Culture} リモートコンピューターでスクリプトを実行する方法 リモートコンピューターでローカルスクリプトを実行するには、Invoke-Command の FilePath パラメーターを使います。ファイルをコピーする必要はありません。 たとえば、次のコマンドは S1 と S2 のコンピューターで Sample.ps1 スクリプト を実行します。 Invoke-Command -ComputerName S1, S2 -FilePath C:\Test\Sample.ps1 PowerShell は、スクリプトの結果をローカルコンピューターに返します。 リモートコマンドを停止する方法 コマンドを中断するには、Ctrl+C キーを押します。PowerShell は中断要求をリ モートコンピューターに渡し、リモートコンピューターでリモートコマンドが終了 します。 詳細情報 - リモート処理のシステム要件については、about_Remote_Requirements を参照し てください。 - リモート出力の書式設定については、about_Remote_Output を参照してくださ い。 - リモート処理の仕組み、リモートデータの管理方法、特別な構成、セキュリ ティの問題、その他のよくある質問については、PowerShell リモート処理に関す る FAQ を参照してください。 - リモート処理エラーの解決については、about_Remote_Troubleshooting を参照 してください。 - PSSession と永続的な接続については、about_PSSessions を参照してくださ い。 - PowerShell のバックグラウンドジョブについては、about_Jobs を参照してく ださい。 関連項目 about_Remote_Disconnected_Sessions about_Remote_Variables Invoke-Command Enter-PSSession New-PSSession ---- 原文: PowerShell-Docs (CC BY 4.0) の翻訳 / PSHelpJaJP |