Windows PowerShell によるリモート制御 ~その5 ComputerNameパラメータを持つコマンドレット ~

これまでの記事ではセッションを作成してリモート処理をする方法について紹介してきました。

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で検証しております。

コメントを残す

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

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>