1

アプリケーションを Windows サービスとして開始するためのバッチ ファイルがあります。それはstart.batと呼ばれます

@ECHO off
START c:\Ruby193\bin\ruby c:\Ruby193\bin\thin start -R c:\coolapp\config.ru -p 4321 -a localhost -e production

私の課題は、このプログラムが管理者権限で「管理者として実行」されている場合にのみ正しく実行されることです。そこで、このスクリプトが実際に管理者権限で実行されているかどうかを確認し、管理者として実行されている場合にのみ実行する行を追加したいと思います。

スクリプト内からそれを行うにはどうすればよいですか?

4

3 に答える 3

3

このようなものが必要かもしれません:

set isadmin=0
whoami /all | findstr /c:" S-1-16-12288 ">nul && set isadmin=1

その結果、シェルが管理者として実行されたかどうかに応じて、%isadmin%変数がどちらか1になるはずです。0

これは、古いバージョンの Windows で必ずしも利用できるとは限らないユーティリティが存在することを前提としていwhoamiますが、Windows Vista 以降には含まれていたと思います。

于 2013-06-03T18:40:50.537 に答える
0

おそらく、スクリプトを VBScript に変換する方が簡単でしょう。そうすれば、管理者権限を簡単に確認したり、スクリプトを管理者に昇格させることさえできます。

VBScript でチェックを行う方法については、こちらを参照してください: VBScript: スクリプトに管理者権限があるかどうかを確認する

于 2013-06-03T18:28:08.807 に答える