執行特殊許可權作業
特殊許可權作業需要SeLoadDriverPrivilege (腳本 API 常數) 中的 wbemPrivilegeLoadDriver,這是載入設備磁碟機的帳戶必須啟用的許可權。 您無法透過 WMI 將許可權新增至系統管理員或使用者,您只能啟用帳戶已有的許可權。 如需許可權清單,請參閱 Privilege_Constants。
根據預設,電腦上的本機使用者可以從 WMI 存放庫讀取靜態資料、寫入提供者所提供的實例,以及執行提供者方法,除非提供者強制執行自己的特殊安全性需求。 只有系統管理員可以 連線到遠端電腦、變更安全性描述項,或變更靜態 WMI 存放庫資料,例如 WMI 類別定義。 遠端連線會啟用擁有權限。 如需詳細資訊,請參閱 保護遠端 WMI 連線。
C++ 的許可權常數不同于自動化語言所使用的常數,例如 Visual Basic。 腳本必須使用常數的值,而不是名稱。 如需詳細資訊,請參閱 使用 C++ 執行特殊許可權作業 或使用 VBScript 執行特殊許可權作業。
使用 WMI 時拒絕存取錯誤的常見原因是缺少啟用的作業許可權,例如取得 所有Win32_NTEventlogFile實例。 若未啟用 SeSecurity 許可權,您就無法存取安全性記錄檔。
下列 VBScript 程式碼範例示範如何在 Moniker 字串中設定 SeSecurity 許可權。 在 Moniker 中使用時,括弧中的許可權名稱會卸載初始 「Se」。 如需詳細資訊,請參閱 建構 Moniker 字串。
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate,(Security)}!\\" _
& strComputer & "\root\cimv2")
Set colFiles = objWMIService.ExecQuery _
("Select * from Win32_NTEventLogFile " _
& "Where LogFileName='Security'")
For Each LogFile in colFiles
Wscript.Echo LogFile.NumberOfRecords
Next
相關主題