Доступ ко всем реестрам пользователей с помощью службы удаленного реестра - PullRequest
0 голосов
/ 01 февраля 2019

В настоящее время я работаю над инструментом PowerShell, который считывает данные из реестра удаленно через службу удаленного реестра.Когда пользователь входит в систему, данные, с которых я читаю, находятся в HKCU\Software\.Очевидно, что когда компьютер имеет несколько учетных записей, HKCU не будет точно отражать всех пользователей.Есть ли динамический способ прохождения всех пользователей на компьютере и доступа к их реестрам?

В настоящее время в PowerShell я делаю следующее:

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

Как бы я могиспользовать подобный код для обхода всех пользователей, чтобы получить нужные данные, которые я ищу?

Извините, если это не очень хорошо объяснено, и если мне нужно будет дать некоторые пояснения.

1 Ответ

0 голосов
/ 01 февраля 2019

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 файл после того, как вы закончите.

...