本記事をおすすめできる方は
以下に絶望した方です。
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]
本記事がお役に立ちましたら幸いです。
