バッチ(CMD)ファイルの実行中に権限を昇格する際の問題
選択したサーバーでさまざまなことを確認するために使用するバッチ(CMD)ファイルをまとめました。以下に掲載されているのはほとんどすべてです(機密情報を除く)。適切なコマンドラインで起動された場合、バッチファイルは起動された日時の確認に進みます。この方法で私たちはそれを私たちのサーバーのSTARTUPフォルダに入れることができ、ログインするとそれが実行され、ユーザーが午前6時45分から午前7時30分までの営業日にログインすれば、特定のチェックが行われます。アプリが起動されるなど)。選択的に、適切なアプリはCOMPUTERNAME、USERNAME(以下のコードでは削除されています)などのような環境変数に基づいて実行されます。 実行する必要があるプロセスの1つに、権限の昇格が必要です(IISRESET)。これをバッチファイル内で実行するために、Mattが示した例(ありがとう)を使用しました。 https://stackoverflow.com/questions/7044985/how-can-i-auto-elevate-my-batch-file-so-that-it-requests-from-uac-admin-rights 。これは新しいトピックなので、私はそのスレッドに投稿したくはありませんでした。私が以下に提供するバッチファイルでは、それは現状のままで適切に動作します(ただし、保証は一切含まれていません)。しかし、次のように変更して「コメント」文字(二重コロン)を削除したとします。 :BEGIN If %COMPUTERNAME%==SERVER1 explorer.exe "c:\queue" :: If %COMPUTERNAME%==SERVER1 Goto CHECKPRIVILEGES If %COMPUTERNAME%==SERVER2 explorer.exe "c:\queue" :: If %COMPUTERNAME%==SERVER2 Goto CHECKPRIVILEGES :COMMON ...(に)... :BEGIN If %COMPUTERNAME%==SERVER1 explorer.exe "c:\queue" If %COMPUTERNAME%==SERVER1 Goto CHECKPRIVILEGES If %COMPUTERNAME%==SERVER2 explorer.exe "c:\queue" If %COMPUTERNAME%==SERVER2 Goto CHECKPRIVILEGES :COMMON …その場合、バッチファイルは正しく実行されません。 2行からコメントを削除すると、バッチファイルは変数を正しく評価しなくなりました(手動で実行した場合でもSTARTUPプロセスの一部として実行した場合でも)。バッチファイルに次のように記載されていますが。 If %COMPUTERNAME%==SERVER1 If %COMPUTERNAME%==SERVER2 …SERVER1に関連するコマンドは正しく実行されますが、SERVER2はSERVER1とSERVER2の両方に関連するコマンドを実行します。その後、バッチファイルは停止し、COMMONセクションのコマンドは実行されません。 …