2016年3月17日木曜日

APC地獄 リモートシャットダウンができない | ライタス株式会社

UPSのメーカーで有名なAPC。
うちの会社でも導入しているのですが・・・停電テストをしたら動かないという、なんともありがちで、なんとも危険な状態だったのです・・・
さて、そんなわけで、サーバー各位には正常にシャットダウンして頂くために対策に乗り出したのですが、いろいろと困ったことがありまして・・・

実は、「通常版エージェント(PowerChute Business Edition)がHyper-Vホストに対応していない」っていう欠点を持っています。
通常のBusiness版っていうのは、Hyper-Vがインストールされているサーバーに対してはインストールすらさせてくれません。
Enterprise版なら対応してるよ! って言うんですが、コレが高い。


構成としては、APC 3000+NICオプション 対 Windows 2008 Server( in Hyper-V )を同一LAN上に配置した感じです。

困ったポイントは以下の点。
  • PowerChuteのGUIが全部英語 しかも 日本語の解説書を読んでもいまいち動作が分からない
  • イベントが起きたらコマンドを実行できるんですが、権限がSYSTEMなので、「拒否されました」のメッセージとともにリモートシャットダウンができない。
英語なのは、ある意味しょうが無いとして、PowerChuteのGUIの解説が絵入りで無いっていうのは、どういうこと? 相当迷いました。(てっきり、インストールさえしておけばシャットダウンされると思ってたのに・・・全然違うし・・・)
また、バッテリーに切り替わった時にコマンドを実行できるはずなのですが、実行に失敗します。
ちなみに、実行しているコマンドは、以下のものです。
wmic /NODE:<相手先サーバー> /user:<実行ユーザー名> /password:<実行ユーザーのパスワード> OS WHERE Primary=1 CALL shutdown
このコマンドに関する解説は、「wmi リモートシャットダウン」でググると出てきます。

なんで失敗するのか、最初はさっぱり分かりませんでしたが、UPSの通電を遮断したときに出てくるコマンドプロンプトの実行ユーザーがSYSTEM権限になっている事に気がつきました。通常のコマンドプロンプトは、実行しているユーザー権限で起動するのに・・・
SYSTEM権限だと、wmicコマンドを外に投げることが出来ないようです。(てっきり、APCがEnterprise版を買わせるための罠かと思ったのは内緒)
コレを回避するには、APCのサービス(PowerChute なんとかサービス)の実行権限を「ローカルシステム」から実行ユーザーに変更して、サービスを再起動するとAPCからのコマンドは指定した実行ユーザー権限で実行されるようになります。

参考になった記事は以下です。
http://ameblo.jp/tamajiro1220/entry-10550772977.html
http://blogs.yahoo.co.jp/ta_ki/55567581.html

他の回避策も参考になるかも知れません。
方法としては、専用サービスを作って無理矢理実行させたり、タスクマネージャーを使ってみたり・・・

やっぱりみんな苦労しているんですねぇ・・・
解明までに掛かった時間:およそ1週間(泣)



本記事は、弊社代表のブログ記事なんでもIT屋の宿命からの転載です。

0 件のコメント:

コメントを投稿