LoginSignup
0
お題は不問!Qiita Engineer Festa 2023で記事投稿!

Hyper-V 仮想マシンの IPアドレス を 1コマンドで クリップボード にコピーする

Last updated at Posted at 2023-07-18

本記事をおすすめできる方は

以下に絶望した方です。

IPアドレスは ~/.ssh/config に記述するなど、必要となる機会も多いため、サクッとコピーしたいものです。

しかし、上記画面の文字列をマウスで選択することはできません。右クリックしても何のメニューも表示されません ( なぜそんな作りに・・・ ) 。

Ctrl + c は使えるが、行全体の文字列がコピーされる

行のどこかを1回クリックするなどにより、行にフォーカスを当てた状態で Ctrl + c を押してみると、以下のような、行全体の文字列がクリップボードに格納されます。

ネットワーク アダプター (動的 MAC: 00:15:5D:03:07:39)	Default Switch	172.31.181.102,  fe80::215:5dff:fe03:739	OK

上記文字列の中に IPアドレス も含まれていますので、取り急ぎコピペしたい場合はこの方法も使えそうです。

いずれ改善されることに期待しつつ、仮想マシンの IPアドレス をクリップボードにコピーするコマンドを次章でご紹介します。

バージョン情報
本記事執筆時点の Hyper-V マネージャー の バージョンは 10.0.22621.1 です。

1コマンドで IPアドレス を クリップボード に格納する

PowerShellは管理者権限で起動する必要がある
管理者権限が必要なコマンドを利用しているため、PowerShell は管理者権限で起動してください。

テクニック: 管理者権限で起動するには Ctrl + Shift が便利
アプリケーションを管理者権限で起動するには、Ctrl + Shift を使うのがおすすめです。
PowerShell に限らず使えるテクニックです。

使用例:

  • PowerShell のアイコンを スタートメニュー/デスクトップ/タスクバー などに表示し、Ctrl + Shift + マウスクリック することにより管理者権限で起動することができます
  • ファイル名を指定して実行ダイアログ( Windowsボタン + r ) に powershell と入力して、Ctrl + Shift + Enter することにより管理者権限で起動することができます

IPアドレス を クリップボード に格納するコマンド

仮想マシンの IPアドレス を表示し、クリップボードにも格納してくれるコマンド( ワンライナー )です。

$ip=(Get-VMNetworkAdapter 仮想マシンの名前)[0].IPAddresses[0] ; echo $ip ; Set-Clipboard $ip

IPアドレスがない場合の戻り値に注意
IPアドレスがない場合、変数 $ip に空が代入されますので、上記コマンドでは クリップボード にも空が格納されます。

空を格納したくない場合、以下のコマンドをお使いください。
空ではないことを判定するif文の効果により、IPアドレスがない場合クリップボードの状態を変更しません。

if ( ($ip=(Get-VMNetworkAdapter 仮想マシンの名前)[0].IPAddresses[0]) -ne $null ) {echo $ip ; Set-Clipboard $ip}

テクニック: クリップボードの履歴 ( Windowsボタン + v )が便利
Windowsボタン + v でクリップボードの履歴を表示することができます。
過去にコピーした情報を確認したり、再度貼り付けすることができるので便利です。
先に複数の情報をクリップボードにコピーしておき、後で貼り付けるという使い方も可能になります。

備考

ネットワーク アダプターが複数ある場合、Get-VMNetworkAdapter コマンドの -Name オプションに ネットワークアダプター名 を指定すると良いです。

また、Get-VMNetworkAdapter コマンドの戻り値のindex部分( 以下の[1234] の部分 ) を変更する方法もあります。

(Get-VMNetworkAdapter 仮想マシンの名前)[1234].IPAddresses[0]

本記事がお役に立ちましたら幸いです。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
0