如何配置性能監視器以創建不需要提升訪問權限的目錄?
我有一些性能計數器可以寫入預設位置 (
%SYSTEMDRIVE%\Perflogs
) 中的 CSV 文件。它創建的目錄是“特殊的”。當我嘗試瀏覽它們時,資源管理器抱怨我可以點擊“繼續”,然後我不再遇到使用資源管理器瀏覽目錄的問題。
但是,如果我嘗試通過未提升的 cmd shell 訪問目錄,我會得到 ACCESS_DENIED。使用提升的 cmd,我可以毫無問題地訪問數據文件。
icacls 報告有關目錄的資訊(在我瀏覽它之前)
MEMTEST2_20190724-000004 NT AUTHORITY\SYSTEM:(OI)(CI)(F) BUILTIN\Administrators:(OI)(CI)(F) BUILTIN\Performance Log Users:(OI)(R)
我正在執行的使用者已經在
Performance Log Users
.
- 當我“永久訪問此文件夾”時實際發生了什麼?
- 這個目錄實際上是如何防止非提升訪問的?
- 有沒有一種好方法可以在不重新配置性能計數器以寫入不同位置的情況下“取消保護”目錄?
- 我閱讀了這個答案,其中描述瞭如何創建事件偵聽器以在計數器啟動時取消保護目錄。難道沒有別的辦法了嗎?
此行為是由使用者帳戶控制引起的:即使您屬於管理員組,您執行的程序(包括 Windows 資源管理器和 CMD)實際上也沒有管理權限,您必須使用“以管理員身份執行”命令明確請求它們; 但是,這不能為 Explorer 本身完成,因為它一直在執行,因此你不能執行另一個被提升的實例(除非你先殺死它,從而失去你的外殼;這可以做到,但它需要笨拙變通方法)。
但是,Windows 資源管理器本身知道 UAC 的工作原理。因此,當您嘗試訪問只有管理員有權訪問的文件夾並且它檢測到您是管理員的成員但它沒有在提升模式下執行時,它會嘗試提供幫助並詢問您是否要“永久訪問”文件夾; 如果您點擊
Continue
顯式授予您的使用者帳戶的 ACE,則會將其添加到該文件夾:這允許您直接訪問該文件夾,而不是依賴您的管理權限,從而繞過 UAC。我發現令人費解的是,這是 UAC 和 Explorer 的標準(但有爭議的)行為,但它僅在涉及管理權限時才會發生;如果您因為屬於可以訪問該文件夾的普通(非管理員)組而有權訪問該文件夾,那麼 UAC 根本不應該參與其中。
除非就 UAC 而言,Windows 將“Performance Log Users”組視為“Administrators”組,因此需要提升才能實際使用其成員資格;如果是這種情況,這對我來說是新聞,我在任何地方都找不到它的引用。