これまでの記事ではセッションを作成してリモート処理をする方法について紹介してきました。
- Windows PowerShell によるリモート制御 ~その1 準備編~
- Windows PowerShell によるリモート制御 ~その2 セッション編(基礎)~
- Windows PowerShell によるリモート制御 ~その3 永続的なセッション編 ~
- Windows PowerShell によるリモート制御 ~その4 複数セッションの作成と使用 ~
PowerShell 2.0では、セッションによるリモート制御の他に、ComputerNameパラメータを利用してリモートコンピュータを制御することができます。
ComputerNameパラメータを持つコマンドレットは、下記のものがあります。
- Clear-EventLog
- Connect-WSMan
- Disconnect-WSMan
- Get-Counter
- Get-EventLog
- Get-HotFix
- Get-Process
- Get-PSSession
- Get-Service
- Get-WinEvent
- Get-WmiObject
- Get-WSManInstance
- Invoke-WmiMethod
- Invoke-WSManAction
- Limit-EventLog
- New-EventLog
- New-WSManInstance
- Register-WmiEvent
- Remove-EventLog
- Remove-WmiObject
- Remove-WSManInstance
- Restart-Computer
- Set-Service
- Set-WmiInstance
- Set-WSManInstance
- Show-EventLog
- Stop-Computer
- Test-Connection
- Test-WSMan
- Write-EventLog
ComputerNameパラメータを持つコマンドレットは下記のようにして調べることができます。
(これはヘルプに載っているものを少し改造したものです)
get-command | where { $_.parameters.keys -contains "ComputerName" -and
$_.parameters.keys -notcontains "Session" -and $_.CommandType -eq "Cmdlet"}
ComputerNameパラメータを利用するときは、これまでのようにセッションを作成する必要はありません。
また、リモートコンピュータにPowerShellがインストールされている必要はありませんし、リモート処理用に構成されている必要もありません。
たとえば、以下のコマンドはリモートコンピュータMyServe01に対してGet-HotFixコマンドレットを実行します。
Get-HotFixコマンドレットは、ローカル コンピューターまたはリモート コンピューターに適用された修正プログラムを取得します。
Get-HotFix -ComputerName MyServ01
もう1つ例を見てみましょう。次のコマンドはリモートコンピュータを再起動します。
Restart-Computer -ComputerName MyServ01
ComputerNameパラメータが提供されていないコマンドレットをリモートコンピュータで実行したい場合は、これまでに紹介したようにセッションによる操作を行ってください。
*本記事はWindows XPにインストールしたWindows PowerShell 2.0 RCで検証しております。
コメント