使用远程注册表服务访问所有用户注册表

时间:2019-01-31 23:05:33

标签: windows powershell registry remote-registry

我目前正在使用PowerShell工具,该工具可以通过远程注册表服务从注册表远程读取。用户登录后,我正在读取的数据位于HKCU\Software\中。显然,当一台计算机具有多个用户帐户时,HKCU将无法准确反映所有用户。有没有一种动态方式可以让我遍历计算机上的所有用户并访问其注册表?

当前,我在PowerShell中执行以下操作:

$KeyType = [Microsoft.Win32.RegistryHive]::CurrentUser
$BaseRegKey = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey($KeyType, $RemoteComputer)
$SoftwareKey = $BaseRegKey.OpenSubKey($SoftwarePathEnding)

我将如何使用类似的代码遍历所有用户以获得所需的正确数据?

很抱歉,如果这个解释不够好,是否需要澄清一下。

1 个答案:

答案 0 :(得分:4)

HKCUHKU\<User-SID>的快捷方式,其中用户配置文件中的ntuser.dat在登录时加载。要访问每个用户的注册表分支,您需要首先加载每个用户的ntuser.dat,例如通过reg load在远程主机上运行Invoke-Command

Invoke-Command -Computer 'hostname' -ScriptBlock {
    & reg load 'HKU\someuser' 'C:\Users\someuser\ntuser.dat'
}

完成后不要忘记reg unload文件。

相关问题