管理者として実行されているサービスのみを停止/開始するアプリケーションがあります。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)。
乾杯 ポール
おそらく関連:[管理者以外のユーザーアカウントからWindowsサービスを開始/停止する](http://stackoverflow.com/questions/4436558/start-stop-a-windows-service-from-a-non- administrator-user-account) –
ありがとうございました。残念ながら、実際のユーザーのアカウント設定を変更することにもっと関心があったため、役に立たなかった。 – SparkyNZ
あなたは 'OpenSCManager()'にどのような値を渡していますか? –