Hyper-VホストからWindowsゲストにPSSessionをつなぐ

Overview

環境

  • Windows server 2016 standard (desktop experience)
    • Hyper-V ホスト
  • Windows10 Pro 1909
    • Hyper-V ゲスト

ゲスト to ホストのファイル転送は面倒

Hyper-Vにおいて、ホストからWindowsゲストへのファイル転送はかなり楽でPowerShellからCopy-VMFileというコマンドレットを叩くだけです。

ただしその逆に、ゲストからホストへのファイル転送は特に専用のコマンドが用意されているわけでは有りません。

ゲストもホストも両方アクセスできるネットワーク経由のストレージを使うとか、ゲストかホストどちらかでCIFS有効にしてしまうとかといったやり方もありますが、

  • ホスト-ゲスト間のネットワークが疎通できている前提
  • 直接ホストとゲストが通信できない場合、間に何かしらのストレージサービスを動かす仮想マシンを用意しなきゃで面倒

という問題があり。

なにかうまいことできないものかなと調べていた所できたのでブログ記事にします。

Hyper-V上のWindowsゲストからHyper-Vホストへのファイル転送

概要としては、

  • ネットワーク経由じゃなくてHyper-V経由でPSSessionを貼る
  • Copy-ItemコマンドレットをPSSession経由で実行

実行例

仮想マシン名VM上のC:\target.zipをHyper-VホストのD:\target.zipにコピーする場合、ホストのPowerShell上で以下を実行。

  • $cred = Get-Credential
  • ゲストVM上のユーザID, パスワードを入力
  • $s = New-PSSession -VMName VM -Credential $cred
  • Copy-Item -FromSession $s -Path C:\target.zip -Destination D:\target.zip

便利

参考

Virtual Machine automation and management using PowerShell

comments powered by Disqus