

WindowsでDLLの不足でプログラムの起動に失敗した場合、それをcmd.exeもしくはpowershell上で確認する方法はあるでしょうか

経緯は以下になります。

* * *

先日、DockerでApache用Windowsコンテナの作成時に、Visual C++
再頒布可能パッケージをインストールしわすれ、httpdが起動しないミスがありました。  
この際に、コマンドライン上ではhttpdが起動していないのか、起動後すぐに終了したのか、がわからず、また標準出力にはエラーメッセージも特に出ないため、その原因の特定にずいぶん時間がかかってしまいました。

このケースで、Apacheコンテナが終了した時点で、その原因がDLL不足であることを特定するにはどうすればよかったでしょうか。

* * *

一部補足します。  
今回のケースはネイティブで実行していれば、DLLが足りない旨のエラーダイアログがでるかとおもいますが、Windowsコンテナ上の話なのでダイアログが表示されませんし、その他のGUIの管理ツールは使えません。  
で、powershellのGet-EventLogなどでエラーログを確認する方法が知りたく、今回の質問をしました。


CC BY-SA 4.0
2022-05-21T14:15:48.500
88967
2022-05-22T04:37:52.863
2022-05-21T14:58:44.923
52690
52690
question
windows docker dll
DLL不足でプログラムが起動に失敗したことをコマンドラインで検知する


異常終了の原因はDLLに限らないため、それよりは正常動作していることを確認すべきです。Apacheが適切なログ出力をしているか、など、判断方法はそれぞれにあるでしょう。

また、異常終了の原因調査は「cmd.exeもしくはpowershell上で確認する方法」に限定する必要はないはずです。任意のツールで調査すればよいかと。  
調査方法としてはイベントログを参照することです。不足したDLL名なども書かれているはずです。

* * *

> powershellのGet-EventLogなどでエラーログを確認する方法

[トラブルシューティング](https://docs.microsoft.com/ja-
jp/virtualization/windowscontainers/troubleshooting)で言及されていますが、Microsoft
がサポートするオープンソース ツールである Log Monitor でイベントログの内容を標準出力に流すことができ、これで確認できるかもしれません。  
（と書こうと思ったら既にkunifさんが紹介済みでした）


CC BY-SA 4.0
2022-05-21T14:35:54.253
88968
2022-05-22T04:37:52.863
2022-05-22T04:37:52.863
4236
4236
88967
answer