SetServiceObjectSecurity 函式 (winsvc.h)

[SetServiceObjectSecurity 可用於需求一節中指定的操作系統。 它在後續版本中可能會變更或無法使用。 請改用 SetNamedSecurityInfo 函式。]

SetServiceObjectSecurity 函式會設定服務對象的安全性描述元

語法

BOOL SetServiceObjectSecurity(
  [in] SC_HANDLE            hService,
  [in] SECURITY_INFORMATION dwSecurityInformation,
  [in] PSECURITY_DESCRIPTOR lpSecurityDescriptor
);

參數

[in] hService

服務的句柄。 OpenService 或 CreateService 函式會傳回此句柄。 此句柄所需的存取權取決於 dwSecurityInformation 參數中指定的安全性資訊。

[in] dwSecurityInformation

指定要設定之安全性描述符的元件。 此參數可以是下列值的組合。 請注意, SetServiceObjectSecurity 未處理的旗標將會以無訊息方式忽略。

意義
DACL_SECURITY_INFORMATION
設定物件的 DACL) (任意存取控制清單hService 指定的句柄必須具有WRITE_DAC存取權,否則呼叫進程必須是 對象的擁有者。
GROUP_SECURITY_INFORMATION
設定物件 (SID) 的主要群組 安全組 標識碼。 hService 指定的句柄必須具有WRITE_OWNER存取權,否則呼叫進程必須是 對象的擁有者。
OWNER_SECURITY_INFORMATION
設定物件的擁有者 SID。 hService 指定的句柄必須具有WRITE_OWNER存取權,或者呼叫進程必須是對象的擁有者,或啟用SE_TAKE_OWNERSHIP_NAME許可權。
SACL_SECURITY_INFORMATION
設定 物件的系統存取控制清單 (SACL) 。 hService 指定的句柄必須具有ACCESS_SYSTEM_SECURITY存取權。

若要取得ACCESS_SYSTEM_SECURITY存取權

  1. 在呼叫端的目前存取令牌中啟用SE_SECURITY_NAME許可權
  2. 開啟ACCESS_SYSTEM_SECURITY存取句柄。
  3. 停用許可權。

[in] lpSecurityDescriptor

包含新安全性資訊 之SECURITY_DESCRIPTOR 結構的指標。

傳回值

如果函式成功,函式會傳回非零。

如果函式失敗,它會傳回零。 若要取得擴充的錯誤資訊,請呼叫 GetLastError

服務控制管理員可以設定下列錯誤碼。 服務控制管理員所呼叫的登錄函式可以設定其他錯誤碼。

傳回碼 Description
ERROR_ACCESS_DENIED
指定的句柄未以必要的存取權開啟,或者呼叫進程不是 對象的擁有者。
ERROR_INVALID_HANDLE
指定的句柄無效。
ERROR_INVALID_PARAMETER
指定的安全性資訊或安全性描述元無效。
ERROR_SERVICE_MARKED_FOR_DELETE
指定的服務已標示為要刪除。

備註

SetServiceObjectSecurity 函式會根據 lpSecurityDescriptor 緩衝區中指定的資訊,設定服務物件之安全性描述元的指定部分。 此函式會根據 dwSecurityInformation 參數中設定的旗標,取代與服務對象相關聯的任何或所有安全性資訊,並受限於呼叫 程式的訪問許可權。

建立服務時,服務控制管理員會將預設的安全性描述元指派給服務物件。 若要擷取服務對象的安全性描述元複本,請呼叫 QueryServiceObjectSecurity 函式。 如需服務對象預設安全性描述項的描述,請參閱 服務安全性和訪問許可權

請注意,授與特定存取權給不受信任的使用者 (,例如SERVICE_CHANGE_CONFIG或SERVICE_STOP) ,可讓他們干擾服務的執行,並可能允許他們以LocalSystem帳戶執行應用程式。

規格需求

需求
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限傳統型應用程式]
目標平台 Windows
標頭 winsvc.h (包括 Windows.h)
程式庫 Advapi32.lib
Dll Advapi32.dll

另請參閱

CreateService

低階 存取控制

低階 存取控制 函式

OpenService

QueryServiceObjectSecurity

SECURITY_DESCRIPTOR