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