Удаленно удаляя ключи реестра - PullRequest
0 голосов
/ 20 сентября 2019

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

$inputPC = Read-Host 'Enter pc name: '

И это строка кода, с которой я пытаюсь удалить его:

Invoke-Command -ComputerName $inputPC -ScriptBlock {
    Remove-ItemProperty-Path 'HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run'
}

Вместо HKEY_LOCAL_MACHINE Я также пытался HKLM: и HKLM

Я получаю сообщение об ошибке:

Cannot find path 'HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run'
because it does not exist.
    + CategoryInfo          : ObjectNotFound: (HKEY_LOCAL_MACH...rentVersion\Run:String) [Remove-ItemProperty], ItemNotFoundException
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.RemoveItemPropertyCommand
    + PSComputerName        : clt64792

Я так понимаю, он не находит правильный путь, потому что он пытается удалить его в папках?Как мне получить доступ к ключам реестра так, как я хочу это сделать?

Ответы [ 2 ]

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

Я бы рекомендовал использовать API удаленного реестра для подобных вещей.

$reg = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey('LocalMachine', $inputPC)
$reg.DeleteSubKeyTree('Software\Microsoft\Windows\CurrentVersion\Run')

Обратите внимание, что служба "RemoteRegistry" должна быть запущена, чтобы это работало.

0 голосов
/ 20 сентября 2019

Пожалуйста, используйте Remove-Item вместо Remove-ItemProperty.Надеюсь, что это работает

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