2011-07-19 16 views
0

管理者として実行されているサービスのみを停止/開始するアプリケーションがあります。Windows 7停止/開始サービス

通常のユーザーとして実行されているアプリケーションからサービスを停止/開始することはできますか?確かにそれは?私は:: OpenService()呼び出しでアクセスフラグの異なる組み合わせを試しましたが、有効なハンドルを取得できません。 SERVICE_INTERROGATEを使用すると有効なハンドルが返されますが、サービスを停止/開始するためにControlService()を呼び出すことはできません。 SERVICE_PAUSE_CONTROLを指定すると、NULLハンドルを受け取ります。

私は実際にサービスアプリケーションを所有しています。セキュリティ要件を変更するためにサービスアプリケーション自体に行う必要があることはありますか?

アップデート:以下のコードを使用して、自分のサービスのセキュリティ設定を変更することができます。唯一の問題は、特定のユーザー名を知る必要があることです。 BuildExplicitAccessWithName()がすべてのユーザーにアクセスを許可する方法があるかどうかを知っていますか?

BuildExplicitAccessWithName(& EA、TEXT( "GUEST")、 SERVICE_START | SERVICE_STOP | READ_CONTROL | DELETE、 SET_ACCESS、NO_INHERITANCE)。

乾杯 ポール

+0

おそらく関連:[管理者以外のユーザーアカウントからWindowsサービスを開始/停止する](http://stackoverflow.com/questions/4436558/start-stop-a-windows-service-from-a-non- administrator-user-account) –

+0

ありがとうございました。残念ながら、実際のユーザーのアカウント設定を変更することにもっと関心があったため、役に立たなかった。 – SparkyNZ

+0

あなたは 'OpenSCManager()'にどのような値を渡していますか? –

答えて

0

は、すべてのソート - 私は「みんな」を使用し、これは仕事をしてくれました。

関連する問題