RegDelete не может удалить ключ реестра в WSH 5.7

На основе рекомендаций, предоставленных на http://www.tweakguides.com/VA_4.html, чтобы Чтобы Windows Vista не могла «разумно» переставлять форматы столбцов в проводнике Windows, я написал сценарий, чтобы немного автоматизировать этот процесс.

Dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")


'Remove the "filthy" reg keys first.
regKey = "HKCU\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\BagMRU\"


WScript.Echo "Deleting " & regKey & VbCrLf
WshShell.RegDelete regKey

regKey = "HKCU\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags\"

WScript.Echo "Deleting " & regKey & VbCrLf
WshShell.RegDelete regKey


'Then recreate a clean Bags key, with sub-keys and FolderType value.
regKey = "HKCU\Software\Classes\Local Settings\Software\Microsoft\ Windows\Shell\Bags\AllFolders\Shell\FolderType"

WScript.Echo "Creating " & regKey & " as 'NotSpecified' REG_SZ " & VbCrLf
WshShell.RegWrite regKey, "NotSpecified", "REG_SZ"

WScript.Echo "Now define the columns of your preference in Windows Explorer," & VbCrLf
WScript.Echo "and click the Apply to Folders button in Folder Options." & VbCrLf

Но он отказывается удалять ключ реестра

E:\archive\settings\Windows Vista Explorer columns.vbs(9, 1) WshShell.RegDelete:
 Unable to remove registry key "HKCU\Software\Classes\Local Settings\Software\Mi
crosoft\Windows\Shell\BagMRU\".

Предлагается поставить в конце "\" для обозначения ключа, что я и сделал. Любые идеи?


person icelava    schedule 20.11.2008    source источник
comment
Возможно, это связано с разрешениями, работаете ли вы как администратор, и могут ли эти ключи редактировать этот пользователь / группа?   -  person Vinko Vrsalovic    schedule 20.11.2008
comment
Да, я администратор, и да, я все время отключаю UAC ;-)   -  person icelava    schedule 20.11.2008
comment
Вы проверили, что можете удалить ключ вручную через RegEdit?   -  person aphoria    schedule 20.11.2008
comment
Все работает штатно мышкой.   -  person icelava    schedule 20.11.2008


Ответы (3)


Есть ли в настройках вашего реестра подразделы? Я думаю, вам нужно удалить их, прежде чем вы сможете удалить ключ.

person Dour High Arch    schedule 16.09.2009

Отключите UAC в Windows Vista, тогда этот скрипт будет работать нормально.

person Community    schedule 19.02.2009
comment
Я никогда не использую UAC ни на одной машине с Win Vista / 2008/7 ;-) - person icelava; 19.02.2009

сломай его dooown :)

Const HKCR=&H80000000:Const HKCU=&H80000001:Const HKLM=&H80000002:Const HKU=&H80000003:Const HKCC=&H80000005

dim pc,o,hive,key,name,value,i
pc="."
Set o=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & pc & "\root\default:StdRegProv")

hive=HKCU
key="Software\Microsoft\Windows\CurrentVersion\Explorer\Wallpapers\knownfolders\0\windows wallpapers\mergefolders"
regrid 5

sub regrid(levels)
dim a,n,j,base,s
    a=split(key,"\")
    n=ubound(a)
    base="":for i=0 to levels-1:base=base & a(i) & "\":next
    for i=n to levels step -1
        s="":for j=levels to i:s=s & a(j) & "\":next
        o.DeleteKey hive,base & s
    next
end sub

спасибо всем за вашу поддержку в бесплатном образовании

person aelgoa    schedule 10.03.2012