VBScript: RegKey mit SubKeys über WMI löschen

  • VBScript

    VBScript: RegKey mit SubKeys über WMI löschen

    Hallo zusammen

    Ich habe einen Code mit dem ich Registry Keys oder Values aus der Registry über WMI löschen kann.

    Ich habe WMI gewählt, damit ich über die Variable "sArchtct" die 32bit oder 64bit Registry auslesen kann.

    Meine Frage: Wie kann ich einen Registry Key mit Subkeys über WMI löschen?
    Muss ich die Subkeys zuerst über die Methode EnumKey auslesen und dann einzeln löschen?

    Habt ihr dies schon einmal gemacht?

    Vielen Dank für die Unterstützung!

    VB.NET-Quellcode

    1. Function DelReg64(sRegHive, sRegKey, sRegValue, sArchtct)
    2. Dim objCtx, objLocator, objServices, objStdRegProv, Inparams, Outparams
    3. Dim Method
    4. On Error resume Next
    5. Set objCtx = CreateObject("WbemScripting.SWbemNamedValueSet")
    6. objCtx.Add "__ProviderArchitecture", sArchtct
    7. Set objLocator = CreateObject("Wbemscripting.SWbemLocator")
    8. Set objServices = objLocator.ConnectServer("","root\default","","",,,,objCtx)
    9. Set objStdRegProv = objServices.Get("StdRegProv")
    10. Select Case sRegValue
    11. Case ""
    12. Method = "DeleteKey"
    13. Set Inparams = objStdRegProv.Methods_(Method).Inparameters
    14. Inparams.Hdefkey = sRegHive
    15. Inparams.Ssubkeyname = sRegKey
    16. Set Outparams = objStdRegProv.ExecMethod_(Method,Inparams,,objCtx)
    17. Case Else
    18. Method = "DeleteValue"
    19. Set Inparams = objStdRegProv.Methods_(Method).Inparameters
    20. Inparams.Hdefkey = sRegHive
    21. Inparams.Ssubkeyname = sRegKey
    22. Inparams.Svaluename = sRegValue
    23. Set Outparams = objStdRegProv.ExecMethod_(Method,Inparams,,objCtx)
    24. End Select
    25. DelReg64 = Outparams.ReturnValue
    26. set objCtx = Nothing
    27. set objLocator = Nothing
    28. End Function