サーバーがクラッシュした場合、アプリケーションを自動的に再起動させたいのですが。ユーザーがアカウントにログインする必要なく、再起動する必要があります。 (ログイン前にプログラムを実行)
私の研究に基づいて、オプションのリストを思いつきました
もっと良いものはありますか?実装する最も簡単なソリューションが欲しいだけです。
ローカルセキュリティポリシーを編集して、起動スクリプトを実行できます。これは、システムが2003年、2008年に起動したときに実行されますXPおよびその他。昇格された特権で実行されます
gpedit.msc
を実行してから、Computer Configuration > Windows Settings > Scripts
に移動します
そこにStartup
とShutdown
が表示されます。
これを行う方法は2つあります。
適切な方法-アプリをサービスとして実行します。
迅速かつ汚い方法-スケジュールされたタスクとしてアプリを実行します。スケジュールオプションの1つは、コンピューターの起動時です。
これらのソリューションのどちらも、インタラクティブである必要があるアプリでうまく機能することを期待しないでください。
目的に合わせてHstartアプリケーションを使用してください。これをチェックしてください http://www.ntwind.com/software/hstart.html
過去にこれを実行しなければならなかったとき、サーバーをスタートアップフォルダー内のスクリプトを使用して自動ログインするように設定しました。スクリプトは、実行する必要のあるプログラムを起動し、画面をロックします。
画面をロックするには、スクリプトに次のコードを含めます。
rundll32.exe user32.dll,LockWorkStation
問題のユーザー(適切に構成されたユーザー)に バッチジョブとしてログオン 権限を与える必要があります。次に、起動時にそれを実行します。そうすれば、最初から対話型ログオンを行う必要がありません。
タスクスケジューラを使用して基本タスクを作成し、トリガーとして[コンピューターの起動時]を選択します。
アプリケーションがデスクトップと対話しない限り、これは問題なく機能するはずです。
アプリが失敗した場合にアプリを再起動するなどの詳細オプションも構成できます。 .exeをサービスにラップする、またはサービスを作成することは、おそらくやり過ぎであり、不要です。
サービスとして実行します。 (コンピューターの起動時に開始する以外の)利点の1つは、クラッシュした場合に、サービスコントロールマネージャーを構成して、サービスを自動的に再起動できることです。