Windows XPEサービスのインストール-CreateService時間にセキュリティを設定する方法は?

StackOverflow https://stackoverflow.com/questions/2178886

質問

CreateServiceを使用して、Windows XPEにWindowsサービスをインストールしています。管理者のみがサービスを開始/停止/一時停止/再開できるように、物事をセットアップしたいと思います。

今、私は以下を使用してサービスをインストールします。

  schService = CreateService(schSCManager,
     ServiceName, 
     ServiceDisplayName, // service name to display
     SERVICE_ALL_ACCESS, // desired access 
     SERVICE_WIN32_OWN_PROCESS, // service type 
     SERVICE_AUTO_START, // start type 
     SERVICE_ERROR_NORMAL, // error control type 
     binaryPathName, // service's binary (this program)
     NULL, // no load ordering group 
     NULL, // no tag identifier 
     NULL, // no dependencies
     NULL, // LocalSystem account
     NULL); // no password

また、サービスは、Powerusers Groupのメンバーがサービスを開始および停止できるように、セキュリティで終了します。 SC SDShowを使用してセキュリティ記述子を調べることができることを理解しました。また、私たちにとって正しいことをするSDDLラインを作成しました。

また、Win XPEインストールにはSc.exeバイナリがないことがわかったので、この特定のシステムをセットアップするために実際に使用することはできません。

ですから、私が知っておくべきことは、私が使用する必要があるAPIとは何か、CreateServiceコールを行う頃にこのサービスにセキュリティ記述子を設定することです。私はWindows Security APIに完全に慣れていないので、どこから始めればいいのかわかりません。

更新:回答はSetServiceObjectSecurity(以下)です。次の質問:SecurityDescriptorをセットアップする最良の方法は何ですか?デフォルトの記述子を取得してから変更するのが最善ですか?または、まったく新しい記述子を作成する必要がありますか?

役に立ちましたか?

解決

私はWindows XPが埋め込まれていることにはあまり精通していませんが、通常はあなたが使用した後のものを達成するでしょう SetServiceObjectSecurity 関数。 createServiceから取得したハンドルを使用し、必要なものに一致するセキュリティ記述子を構築します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top