- 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-WmiObject
Get-WinEvent
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プロバイダ