Eaton UPS(イートン 無停電電源装置) テクニカルブログ

【IPM2】IPM2 on Windows server 2025 Hyper-Vのシャットダウン

Windows server 2025のHyper-V上にIPM2を仮想マシンとして稼働させた時、IPM2仮想マシンとホストのWindowsをシャットダウンする手順を解説します。

はじめに

IPM2の基本設定(IP設定、ライセンス適用、UPS検出など)は完了している前提で話が進みます。予めご了承ください。

単にWindows Hyper-Vをシャットダウンするだけなら、WindowsにIPPをインストールして、仮想マシンをHyper-Vの機能でシャットダウンさせることができます。
https://www.eaton-daitron.jp/techblog/5691.html

VMware環境を外部からシャットダウンしたい等の要件があり、IPM2の機能を利用する場合は、このブログの手順に従ってシャットダウンの設定を行ってください。

構成

Server

  • Windows Server 2025 x1 (Hyper-V、OpenSSH サーバー、PowerShell)
  • Eaton IPM 2.8.0 (VM) x1

UPS

  • Eaton 9SX700 UPS x1
  • Eaton Network-M3 2.1.3 x1

シャットダウンの概要

1.UPSのシャットダウンは、Network-M3で設定します。
 (本ブログでは、停電が60秒継続したらシャットダウンシーケンス開始。その300秒後にUPSをシャットダウンする設定)

2.IPM2仮想マシンのシャットダウンは、Hyper-Vの機能で設定します。
 (本ブログでは、停電が60秒継続したらシャットダウンを開始する設定)

3.Windowsのシャットダウンは、Windows内にシャットダウンスクリプトを配置し、IPM2がWindowsにSSH接続してそのスクリプトを実行することで実現します。

※各タイマーはご使用の要件・環境に合わせて変更してください。本ブログはテスト環境のため短く設定しています。

UPSのシャットダウン設定

UPSのシャットダウンは、Network-M3で設定します。
最初に、シャットダウンシーケンスを開始する条件を設定します。
※Group 1と2は設定しません。無効のままにします。

保護 > 停電時のシャットダウン

OUTPUT(PRIMALY)を有効化します。
バッテリーが次の時間使用中の場合はシーケンスを開始する:有効 値=60秒

次に、シャットダウンシーケンスが開始したら、300秒後にUPSをシャットダウンする設定をします。

保護 > エージェントはシーケンスをシャットダウンします

OUTPUT(PRIMALY)のOSシャットダウン時間(秒)のローカルに、300を入力します。

これで、停電(バッテリー運転)が60秒継続したら、その300秒後にUPSをシャットダウンする設定になりました。

仮想マシンのシャットダウン設定

仮想マシンのシャットダウンは、WindowsのHyper-V マネジャーで設定します。

<Hyper-V マネジャー>

仮想マシンの状態が「オフ」である必要があります。起動中であれば、シャットダウンします。

仮想マシンを右クリックで[設定]を押します。

「自動停止アクション」と「自動開始アクション」を設定します。

自動停止アクションは[ゲストOSをシャットダウンする]を選択します。

自動開始アクションは[常にこの仮想マシンを自動的に起動する]を選択します。

Windows シャットダウン設定

ホストであるWindowsのシャットダウンは、Windowsのローカルディスク(Cドライブ)にシャットダウンコマンドを記述したPowerShellスクリプトを配置して実現します。

シャットダウンコマンドは1行です。

shutdown /s /f /t 60

本ブログでは、C:\scripts\ShutdownWin.ps1 としてPowerShellスクリプトを配置しました。
※ このスクリプトをPowerShellで実行したら、仮想マシンおよびWindowsがシャットダウンすることを確認しておきます。

OpenSSH サーバーの有効化

IPM2仮想マシンがホストのWindowsにSSH接続できるように、OpenSSH サーバー機能を有効化します。

詳しくは、マイクロソフトの手順をご確認ください。
https://learn.microsoft.com/ja-jp/windows-server/administration/openssh/openssh_install_firstuse

管理者として PowerShell を開き、次のコマンドレットを実行します。

Start-Service sshd
Set-Service -Name sshd -StartupType 'Automatic'

SSH接続確認

WindowsのOpenSSH サーバーを有効化したら、実際にIPM2仮想マシンからWindowsへSSH接続できることを確認します。
具体的には、IPM2のコンソール画面からコマンド(CLI)でWindowsへSSH接続してみます。

IPM2のコンソールにログインします。(アカウントはadmin、パスワードはIPM2にブラウザでログインするパスワード)

コマンドでWindowsにSSH接続します。

ssh -l {Windowsの管理者アカウント} {WindowsのIPアドレス}

