2012年12月27日木曜日

Powershell 3.0 リモート処理を行う方法

Powershell 3.0ではリモートコンピューターを操作、管理剃る方法は主に3つあります。

方法1:コマンドの-ComputerNameパラメーターを使う
・リモートコンピューターに対して、「リモート」から操作を行う。
・複数のコンピューターを指定可能
※-ComputerNameを使用する場合、PSセッションは張られない。

リモートコンピューターWS201202に対して、Get-Processを実行する

PS C:\Users\Administrator> Get-Process -ComputerName ws201202

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
    166      11     1664       4304    59             360 csrss
    169      12     2120      15580   195             412 csrss
    415      36    19900      25208   870            1628 dfsrs

複数のリモートコンピューターを指定

PS C:\Users\Administrator> Get-Process -ComputerName ws201201,ws201202

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
    112      11     4756      12688    89     0.47   3872 conhost
    160      11     1664       4300    59             360 csrss
    147      11     1572       1608    62     1.61    360 csrss
    169      12     2120      15580   195             412 csrss

-ComputerNameパラメーターを持つコマンド一覧を表示
PS>Get-Command -ParameterName ComputerName

 

方法2:Invoke-Command -ComputerName <name> -ScriptBlock {コマンドブロック}を使う
・-ComputerNameパラメーターを持たないコマンドに対応
・リモートコンピューターの「中」で処理を行う
・複数のコンピューター指定可能
・PSセッションが張られる。コマンド終了時にセッションは消滅

リモートコンピューターWS201201、WS201202上のC:\tempの中身を表示

PS C:\Users\Administrator> Invoke-Command -ComputerName ws201201,ws201202 -ScriptBlock {Get-ChildItem C:\temp}

    ディレクトリ: C:\temp

Mode                LastWriteTime     Length Name                                  PSComputerName
----                -------------     ------ ----                                  --------------
-a---        2012/12/27     15:43          0 test.txt                              ws201202
d----        2012/12/21     11:04            Exchange2013                          ws201201

 

方法3:Enter-PSSession -ComputerName … を使う
・対話モードでPowershellを実行(SSHのように使う)
・Exitコマンドでセッションを切断する。

PS C:\Users\Administrator> Enter-PSSession -ComputerName ws201202
[ws201202]: PS C:\Users\Administrator.TEST\Documents> Get-Process

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
    164      11     1668       4308    60     2.34    360 csrss

PowerShellによるWindowsサーバ管理術
永尾 幸夫 小鮒 通成 国井 傑 竹島 友理 牟田口 大介
ソフトバンククリエイティブ
売り上げランキング: 174,591

0 件のコメント:

コメントを投稿