2008-11-20 6 views
0

Основываясь на рекомендации, приведенной в http://www.tweakguides.com/VA_4.html, чтобы предотвратить «разумную» перестановку форматов столбцов Windows Vista в Windows Explorer, я написал сценарий для автоматизации процесса немного.RegDelete не может удалить ключ реестра в WSH 5.7

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\". 

Предложение заключается в том, чтобы положить трейлинг «\», чтобы указать ключ, который я сделал. Есть идеи?

+0

Это, возможно, придется делать с разрешениями, которые вы используете в качестве администратора, и те ключи, редактируемые этим пользователем/группа? – 2008-11-20 02:51:21

+0

Да, я администратор, и да, я все время отключил UAC ;-) – icelava 2008-11-20 05:09:21

ответ

1

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

2

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

1

перерыв это 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 

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