我正在嘗試以系統身分執行(PoSh)腳本(即在啟動時,透過 SCCM 或其他方式),該腳本需要讀取一些受保護的註冊表項,但它看不到它們。
普通用戶無權查看密鑰。 (以 Mozilla 鍵為例,但「Tree」節點下方可以有幾十個。)
PS C:\> whoami
contoso\testuser
PS C:\> $KeyPath = "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree\Mozilla"
PS C:\> $Key = Get-Item $KeyPath
Get-Item : Requested registry access is not allowed.
管理員使用者可以查看(但不能更改)金鑰:
PS C:\> whoami
LocalComputer\administrator
PS C:\> $KeyPath = "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree\Mozilla"
PS C:\> Get-Item $KeyPath
Hive: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree
Name Property
---- --------
Mozilla SD : {1, 0, 4, 140...}
但 SYSTEM 帳號看不到任何內容:
PS C:\> whoami
nt authority\system
PS C:\> $KeyPath = "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree\Mozilla"
PS C:\> Get-Item $KeyPath
Get-Item : Cannot find path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree\Mozilla'
because it does not exist.
SYSTEM 對登錄項目和父項具有完全控制權。 管理員看到的內容(有權限)。這就是 SYSTEM 在註冊表中看到的內容。
SYSTEM怎麼看不到呢?如何透過啟動腳本(或其他系統活動)讀取此密鑰?
謝謝。
編輯:據我所知,情況就是這樣全部Win10 1809+,以及不是只是一台機器。