Итак, некоторое время назад я совершил ошибку, загрузив свой Windows SDK на свой диск F :, который я больше не использую, и теперь я пытаюсь выполнить чистую переустановку SDK на свой диск C :. Перед этим я хочу полностью очистить свои файлы реестра от всего, что упоминает мой диск F :, потому что у меня были проблемы с установкой, потому что система продолжает искать диск F :, но не находит его.
Я погуглил эту проблему и нашел кого-то, кто сказал, что наиболее подходящей командой для использования здесь является использование PowerShell, а затем использование с ней следующей команды:
Get-ChildItem -path HKLM:\ -Recurse | where { $_.Name -match 'F:'} | Remove-Item -Force
Однако после записи этой команды в PowerShell (я запускал ее как администратор) я получил следующее сообщение об ошибке:
Get-ChildItem : Requested registry access is not allowed.
At line:1 char:1
+ Get-ChildItem -path HKLM:\ -Recurse | where { $_.Name -match 'F:'} | ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : PermissionDenied: (HKEY_LOCAL_MACHINE\SAM\SAM:String) [Get-ChildItem], SecurityException
+ FullyQualifiedErrorId : System.Security.SecurityException,Microsoft.PowerShell.Commands.GetChildItemCommand
Посоветуйте, пожалуйста, что мне нужно делать.
По умолчанию только System
имеет доступ к HKEY_LOCAL_MACHINE\SAM\SAM
. Если вы необходимость для поиска в каких-либо областях, на которые у вас нет разрешения, вам необходимо предоставить доступ к своей учетной записи, хотя редко когда возникает необходимость заходить в эти области. Как сказал Мэтт, используйте -ErrorAction SilentlyContinue
, чтобы подавить эти ошибки.
Запустить от имени администратора? Даже при этом есть некоторые вещи, которые вы не сможете увидеть. Возможно прихватить
-ErrorAction SilentlyContinue
. Однако F: может поймать больше, чем вы ожидаете. Я бы по крайней мере добавил-WhatIf
вRemove-Item