Windows PowerShell によるリモート制御 ~その3 永続的なセッション編 ~

前回の記事でPowerShellにおけるセッションの話をしました。

今回は

について説明します。



New-PSSessionコマンドレットによる永続的なセッションの作成

前回のEnter-PSSessionで作成したセッションは一時的なものであり、コマンドまたは対話型のセッションが完了するとそのセッションを閉じます。

しかし、New-PSSessionコマンドレットを使用すると、複数のコマンドや対話型のセッションを実行できる永続的なセッションを作成することができます。

 

構文は

変数 = New-PSSession -ComputerName コンピュータ名[ , コンピューター名 [,コンピュータ名]…] 

です。

たとえば、MyServe01というリモートコンピュータとの永続的なセッションを作成するには

$s = New-PSSession -ComputerName MyServe01 

とします。

この場合は$sにセッション情報が作成されます。

作成されたセッションを確認するには Get-PSSessionコマンドレットを実行します

PS> Get-PSSession
Id Name            ComputerName    State    ConfigurationName     Availability
-- ----            ------------    -----    -----------------     ------------
1 Session1        MyServ01        Opened   Microsoft.PowerShell     Available 

MyServe01とのセッションの名前(Name)はSession1として作成され、開かれている(StateがOpend)ことがわかります。

このようにして作成したセッションは Invoke-Command コマンドレットで使用することができます。

構文は

Invoke-Command -Session セッション変数 -ScriptBlock {実行するコマンド}

です。

実際には、New-PSSessionで作成したセッションを代入した変数を -Sessionパラメータに指定し

Invoke-Command -Session $s -ScriptBlock { Get-date }

のように書きます。

この場合は、リモートコンピュータMyServ01 上で Get-Date コマンドレットを実行します。

このように、New-Sessionコマンドレットを使用して作成したセッションは変数に保存されているので、好きなときに何度でも使用することが可能になります。


Remove-PSSessionコマンドレットによるセッションの削除

作成したセッション(PSSession)はプロセスであるため、ユーザーが使用しない場合でもメモリなどのリソースを消費してしまいます。

要らなくなったセッションは Remove-PSSession コマンドレットで削除することができます。

このコマンドレットを使用するとPSSessionを削除し、PSSessionnによって使用されていたリソースが解放されます。

PS> Remove-PSSession

*本記事は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>