2016-10-20 5 views
1

Я видел много примеров в сети о получении удаленного реестра, но я хочу проверить перенаправление папок для зарегистрированных пользователей, а не для пользователя, которым я запускаю сценарий.Получить удаленный реестр для зарегистрированного пользователя

Возможно ли это с помощью PowerShell? До того, как я присоединился к этой компании, их ИТ были переданы на аутсорсинг, и весь AD/GPO все это большой большой беспорядок. Некоторые пользователи перенаправляются, а некоторые не так, я хочу проверить, кто имеет перенаправление, без необходимости физически переходить на каждый компьютер.

$reg = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey('CurrentUser','10.0.0.113') 
$regkey = $reg.OpenSubKey("Software\\Microsoft\\Windows\CurrentVersion\\Explorer\\User Shell Folders") 
$regkey.GetValue("Personal") 

Я пробовал это, но снова показываю только информацию об учетной записи администратора, которую сценарий работает как.

+0

В этом сценарии я думаю, что вы хотите посмотреть в народы NTUser.dat (этот hkey текущий пользователь для этого пользователя), тогда не имеет значения, кто в данный момент зарегистрировался. http://www.adminarsenal.com/admin-arsenal-blog/modifying-the-registry-of-another-user/ Знаете, я думаю, что лучше всего, что пользователь не был зарегистрирован в тот момент, или что вы делаете копия NTUser.dat – Kage

+0

Также см. здесь: http://stackoverflow.com/questions/11013466/loading-ntuser-dat-with-powershell –

ответ

1

Возможно, но потребуется finding out who is currently logged in, затем loading their ntuser.dat file into the registry.

$computer = '...' 
$qry = 'SELECT * FROM Win32_Process WHERE Name="explorer.exe"' 
$key = 'Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders' 

$username = (Get-WmiObject -Computer $computer -Query $qry).GetOwner().User 

Invoke-Command -Computer $computer -ScriptBlock { 
    & reg load "HKU\foo C:\Users\$using:username\ntuser.dat" | Out-Null 
    (Get-ItemProperty "HKU:\foo\$using:key").Personal 
    & reg unload 'HKU\foo' | Out-Null 
} 

Более простой подход может быть с помощью сценария входа в систему, чтобы записать информацию в файл (либо на компьютере пользователя или центральной доли), так что вы можете собрать информацию оттуда:

$key = 'Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders' 
$output = "\\server\share\$env:USERNAME.txt" 

Get-ItemProperty "HKCU:\$key" | Select-Object -Expand Personal | 
    Set-Content $output 
Смежные вопросы