0

Я пишу модуль PowerShell для поиска данных, которые каждый пользователь, зарегистрировавшийся на компьютере в какой-то момент, может иметь в своем каталоге в HKEY_USERS. Моя первая мысль была установить HKEY_USERS, найти способ сохранить SID каждого пользователя в строковой переменной, а затем цикл по всем папкам, как так:В PowerShell, как я могу извлечь файл из HKEY_Users из всех SID?

dir HKU\<STRING VARIABLE HOLDING SID>\Software\MyApp\Mydesireddata

Есть ли способ, я могу избежать того, чтобы перебрать SID (потому что я не буду их заранее знать) и извлекать информацию о файле из каждого SID в системе, помня, с какого SID он пришел?

EDIT: Вот пример ключа я пытаюсь извлечь из SID каждого пользователя с помощью Regedit (VNCViewer в EulaAccepted)

enter image description here

+1

Этот вопрос не имеет смысла. В реестре нет файлов. –

+0

Есть данные, которые я пытаюсь извлечь из каждого каталога в HKEY_USERS. Если вы устанавливаете HKEY_USERS, вы можете получить доступ к этим данным из PowerShell. – AlwaysQuestioning

+0

Имя ключа реестра буквально 'mydesiredfile.txt'? Можете ли вы опубликовать скриншот простого раздела реестра в 'regedit'? –

ответ

3

Использование Get-ChildItem для получения каждого конкретного пользователя подраздел:

$UserHives = Get-ChildItem Registry::HKEY_USERS\ |Where-Object {$_.Name -match '^HKEY_USERS\\S-1-5-21-[\d\-]+$'} 

Затем цикл по каждой записи и получить желаемое значение реестра:

foreach($Hive in $UserHives) 
{ 
    # Construct path from base key 
    $Path = Join-Path $Hive.PSPath "SOFTWARE\MyApp\DataKey" 

    # Attempt to retrieve Item property 
    $Item = Get-ItemProperty -Path $Path -Name ValueName -ErrorAction SilentlyContinue 

    # Check if item property was there or not  
    if($Item) 
    { 
     $Item.ValueName 
    } 
    else 
    { 
     # doesn't exist 
    } 
} 
+0

Отлично. Кажется, это работает так, как я предполагал. Прежде чем я приму в качестве ответа, есть ли способ сделать это без цикла для повышения эффективности? Я ищу тот же ItemProperty во всех папках SID, поэтому мне любопытно, могу ли я сделать один обход, если на уровне родительского каталога этих SID-папок. – AlwaysQuestioning

 Смежные вопросы

  • Нет связанных вопросов^_^