Home > Windows にまつわる e.t.c.

Hyper-V Server 2012 R2のリモート管理 - PowerShell編


Windows Server 2012 R2のPowerShellは、デフォルトでリモート管理を許可していますので、以下のように接続元でリモート接続設定をするだけでPowerShellのリモート操作ができるようになります。

PowerShellのリモート管理許可(管理元の設定)

winrm quickconfig -force
Set-Item WSMan:\localhost\Client\TrustedHosts * -Force

 

PowerShellのリモート操作は、コマンドレットの「-ComputerName」オプションと、対話操作の「Enter-PSSession」、コマンド投入の「Invoke-Command」の3種類があります。

「-ComputerName」オプションは、コマンドレットが操作対象のコンピューターを受け付けるので、ローカルと変わらない操作性で使うことができるのですが、「-ComputerName」オプションをサポートしていないコマンドレッドではリモート操作ができません。

 

これに対し、「Enter-PSSession」は対象コンピューター上で動作する対話式操作です。イメージとしては、PowerShellのリモートデスクトップですね。
ローカルとほぼ変わらない操作ができる上に、操作対象コンピュータ上での動作なので「-ComputerName」オプションをサポートしていないコマンドレットも使うことができます。

ドメイン環境であれば、管理権限を持ったアカウントでログインし、Enter-PSSessionで接続します。

ドメイン環境でのEnter-PSSession

PS C:\> Enter-PSSession hs003
[hs003]: PS C:\Users\Administrator.CONTOSO\Documents>

ワークグループ環境の場合は、「-Credential」オプションで使用するアカウントを明示的に指定します。

ワークグループ環境でのEnter-PSSession

PS C:\> Enter-PSSession hs004 -Credential hs004\administrator
[hs004]: PS C:\Users\Administrator\Documents>

操作が終わって切断するときは、「Exit-PSSession」で切断します。

Enter-PSSessionの終了

[hs004]: PS C:\Users\Administrator\Documents> Exit-PSSession
PS C:\>

 

「Invoke-Command」は、リモートコンピューターに対するコマンド投入です。「Enter-PSSession」は対話処理専用で、バッチ処理に不向きですが(コマンドコピペは可)、「Invoke-Command」はバッチ処理ができます。

イメージ的には、「Invoke-Command」はコマンドやバッチを投げて、終わるまで腕を組んで待つって感じです。

「Enter-PSSession」がお手軽に使えるのに対して、「Invoke-Command」はちょっととっつきにくい感じですが、とても奥が深く自動化には欠かせない存在です。

奥が深いので、とりあえず簡単な使い方だけ紹介します。(ドメイン環境で管理アカウントでログインしている場合は-Credential不要)

# Get-ChildItemコマンドをhs004へ投入
Invoke-Command -ComputerName hs004 -Credential administrator -ScriptBlock { Get-ChildItem c:\ }

# ローカルにあるtest.ps1をhs004へ投入
Invoke-Command -ComputerName hs004 -Credential administrator -FilePath c:\test\test.ps1

 

余談ですが、PowerShellのリモート操作では、UACが無効なので、管理権限を持ったアカウントでリモート操作をすると、管理権限で実行されるので、「管理者で実行」をする必要はありません。

 

Hyper-V server 2012 R2 の目次に戻る
http://www.vwnet.jp/Windows/etc.asp#Hyper-V_server_2012_R2

 

back.gif (1980 バイト)

home.gif (1907 バイト)

Copyright © MURA All rights reserved.