2017-07-04 123 views
2

私は、停電中にUPSバッテリが所定の充電レベルに達すると、自動的にサーバーをシャットダウンするUPS監視コンソールアプリケーションを作成しています。コンテナ内からホストをシャットダウンする方法は?

可能であれば、NUT(ネットワークUPSツール)がWindowsシステムで作業することは難しいと知られているため、これをコンテナ内で実行したいと考えています。私はベアメタルでそれを一度設定しましたが、私はその痛みにもう一度耐えられないことを望みます。 (これは別の日の別の話です)

今日まで:システムシャットダウンコマンドをコンテナのホストに送信するにはどうすればよいですか?私は単純にshutdown /s /t 0を試しましたが、それはコンテナをシャットダウンします。私はホストに連絡する必要があります。この質問はオフトピックないVOTERS--

を閉じるために

--NOTE。ノートthis Q&Aは、現在、2000をはるかに上回るアップボトムを現在持っている一例です。この質問で言及されているプログラミングの概念は1つではありません。

Dockerは開発者が使用するツールです。だから、その主題はこのフォーラムに非常に関連しています。 dockerタグでクイッククエリを実行すると、私の言いたいことがわかります。

+0

@Marged - 私の編集を参照してください。 – InteXX

+0

私はあなたの理由を読んで、この質問がSOに適している理由を知りました。私の次の提案は、コンテナから呼び出されたときにshutdownコマンドを実行する、パスワードで保護されたTLSのセキュリティ保護されたHTMLリスナーを作成することです。 – Marged

+0

@Marged - 私の考えを正確に。私はそれを受け入れることができるように答えるようにしますか? – InteXX

答えて

0

少しのプログラミングが必要なアプローチは、ホストに着く小さなサービスを作成し、着信接続を待つことです。

サービスは、シャットダウンコマンドを実行するか、適切なWindows API呼び出しを呼び出すことができます。

私は、このサービスに単一のURLを持つ最小限のhttpエンドポイントを与え、ユーザー/パスワードとSSL/TLSで保護することをお勧めします。

あなたはgolangとNSSMでこれを実装するのはかなり簡単なはずcurl --user user:pass https://host/shutdown

を使用して、コンテナからこれを呼び出します。

0

psshutdown \\host -u ... -p ...は、コンテナに十分な権限を持つ資格情報を格納することができます。

詳細およびダウンロードリンクについては、https://technet.microsoft.com/en-us/sysinternals/psshutdown.aspxを参照してください。

編集:私は、Windowsセキュリティの処理方法の変更により動作しないアプローチを文書化するために、ここで、このままにしておきます。以下に示すInteXXsのリンクに従うと、psshutdownを再び動作させるために必要なことと、これがもたらすセキュリティリスクを明確に説明しています。

+1

試していただきありがとうございます。「PsTools」ユーティリティでは、(ドメイン資格情報が使用されている場合でも)非ドメインアカウントから接続する際に、リモートマシン上でUACを無効にする必要があります。詳細については、[here](http://www.harmj0y.net/blog/redteaming/pass-the-hash-is-dead-long-live-localaccounttokenfilterpolicy/)を参照してください。 – InteXX

+0

興味深いことに。私の次のアプローチはSSHをインストールし、シャットダウンを送信することですが、これはちょっと寂しいです – Marged

関連する問題