首頁 > 後端開發 > C++ > 主體

非管理員使用者如何用 C 啟動和停止 Windows 服務?

Barbara Streisand
發布: 2024-10-25 04:07:28
原創
982 人瀏覽過

How Can Non-Administrator Users Start and Stop Windows Services in C  ?

在沒有管理員權限的情況下從應用程式啟動Windows 服務(C )

問題:

問題:

問題:

問題:
  1. 問題:
  2. 問題:
<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>
登入後複製
    問題:
  1. 問題:
<code class="pre">PSECURITY_DESCRIPTOR sd;

if (!ConvertStringSecurityDescriptorToSecurityDescriptor(sddl, SDDL_REVISION_1, &amp;sd, NULL))
{
   fail();
}

if (!SetServiceObjectSecurity(service, DACL_SECURITY_INFORMATION, sd))
{
   fail();
}</code>
登入後複製

問🎜>
<code class="pre">L"(A;;RPWP;;;IU)"                           
  // added permissions: start service, stop service for interactive users</code>
登入後複製
如何使用者可以在不需要管理員權限的情況下從非管理員應用程式啟動或停止Windows 服務嗎?

答案:授予非管理員使用者此功能要啟動和停止 Windows 服務,請修改服務權限。理想情況下,此程序應在服務安裝期間執行。 使用以下步驟:取得服務句柄:使用下列指令開啟目標服務的句柄: WRITE_DAC 權限。 建立安全描述符(SDDL): 建構一個SDDL 字串,指定個別使用者群組所需的權限,例如允許互動式使用者啟動服務: 轉換並設定SD: 將SDDL 字串轉換為安全描述符並使用SetServiceObjectSecurity 函數將其設定在服務物件上: 要授予非管理員使用者停止服務的權利,請將WP 權限包含在SDDL 字串中:請參閱Wayne Martin 的部落格文章以取得其他SDDL 程式碼服務權利。

以上是非管理員使用者如何用 C 啟動和停止 Windows 服務?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!