Доступ ко всем реестрам пользователей с помощью службы удаленного реестра
В настоящее время я работаю над инструментом PowerShell, который читает данные из реестра удаленно через службу удаленного реестра. Когда пользователь входит в систему, данные, с которых я читаю, находятся в HKCU\Software\
, Очевидно, что когда компьютер имеет несколько учетных записей, HKCU не будет точно отражать всех пользователей. Есть ли динамический способ, которым я могу проходить через всех пользователей на компьютере и получать доступ к их реестрам?
В настоящее время я делаю следующее в PowerShell:
$KeyType = [Microsoft.Win32.RegistryHive]::CurrentUser
$BaseRegKey = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey($KeyType, $RemoteComputer)
$SoftwareKey = $BaseRegKey.OpenSubKey($SoftwarePathEnding)
Как я смогу использовать подобный код для циклического прохождения всех пользователей, чтобы получить нужные данные, которые я ищу?
Извините, если это не объясняется слишком хорошо, и если мне нужно будет дать некоторые разъяснения.
1 ответ
HKCU
это ярлык HKU\<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
файл после того, как вы сделали.