4

管理者として実行され、ポートでリッスンするサービスがあります。私のGUIプログラムは、管理者権限を必要とするアイテムについて管理者サービスと通信します。

サービスがまだ実行されていない場合は、開始する必要があります。GUIプログラムに管理者としてコマンドを実行させるにはどうすればよいですか?続行するかどうかをユーザーに尋ねられると思います。

Javaプログラムに非常によく適合するはずなので、CMDウィンドウに入力できるものがあることを望んでいます。続行するかどうかを尋ねるコマンドはrun-as-admin javaw my-service.jarどこにあるのかと思っています。run-as-admin

4

4 に答える 4

2

Windowsには、別のユーザーアカウントで実行可能ファイルを起動するために使用できるツール「runas」が含まれています。

次に、コマンドラインで次を使用します。

runas /user:Administrator "javaw -jar my-service.jar"

唯一の欠点は、パスワードを入力する必要があることです。runasコマンドの引数としてパスワードを指定することはできません。

于 2011-09-06T15:47:56.217 に答える
1

ここに問題があります。管理者以外のプロセスはサービスを開始できません。最も簡単な方法は、サービスが自動的に開始されるように調整することです。そのルートを取ることを強くお勧めします。

実行しようと考えているのは、に設定されたUACマニフェストを含むヘルパーアプリケーションを作成することです。その後、このヘルパーアプリはサービスを開始できます。これに伴う問題は、ログオンしているユーザーが管理者グループに属している必要があることですが、これが当てはまるとは保証できません。requestedExecutionLevelrequireAdministrator

全体として、サービスを自動的に開始することが優先されます。

于 2011-09-06T15:19:03.267 に答える
0

管理者としてバッチファイルを実行することはできません。そのファイルへのショートカットを作成してから、ショートカット「管理者として実行」にフラグを設定する必要があります。これが本当にやりたいことである場合。

デスクトップからこれを行うには、ショートカットを選択し、右クリックして[プロパティ]->[ショートカット]タブ->[詳細]ボタンを選択します。次に、[管理者として実行]チェックボックスをオンにします。

これをプログラムで行うには、MSIインストーラーによって作成されたショートカットに「管理者として実行」フラグを設定する方法を参照してください。

于 2011-09-06T15:21:14.403 に答える
0

これにはラッパーライブラリを使用します: http ://sourceforge.net/projects/wrapper/

公式ウェブサイトは現在ダイナミックDNSの問題に苦しんでいるようですので、ここにウェイバックアーカイブバージョンがあります。

コマンドライン(ひいてはJava)から、Javaアプリケーションをサービスとしてインストール、アンインストール、開始、および停止できます。

于 2011-09-06T15:16:27.123 に答える