EventAccessControl 函式 (evntcons.h)

新增或修改指定之提供者或會話的許可權。

語法

ULONG EVNTAPI EventAccessControl(
  [in] LPGUID  Guid,
  [in] ULONG   Operation,
  [in] PSID    Sid,
  [in] ULONG   Rights,
  [in] BOOLEAN AllowOrDeny
);

參數

[in] Guid

可唯一識別您要新增或修改其許可權的提供者或會話的 GUID。

[in] Operation

要執行的作業類型,例如,將 DACL 新增至會話的 GUID 或提供者的 GUID。 如需可能的值,請參閱 EVENTSECURITYOPERATION 列舉。

[in] Sid

您要授與或拒絕許可權之使用者或群組的安全性識別碼 (SID) 。

[in] Rights

您可以指定下列一或多個許可權:

意義
WMIGUID_QUERY
允許使用者查詢追蹤會話的相關資訊。 在會話的 GUID 上設定此許可權。
TRACELOG_CREATE_REALTIME
允許使用者啟動或更新即時會話。 在會話的 GUID 上設定此許可權。
TRACELOG_CREATE_ONDISK
允許使用者啟動或更新將事件寫入記錄檔的會話。 在會話的 GUID 上設定此許可權。
TRACELOG_GUID_ENABLE
允許使用者啟用提供者。 在提供者的 GUID 上設定此許可權。
TRACELOG_ACCESS_KERNEL_LOGGER
未使用。
TRACELOG_LOG_EVENT
允許使用者將事件記錄到追蹤會話,如果會話是以 SECURE 模式執行, (會話會在 EVENT_TRACE_PROPERTIES) 的 LogFileMode 成員中設定EVENT_TRACE_SECURE_MODE旗標。
TRACELOG_ACCESS_REALTIME
允許使用者即時取用事件。 在會話的 GUID 上設定此許可權。
TRACELOG_REGISTER_GUIDS
允許使用者註冊提供者。 在提供者的 GUID 上設定此許可權。

[in] AllowOrDeny

如果 為 TRUE,請將使用者權限授與會話或提供者;否則,拒絕許可權。 如果 Operation 值為 EventSecuritySetSACL 或 EventSecurityAddSACL,則會忽略此值。

傳回值

如果成功,則傳回ERROR_SUCCESS。

備註

根據預設,只有電腦的系統管理員、效能記錄使用者群組中的使用者,以及以 LocalSystem、LocalService、NetworkService 執行的服務,可以控制追蹤會話,並提供及取用事件資料。 只有具有以 LocalSystem 身分執行之系統管理許可權和服務的使用者,才能啟動和控制 NT 核心記錄器會話。

Windows Server 2003: 只有具有系統管理員許可權的使用者可以控制追蹤會話,並取用事件資料;任何使用者可以提供事件資料。

Windows XP 和 Windows 2000: 任何使用者都可以控制追蹤會話,並提供及取用事件資料。

如果用來控制會話的工具是從以 系統管理員身分開啟的 [命令提示字元] 視窗啟動,則具有系統管理員許可權的使用者可以控制追蹤會話。

若要授與受限制的使用者控制追蹤會話的能力,您可以將它們新增至效能記錄使用者群組,或呼叫此函式來授與他們許可權。 例如,您可以授與使用者 A 許可權來啟動和停止追蹤會話,並授與使用者 B 只查詢會話的許可權。

若要限制誰可以將事件記錄到會話,請參閱TRACELOG_LOG_EVENT許可權。

記錄檔上的 ACL 決定誰可以從記錄檔取用事件資料。 若要即時取用會話的事件,您必須授與使用者TRACELOG_ACCESS_REALTIME許可權,或使用者必須是效能記錄使用者群組的成員。

您也可以指定提供者的 GUID 來限制誰可以註冊提供者,以及誰可以啟用提供者。

需求

   
最低支援的用戶端 Windows Vista [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2008 [僅限傳統型應用程式]
目標平台 Windows
標頭 evntcons.h
程式庫 Windows 8.1 和 Windows Server 2012 上的 Sechost.lib;Windows 8.1 和 Windows Server 2012 R2 上的 Sechost.lib;Windows 8、Windows Server 2012、Windows 7、Windows Server 2008 R2、Windows Server 2008 和 Windows Vista 上的 Advapi32.lib
Dll Windows 8.1和 Windows Server 2012 上的 Sechost.dll;windows 8、Windows Server 2012、Windows 7、Windows Server 2008 R2、Windows Server 2008 和 Windows Vista 上的 Advapi32.dll

另請參閱

EventAccessQuery

EventAccessRemove