Невозможно сопоставить куст реестра HKU с powershell - PullRequest
1 голос
/ 23 сентября 2019

У меня есть вопрос относительно удаления из реестра HKU (HKEY_USERS).Если я запускаю это с powershell, я получаю ошибку:

Invoke-Command -ComputerName $inputPC -ScriptBlock { Remove-Item -Path 'HKU:\S-1-5-25\Software\Microsoft\Windows\CurrentVersion\RunOnce'}

Ошибка:

Cannot find drive. A drive with the name 'HKU' does not exist.
    + CategoryInfo          : ObjectNotFound: (HKU:String) [Remove-Item], DriveNotFoundException
    + FullyQualifiedErrorId : DriveNotFound,Microsoft.PowerShell.Commands.RemoveItemCommand
    + PSComputerName        : clt64792

Но если для HKU: я заменяю его, например, на HKLM:, это работаети удаляет ключ реестра, как я могу получить доступ к HKU?Я пробовал разные подходы к удалению разделов реестра и все они работают одинаково, но ни один из них не отображает раздел реестра HKU.

1 Ответ

1 голос
/ 23 сентября 2019

По умолчанию определены только следующие диски PowerShell, ссылающиеся на расположения реестра:

PS> Get-PSDrive -PSProvider Registry

Name           Used (GB)     Free (GB) Provider      Root                                                                                                           CurrentLocation
----           ---------     --------- --------      ----                                                                                                           ---------------
HKCU                                   Registry      HKEY_CURRENT_USER                                                                                                             
HKLM                                   Registry      HKEY_LOCAL_MACHINE                                                                                                            

То есть только диски HKCU: и HKLM: существуют по умолчанию .


Чтобы получить доступ к ключам в кусте HKEY_USERS, у вас есть два варианта:

  • Определить пользовательский HKU PowerShell диск с помощью New-PSDrive, как предлагает theadzik в комментарии, хотя это может не стоить (в вашем случае вам придется сделать это внутри блока скрипта передано в Invoke-Command):
# Define drive HKU:
New-PSDrive -PSProvider Registry -Name HKU -Root HKEY_USERS
# Now you can use HKU:\... paths
  • Использовать префикс провайдера registry:: с собственным путем реестра , что на 1034 * проще для ad-hocиспользуйте :
# E.g.
Get-ChildItem registry::HKEY_USERS\.DEFAULT

В контексте вашей команды:

Invoke-Command -ComputerName $inputPC -ScriptBlock { 
  Remove-Item 'registry::HKEY_USERS\S-1-5-25\Software\Microsoft\Windows\CurrentVersion\RunOnce'
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...