變更可保護物件上的存取安全性
印表機、服務、登錄機碼、DCOM 應用程式和 WMI 命名空間都是安全性實體物件。 安全性實體物件的存取權受到 安全性描述元保護,指定具有存取權的使用者。 從 Windows Vista 開始,許多安全性實體物件都有取得或設定安全性描述元的方法。 使用適當的許可權,您可以在安全性實體對象上讀取或變更安全性描述項。 使用這些方法,您可以控制哪些用戶帳戶或群組可以存取印表機、服務、WMI 命名空間或其他物件。 如需安全性描述元及其在 WMI 中使用的詳細資訊,請參閱 WMI 安全性實體物件的存取。
本主題將討論下列各節:
對象和安全性描述元方法
下列清單包含可保護的物件的各種方法,以便讓您讀取或變更安全性描述元:
WMI 命名空間
提供者可以建立安全性,只允許特定群組存取WMI 命名空間中的數據。 命名空間安全性是由 __SystemSecurity 類別上的方法所控制。 從 Windows Vista 開始,GetSecurityDescriptor 和 SetSecurityDescriptor 方法會傳回並寫入 __SecurityDescriptor 物件。 如需詳細資訊,請參閱 設定命名空間安全性描述元。
登錄機碼
從 Windows Vista 開始,您可以保護登錄機碼,讓未經授權的使用者無法變更登錄機碼。 StdRegProv 類別具有 GetSecurityDescriptor 和 SetSecurityDescriptor 方法。 這些方法會傳回並寫入 Win32_SecurityDescriptor 物件。
印表機
從 Windows Vista 開始,您可以使用 GetSecurityDescriptor 和 SetSecurityDescriptor 方法來保護 Win32_Printer 類別實例的存取。 這些方法會傳回並寫入 Win32_SecurityDescriptor 物件。
服務業
從 Windows Vista 開始,您可以使用 GetSecurityDescriptor 和 SetSecurityDescriptor 方法來保護 Win32_Service 類別實例的存取。 這些方法會傳回並寫入 Win32_SecurityDescriptor 物件。
DCOM 應用程式
DCOM 應用程式實例有數個安全性描述元。 從 Windows Vista 開始,請使用 Win32_DCOMApplicationSetting 類別的方法來取得或變更各種安全性描述元。 安全性描述元會以 Win32_SecurityDescriptor 類別的實例傳回。
若要取得或變更組態許可權,請呼叫 GetConfigurationSecurityDescriptor 或 SetConfigurationSecurityDescriptor 方法。
若要取得或變更訪問許可權,請呼叫 GetAccessSecurityDescriptor 或 SetAccessSecurityDescriptor 方法。
若要取得或變更啟動和啟用許可權,請呼叫 GetLaunchSecurityDescriptor 或 SetLaunchSecurityDescriptor 方法,
檔案
GetSecurityDescriptor 和 SetSecurityDescriptor 方法位於 Win32_LogicalFileSecuritySetting 類別中,而不是在 CIM_DataFile 類別中。
股票
GetSecurityDescriptor 和 SetSecurityDescriptor 方法位於 Win32_LogicalShareSecuritySetting 類別中,而不是在 Win32_Share 類別中。
注意
在呼叫 SetSecurityDescriptor 方法時,未指定新的 安全性存取控制清單 (SACL),則目標安全性實體物件上的安全性描述元 SACL 會設定為 NULL,讓先前的 SACL 設定不會保存。
在安全性描述元格式之間轉換
安全性描述元是一般必須在C++中建立和變更的複雜二進位位元組陣列。 使用其中一個 Get 方法取得安全性描述元之後,Win32_SecurityDescriptorHelper 類別會提供方法,將安全性描述元轉換成 安全性描述元定義語言 (SDDL) 或 Win32_SecurityDescriptor 實例。
您可以在 Win32_SecurityDescriptor 實體或 SDDL 中更輕鬆地編輯存取控制清單 (ACL)。 如需 WMI 中安全性描述項目的結構和使用的詳細資訊,請參閱 WMI 安全性描述元物件。
在 C++ 或 C# 中,使用轉換函式將二進位安全性描述元轉換成 安全性描述元定義語言 (SDDL)。 若要修改C++應用程式中的安全性描述元值,請使用 ConvertSecurityDescriptorToStringSecurityDescriptor 和 ConvertStringSecurityDescriptorToSecurityDescriptor。
安全性問題
建議您謹慎地變更安全性描述元,以免損害對象的安全性。 請注意,任意訪問控制清單 (DACL) 中的存取控制項目順序可能會影響存取安全性。 如需詳細資訊,請參閱 DACL 中的ACE 順序。
相關主題