[2003]vbscript + SH.Regdelete error

Pagina: 1
Acties:

  • mutsje
  • Registratie: September 2000
  • Laatst online: 13:21

mutsje

Certified Prutser

Topicstarter
Om het startmenu bij bestaande users weer te sorteren kun je de volgende key verwijderen.

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MenuOrder\

Echter om dit handmatig te gaan doen is natuurlijk onzinnig, met vb script moet het werken echter stuit ik op een fijne foutmelding

vbscript

DIM sh
set sh= CreateObject("wscript.shell")

sh.RegDelete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MenuOrder\Start Menu2\Programs\Asterix\Order"

error melding
Unable to remove registry key

Handmatig verwijderen is zo gebeurd echter is dit niet de bedoeling, opgeven hele path van subfolders resulteerd in melding dat de rootkey niet goed is 8)7 terwijl regdelete gewoon de value moet verwijderen in principe.

In een ander script gebruik ik sh.regdelete precies zo en deze werkt vreemd genoeg wel?
Iemand ervaring hiermee of iemand die dit wel werkend krijgt? Heb al lopen googlen en op de msdn van Microsoft zitten speuren maar kom er niet echt uit.

  • Brahiewahiewa
  • Registratie: Oktober 2001
  • Laatst online: 30-09-2022

Brahiewahiewa

boelkloedig

http://support.microsoft....aspx?scid=kb;EN-US;279847
edit:
...
Hmmz, verklaart bij nader inzien niet helemaal waarom jouw scriptje niet zou werken.
Misschien toch eens de WMI registry provider proberen?
code:
1
2
3
Set objReg = getObject ( "winMgmtS:\\.\root\default:stdRegProv" )
strKeyPath = "Software\Microsoft\Windows\CurrentVersion\Explorer\MenuOrder\Start Menu2\Programs\Asterix"
objReg.DeleteValue ( HKEY_CURRENT_USER, strKeyPath, "order" )

[ Voor 77% gewijzigd door Brahiewahiewa op 18-05-2006 14:56 ]

QnJhaGlld2FoaWV3YQ==


Verwijderd

"reg delete "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\MenuOrder\Start Menu2\Programs\Asterix""
deletes key + subkeys

[ Voor 16% gewijzigd door Verwijderd op 18-05-2006 14:57 ]


  • mutsje
  • Registratie: September 2000
  • Laatst online: 13:21

mutsje

Certified Prutser

Topicstarter
ey kerel :) had ik ook al gevonden. Het schijnt als je MenuOrder ook verwijderd dat deze na reboot netjes weer aangemaakt wordt.

Script wat wel werkt beter goed gejat dan slecht gemaakt. Dit script delete alle subfolders en value's en ook de folder zelf. Hier moet ik nog mee bezig dat de MenuOrder wel blijft bestaan :)


'having this on *all* the time is *always* a bad idea!!!
'On Error Resume Next

Const HKEY_CLASSES_ROOT = &H80000000
Const HKEY_CURRENT_USER = &H80000001
Const HKEY_LOCAL_MACHINE = &H80000002
Const HKEY_USERS = &H80000003
Const HKEY_CURRENT_CONFIG = &H80000005
Const HKEY_DYN_DATA = &H80000006

Dim RegHive
Dim RegKey

'Select registry hive constant from above list.
RegHive = HKEY_CURRENT_USER
'Path to key to delete (no leading/trailing slashes).
' RegKey = " Software\Microsoft\Windows\CurrentVersion\Policies"
RegKey="Software\Microsoft\Windows\CurrentVersion\Explorer\MenuOrder\"

'Recursive sub to delete all subkeys and parentkey.
DelKey RegHive, RegKey
wscript.echo "Done!"

Sub DelKey(RegRoot, SPath)
Dim sKeys
Dim SubKeyCount
Dim objRegistry
Dim lRC
Dim lRC2
Dim Key
Set objRegistry = GetObject("winmgmts:root\default:StdRegProv")

wscript.echo "ENUMERATING KEY: " & sPath & "\" & Key
lRC = objRegistry.EnumKey(RegRoot, sPath, sKeys)

If IsArray(sKeys) Then
for each Key in sKeys
DelKey RegRoot, SPath & "\" & Key
next
End If
wscript.echo "DELETING KEY: " & sPath
'====> uncomment to go live !!!!!!!!!!!!!!
lRC2 = objRegistry.DeleteKey(RegRoot, sPath)
'If (lRC2 = 0) Then
'wscript.echo "Success!"
'Else
'wscript.echo "Error!"