Passwordを聞かれたら、Windowsの管理者アカウントのパスワードを入力してログインします。

IPM2仮想マシンからホストのWindowsへSSHで接続しました。

下記コマンドでWindowsのローカルディスクに配置したPowerShellスクリプトを実行します。

powershell -ExecutionPolicy Bypass -command C:\scripts\ShutdownWin.ps1

これで、IPM2仮想マシンからWindowsにSSH接続してWindows内のシャットダウンスクリプトを実行。シャットダウン命令を受けたWindowsは、IPM2仮想マシンをシャットダウンした後に、シャットダウンします。

オートメーション設定 (自動化設定)

オートメーションは、IPM2で実装された新機能です。
トリガーとなる条件が満たされた時に、アクションが実行されます。

オートメーション > 新規作成の[オートメーション]を選択します。

自動化名は任意です。読んで分かりやすい名前が良いでしょう。

次に、「トリガー」を設定します。ここで設定した条件を満たした時に、下のアクションが実行されます。

[電力の問題]を選択します。

[UPSのAC停電]を選択して次へ。

パワーソースにするUPSを選択して終了。

[選択したUPSがAC停電した時]を条件とするトリガーができました。

続いて、「アクション」に移ります。

IPM2がUPSのバッテリー運転を検知すると同時にアクションを実行されたくありません。
一定時間(ここでは60秒)待っても停電したままだったらアクションを実行してもらいたいです。
このような時は、実行したいアクションより前に[遅延タイム]と[初期トリガーの確認]を挿入します。

[遅延タイム]を選択します。

待機時間(秒)に60を入力して[終了]を押します。

アクションの1番目に待機時間(いわゆるシャットダウンタイマー)が追加されました。

[初期トリガーの有効性チェック]を選択します。

待機時間経過後にトリガーの条件が今も有効かどうかのチェックを行います。
無効だった場合(つまり、UPSが停電から回復している場合)、これ以降のアクションに進ませたくありません。オートメーション(自動化)を終了するように設定します。

【重要】ここを続行に設定すると、UPSがオンラインに戻っていてもこの後のアクションを実行してしまいます。

[自動化を終了します]を選択します。

アクションの2番目に「トリガー条件を確認して満たしていなかったら、オートメーションを停止する」アクションが追加されました。

※[遅延タイム]と[初期トリガーの確認]は、基本的にアクションの先頭に追加します。このあとに、IPM2に実行させたいアクションを複数並べていきます。このブログでは、次にIPM2とホストのWindowsをシャットダウンさせていますが、この間にVMwareのシャットダウンやNutanixのシャットダウンなどのアクションを挟むことでサードパーティー製品をシャットダウン管理可能です。

[ITアクション]を選択します。

[サーバーアクション]を選択して次へ。

[SSH]を選択して次へ。

サーバーのホスト名:WindowsのIPアドレス
サーバのポート:22

Credentialを選択して[新しいクレデンシャルを追加する]を押します。

[ユーザーとパスワード]を選択します。

クレデンシャル名:任意。読んで分かりやすい名前が良いでしょう。
クレデンシャルの使用:ユーザースクリプト
ユーザーとパスワードは、Windowsの管理者アカウントとパスワードを入力してSaveします。

確認はIPM2のパスワードを入力して[Confirm]を押します。

再びCredentialを押して、作成したクレデンシャルを選択します。

SSHコマンド:IPM2コンソールで実行確認したコマンドを貼り付けます。

powershell -ExecutionPolicy Bypass -command C:\scripts\ShutdownWin.ps1

アクションを実行した結果、何かしらの原因でエラーが返ってきた場合、自動化を続行するのか、それとも終了するのかを選択します。
※基本的に「初期トリガーの有効性チェック」アクションの時は終了を選択、「初期トリガーの有効性チェック」以外のアクションは続行を選択します。また、このアクションを抜けるタイムアウト値(秒)も入力します。

「アクション」が完成したのでSaveします。

オートメーションが1つ作成されました。ステータスが「Inactive」なので有効化します。

これで、UPSが60秒間バッテリー運転したら、IPM2がWindowsにSSH接続してスクリプトを実行する設定ができました。

シャットダウンテスト

UPSの入力電源ケーブルを抜いてシャットダウンテストを実施します。

IPM2のオートメーションが実行されて、IPM2仮想マシン → Windowsの順でシャットダウンしました。

Network-M2の停電時のシャットダウンが実行されて、UPSがシャットダウンしました。

おわりに

XとYouTubeでEaton UPSの情報を配信しております。よろしくお願い致します。

X : https://twitter.com/eaton_daitron

YouTube : https://www.youtube.com/user/EatonDaito

ページの先頭へ