Welcome to Our Website

リモートコマンドの実行

  • 08/21/2020
  • 3分読み取り
    • j
    • s
    • D
    • c

あなたは、単一のpowershellコマンドで一つまたは数百のコンピュータ上でコマンドを実行することができます。 Windowsspowershellは、WMI、RPC、ws-Managementなどのさまざまな技術を使用してリモートコンピューティングをサポートします。PowerShell CoreはWMI、WS-Management、およびSSHリモート処理をサポートします。, PowerShell6では、RPCはもはやサポートされていません。 PowerShell7以降では、RPCはWindowsでのみサポートされています。

PowerShellコアでのリモート処理の詳細については、次の記事を参照してください。

  • PowerShellコアでのSSHリモート処理
  • PowerShellコアでのWSManリモート処理

構成なしのWindows PowerShellリモート処理

多くのWindows PowerShellコマンドレットにはComputerNameパラメーターがあり、データを収集し、一つ以上のリモートコンピューターで設定を変更できます。, これらのコマン

これらのコマンドレットには、次のものが含まれます。

  • Restart-Computer
  • Test-Connection
  • Clear-EventLog
  • Get-EventLog
  • Get-HotFix
  • Get-Process
  • Get-Service
  • Set-Service
  • Get-WinEvent

  • Get-WmiObject
  • ul通常、特別な構成なしでリモート処理をサポートするコマンドレットにはcomputernameparameterがあり、sessionパラメーターはありません。, セッションでこれらのコマンドレットを検索するには、次のように入力します。

    Get-Command | where { $_.parameters.keys -contains "ComputerName" -and $_.parameters.keys -notcontains "Session"}

    Windows PowerShell Remoting

    WS-Managementプロトコルを使用すると、Windows PowerShell remotingを使用すると、任意のWindows PowerShellcommandを一つ以上のリモートコンピューターで実行できます。 永続的な接続を確立し、interactivesessionsを開始し、リモートコンピューターでスクリプトを実行できます。

    Windows PowerShellリモート処理を使用するには、リモート管理用にリモートコンピューターを構成する必要があります。より詳細な指示を参照してください。リモート。,

    Windows PowerShellリモート処理を構成したら、多くのリモート処理戦略を使用できます。この記事では、それらのほんの一部を一覧表示します。 詳細は、”Remoteについて”を参照してください。

    対話式セッションの開始

    単一のリモートコンピューターで対話式セッションを開始するには、Enter-PSSessioncmdletを使用します。 たとえば、Server01リモートコンピューターとの対話式セッションを開始するには、次のように入力します。

    Enter-PSSession Server01

    コマンドプロンプトがリモートコンピューターの名前を表示するように変更されます。, 入力したコマンドプロンプトはリモートコンピューターで実行され、結果はローカルコンピューターに表示されます。

    対話式セッションを終了するには、次のように入力します。

    Exit-PSSession

    Enter-PSSessionコマンドレットとExit-PSSessionコマンドレットの詳細については、次を参照してください。

    • Enter-PSSession
    • Exit-PSSession

    リモートコマンドを実行します。

    一つ以上のコンピューターでコマンドを実行するには、Invoke-PSSessionコマンドレットを使用します。コマンドセンチメントレット, たとえば、Server01およびServer02リモートコンピューターでGet-UICulturecommandを実行するには、次のように入力します。

    Invoke-Command -ComputerName Server01, Server02 -ScriptBlock {Get-UICulture}

    出力はコンピューターに返されます。

    スクリプトの実行

    リモートコンピューターでスクリプトを実行するには、Invoke-CommandコマンドレットのFilePathパラメーターを使用します。 スクリプトに必要またはアクセスを。 結果はあなたのローカルコンピュータに返されます。

    たとえば、次のコマンドは、リモートコンピューター Server01およびServer02でDiskCollect.ps1スクリプトを実行します。,

    Invoke-Command -ComputerName Server01, Server02 -FilePath c:\Scripts\DiskCollect.ps1

    永続的な接続を確立する

    New-PSSessionコマンドレットを使用して、リモートコンピューター上に永続的なセッションを作成します。 次の例では、Server01およびServer02にリモートセッションを作成します。 セッションオブジェクトは、$s変数に格納されます。

    $s = New-PSSession -ComputerName Server01, Server02

    セッションが確立されたので、セッション内の任意のコマンドを実行できます。 また、セッションは永続的なため、あるコマンドからデータを収集し、別のコマンドで使用することができます。,

    たとえば、次のコマンドは、$s変数のセッションでGet-HotFixコマンドを実行し、結果を$h変数に保存します。 $H変数は$sの各セッションで作成されますが、ローカルセッションには存在しません。

    Invoke-Command -Session $s {$h = Get-HotFix}

    これで、$h同じセッション内の他のコマンドで変数のデータを使用できます。 結果はローカルコンピュータに表示されます。 たとえば、

    Invoke-Command -Session $s {$h | where {$_.InstalledBy -ne "NTAUTHORITY\SYSTEM"}}

    高度なリモート処理

    Windows PowerShellリモート管理はここから始まります。, WindowsPowerShellと共にインストールされたコマンドレットを使用すると、ローカルとリモートの両方の端からリモートセッションを確立および構成し、カスタマイズされた

    Windows PowerShellにはWSManプロバイダーが含まれています。 プロバイダーは、WSMAN:ドライブを作成し、ローカルコンピューターとリモートコンピューターの構成設定の階層を移動できます。,WSManプロバイダー、seeWSManプロバイダー、およびWS-Managementコマンドレットについての詳細については、またはWindows PowerShellコンソールで、Get-Help wsmanと入力します。

    詳細については、以下を参照してください。

    • リモートFAQについて
    • Register-PSSessionConfiguration
    • Import-PSSession

    リモートエラーのヘルプについては、about_Remote_Troubleshootingを参照してください。,

    も参照してください

    • about_Remote
    • about_Remote_FAQ
    • about_Remote_Requirements
    • about_Remote_Troubleshooting
    • about_PSSessions
    • about_WS-Management_Cmdlets
    • Invoke-Command
    • Import-PSSession
    • new-pssession
    • register-pssessionconfiguration
    • wsmanプロバイダ

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です