Вы должны войти, чтобы создавать сообщения и темы.

Доступ запрещен

Всем привет! Сделал скрипт, который в один клик добавляет три ключа в реестр, и, с помощью .exe-шника от NotepadReplacer, перенаправляет все запросы со стандартного блокнота на Sublime Text. При повторном клике на скрипт, он удаляет эти три ключа и при запуске блокнота снова запускается стоковый.
Проблема в том, что при попытке удалить эту ветку, он выдает ошибку доступа. Однако, при удалении этой же ветки, уровнем ниже, все удаляется. При этом вручную эта ветка удаляется. Можно каким-то образом удалить заблокированную ветку с помощью скрипта?

сам скрипт

Const HKLM = &H80000002

strComputer = "."

Set objRegistry = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")
set fso = CreateObject("Scripting.FileSystemObject")
set co = CreateObject("WScript.Shell")
Set key = CreateObject("WScript.Shell")

exe = "sublime_text.exe"
scrptdr = Wscript.ScriptFullName
scriptdir = replace(WScript.ScriptFullName,WScript.ScriptName,"")
strKeyPath = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe"
strName = "Debugger"

objRegistry.GetStringValue HKLM,strKeyPath,strName,strValue

if IsNull(strValue) then
key.RegWrite "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe\Debugger", scriptdir & "NotepadReplacer.exe"
key.RegWrite "HKLM\SOFTWARE\Binary Fortress Software\Notepad Replacer\Target", scriptdir & exe
key.RegWrite "HKLM\SOFTWARE\WOW6432Node\Binary Fortress Software\Notepad Replacer\Target", scriptdir & exe
fso.MoveFile scrptdr, CurrentDirectory & "Notepad replaced.vbs"
Wscript.Echo "Notepad replaced"
else
key.RegDelete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe\Debugger"
key.RegDelete "HKLM\SOFTWARE\Binary Fortress Software\Notepad Replacer\"
key.RegDelete "HKLM\SOFTWARE\WOW6432Node\Binary Fortress Software\Notepad Replacer\"
fso.MoveFile scrptdr, CurrentDirectory & "Notepad is standard.vbs"
Wscript.Echo "Notepad ia standard"

end if

 

Добрый🖐.
Если ветка не пуста, то он не удалит командой СкопированоRegDelete, тут нужен рекурсивный метод удаления.
Тебе нужно это, примеры там есть.

Лайкнули Миша и Наурызбай
МишаНаурызбай
«Любой дурак может знать. Дело в том, чтобы понять.» — Альберт Эйнштейн

Михаил, Вы уже столько раз Меня выручали. Спасибо большое!