いろんなサーバー設定研究所

インフラエンジニアに役立つ各種設定やTipsを提供します Windows Server、Linux など

*

Powershellでリモートサーバーを操作

      2015/05/23

サーバーのメンテ作業をしているとクライアントPCからPower Shellでリモートサーバーに接続してコマンドを実行したいと思うことが多々あります。

例えば、特定のPower Shellスクリプトを実行すると管理している全てのWindowsサーバーでWindows Updateが行われる…なんて良いと思いませんか?

そのために、まずクライアントPCからリモートサーバーにPower shell コマンドレットが実行できるよう準備しましょう。


リモートサーバーの事前準備

リモートサーバー側で以下コマンドを実行します。


Enable-PSRemoting

実行後WinRMのサービス構成が始まり、PS セッションで実行を許可するWinRMのセキュリティ記述子(SDDL)へのァクセス許可設定を行います。

気にせずYを連打

準備はこれだけ!

リモートサーバーに接続する

Power Shell経由でリモートコンピュータに接続するには、クライアントから以下コマンドを実行します。


Enter-PSSession リモートコンピュータ名

これでリモートホストに接続できました。終了するときは「exit」と入力しましょう。

永続的なリモートセッションを取得する

「Enter-PSSession」だけでも十分便利ですが、Power Shellでスクリプトを書いてい時複数サーバーに接続したいとこがあります。こういった時に、接続するたびに数秒待たされて困る時があります。そんな時はセッションを変数に格納してしまいましょう。


$s = New-PSSession -ComputerNamer [コンピュータ名,コンピュータ名,…]

New-PSSessionコマンドレットでは、複数コンピュータのセッションを変数に格納できます。で、


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

のように記載すると、複数のリモートPCに一括でコマンドの実行が可能です。

まずは事はじめ。おためしください。

 - Power Shell