管理者権限なしでアプリケーションから Windows サービスを開始する (C )
質問:
方法ユーザーは、管理者権限を必要とせずに、管理者以外のアプリケーションから Windows サービスを開始または停止できますか?
回答:
管理者以外のユーザーに権限を付与するにはWindows サービスを開始および停止するには、サービスのアクセス許可を変更します。このプロセスは、サービスのインストール中に実行するのが理想的です。
次の手順を使用します。
<code class="pre">wchar_t sddl[] = L"D:" L"(A;;CCLCSWRPWPDTLOCRRC;;;SY)" // default permissions for local system L"(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)" // default permissions for administrators L"(A;;CCLCSWLOCRRC;;;AU)" // default permissions for authenticated users L"(A;;CCLCSWRPWPDTLOCRRC;;;PU)" // default permissions for power users L"(A;;RP;;;IU)" // added permission: start service for interactive users ;</code>
<code class="pre">PSECURITY_DESCRIPTOR sd; if (!ConvertStringSecurityDescriptorToSecurityDescriptor(sddl, SDDL_REVISION_1, &sd, NULL)) { fail(); } if (!SetServiceObjectSecurity(service, DACL_SECURITY_INFORMATION, sd)) { fail(); }</code>
管理者以外のユーザーにもサービスを停止する権限を付与するには、SDDL 文字列に WP 権限を含めます。
<code class="pre">L"(A;;RPWP;;;IU)" // added permissions: start service, stop service for interactive users</code>
追加の SDDL コードについては、Wayne Martin のブログ エントリを参照してください。サービスの権利
以上が管理者以外のユーザーが C で Windows サービスを開始および停止するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。