かつて山市良と呼ばれたおじさんのブログ
セイテクエンジニアのブログ かつて山市良と呼ばれたおじさんのブログ vol.244 VMのメモの読み取りと書き込み|Hyper-V 小技・裏技集
2026年10月22日配信
執筆者:山内 和朗
「Hyper-V小技・裏技集」シリーズでは、Hyper-Vの仮想環境を利用していて、知っていると便利な小技や裏技を紹介します。今回は、これまで紹介した自動化テクニックと組み合わせて利用すると便利な、VMのメモのPowerShellからの操作です。この連載シリーズは、いったん今回で最終回とします。最終回恒例の目次付き。
VMの設定の「管理|名前」にあるメモのテキストボックスに書き込まれたテキスト情報は、PowerShellで簡単に操作できます。例えば、VM名vm01のメモを読み取るには、Get-VMのNotesプロパティを読み取ります。具体的には、次のコマンドラインを実行します(画面1)。
| (Get-VM -Name "vm01").Notes |

画面1 vm01のメモの読み取り
VMのメモへの書き込みはSet-VMで行えます。次のスクリプトは、$addnote変数に定義したメモを、vm01のメモに書き込みますが、既存のメモが存在する場合はその最初に追記する形で書き込みます。
| $addnote = "追記するメモの内容" $vm = Get-VM -Name "VM01" $notes = if ($vm.Notes) { $vm.Notes + "`r`n" + $addnote } else { $addnote } Set-VM -VM $vm -Notes $notes |
PowerShellからVMのメモの操作ができれば、これまで紹介した自動化の例と組み合わせて、自動タスクの実行記録をメモとして残すことができます。例えば、vol.240のWindows Updateの自動化スクリプトに次のように(青字の部分)組み込むことで、更新完了時間と最新のOSビルドをメモに記録することができます。前出の画面1はこの方法で書き込んだノートです。
[automate_winupdate_v2.ps1](プレーンテキストで表示/ダウンロード)
| (省略) # シャットダウン前に現在のOSビルドを取得(メモ用) $osbuild = Invoke-Command -VMName $vm.Name -Credential $cred -ScriptBlock {$cv = Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion';"$($cv.CurrentBuild).$($cv.UBR)"} # VMのシャットダウン Write-Host "`r$($vm.Name) is Stopping... " -NoNewLine $vm | Stop-VM -Force -ErrorAction Stop While ($vm.State -ne "Off") { Start-Sleep 1 } Write-Host "`r$($vm.Name) is Off " -NoNewLine # VM メモ更新 $addnote = "$(Get-Date -Format 'yyyy/MM/dd HH:mm:ss') Windows Update 完了(OSビルド: $($osbuild))" $notes = if ($vm.Notes) { $addnote + "`r`n" + $vm.Notes } else { $addnote } Set-VM -VM $vm -Notes $notes |
リファレンス(Microsoft Learn):
Get-VM(Hyper-V)|Set-VM(Hyper-V)
「Hyper-V 小技・裏技集」シリーズの目次 |
Hyper-V 小技・裏技集 (1)|(2)|(3)|(4)|(5)|(6)|(7)|(8)|(9)|(10)|(11)|(12)