いくつかの保護されたレジストリ キーを読み取る必要がある (PoSh) スクリプトを SYSTEM として (つまり、起動時、SCCM 経由、またはその他の方法で) 実行しようとしていますが、それらのキーが認識されません。
通常のユーザーにはキーを表示する権限がありません。(例として Mozilla キーを使用しますが、「ツリー」ノードの下には数十個のキーが存在する可能性があります。)
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 はレジストリ キーと親キーを完全に制御します。 管理者が見る内容(権限あり)。これは、システムがレジストリで参照するものです。
システムがそれを認識できないのはなぜでしょうか? 起動スクリプト (またはその他のシステム アクティビティ) を介してこのキーを読み取るにはどうすればよいのでしょうか?
ありがとう。
編集:私が知る限り、これは全てWin10 1809+、およびないたった 1 台のマシン。