テストで作成した仮想マシンがIT管理部門での本稼働になることってありませんか?
ありますよね?
そういった仮想マシンを長期間運用している場合に,ホストサーバーのリプレイスを挟むと,作成日が初期値の1601年1月1日になることがあります。この状況では,Hyper-Vマネージャーやイベントログから作成日を直接確認するのが難しくなるケースもあります。
この記事では,仮想マシン内で確認できるOSインストール日を参照し,おおよその作成日を調べる方法を解説します。
目次
Hyper-V仮想サーバーの作成日を調べる方法
Powershellの systeminfo コマンドを使う
最も簡単なのが systeminfo
コマンドです。コマンドプロンプトやPowerShellで以下を実行します。
systeminfo | findstr "インストール日"
- 日本語環境では「最初のインストール日付」
- 英語環境では「Original Install Date」
レジストリから確認する
より正確に確認したい場合はレジストリを参照します。PowerShellで以下を実行してください。
Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion" | Select-Object InstallDate
この値はUNIX時間(エポック秒)で格納されています。変換するには次のワンライナーが便利です。
※長いので複数行に見えますが,1行です。
(Get-Date 01.01.1970)+([System.TimeSpan]::FromSeconds((Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion").InstallDate))
WMI (CIM) を利用する
WMI経由でも確認可能です。スクリプトなどで自動収集したい場合に便利です。
Get-CimInstance Win32_OperatingSystem | Select-Object InstallDate
実際の出力例
例えば,あるWindows Server 2016仮想マシンの systeminfo
を実行すると次のように表示されました。
最初のインストール日付: 2018/01/18, 17:07:18
この結果から「この仮想サーバーは2018年1月18日に作成されて稼働を開始した」と推定できます。
注意点
- 表示される日付は「Hyper-V上でのVM作成日」ではなく「ゲストOSをインストールした日」です。
- テンプレートからコピーした場合は、コピー元のインストール日が引き継がれることがあります。
- より正確に知りたい場合は,VHDXファイルの作成日時も確認してみるとよいでしょう。
セキュリティ上の注意
systeminfo
の出力をブログや外部資料に載せる場合,以下の情報は隠すことをおすすめします。
- ホスト名
- IPアドレス
- プロダクトID(ライセンス情報)
- Hotfix (KB) 一覧
これらは攻撃者にシステム情報を推測されるリスクがあります。記事では必要部分だけ抜粋するのが安全です。
まとめ
- Hyper-Vの仮想サーバー作成日はホストをリプレイスすると確認が難しくなる
- 代わりにゲストOSの「最初のインストール日付」を確認すればおおよその作成日が分かる
- systeminfo,レジストリ,WMIのいずれかで確認可能
- 公開する際はセキュリティ上の配慮を忘れないこと
仮想環境のライフサイクル管理やドキュメント整備の参考になれば幸いです。
コメントはこちら