Jump to content

VBS-Scripte zusammenfassen


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo,

 

ich habe mehrere VBS-Scripte die bestimmte Werte in der Registry löschen.

 

Beispiel:

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::

Option Explicit

Const HKCU = &H80000001

Const KEYPATH = "Software\Microsoft\Windows\CurrentVersion\Run"

 

Dim Registry, ValueNames, i

 

Set Registry = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRe gProv")

Registry.EnumValues HKCU, KEYPATH, ValueNames

 

If IsArray(ValueNames) Then

For i = 0 To UBound(ValueNames)

Registry.DeleteValue HKCU, KEYPATH, ValueNames(i)

Next

Else

End If

 

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::

 

Von diesen Scripten habe ich 5 Stück die halt andere Werte löschen.

 

Kann man diese in einen VBS-Script zusammen fassen?

 

Wäre schön, wenn einer helfen könnte!

 

Mfg. Jürgen

Link zu diesem Kommentar

Hallo Thumb,

 

erstmal danke für deine Hilfe,

 

habe den Code testweise dupliziert und abgeändert aber es funktoniert nicht!

 

Option Explicit

Const HKCU = &H80000001

Const KEYPATH = "Software\Microsoft\Windows\CurrentVersion\Run"

 

Dim Registry, ValueNames, i

 

Set Registry = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRe gProv")

Registry.EnumValues HKCU, KEYPATH, ValueNames

 

If IsArray(ValueNames) Then

For i = 0 To UBound(ValueNames)

Registry.DeleteValue HKCU, KEYPATH, ValueNames(i)

Next

Else

End If

Option Explicit

Const HKCU = &H80000001

Const KEYPATH = "Software\Microsoft\Windows\CurrentVersion\RunOnce"

 

Set Registry = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRe gProv")

Registry.EnumValues HKCU, KEYPATH, ValueNames

 

If IsArray(ValueNames) Then

For i = 0 To UBound(ValueNames)

Registry.DeleteValue HKCU, KEYPATH, ValueNames(i)

Next

Else

End If

 

 

Was muss ich abändern?

Link zu diesem Kommentar
Hallo Thumb,

 

erstmal danke für deine Hilfe,

 

habe den Code testweise dupliziert und abgeändert aber es funktoniert nicht!

 

Option Explicit

Const HKCU = &H80000001

Const KEYPATH = "Software\Microsoft\Windows\CurrentVersion\Run"

 

Dim Registry, ValueNames, i

 

Set Registry = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRe gProv")

Registry.EnumValues HKCU, KEYPATH, ValueNames

 

If IsArray(ValueNames) Then

For i = 0 To UBound(ValueNames)

Registry.DeleteValue HKCU, KEYPATH, ValueNames(i)

Next

Else

End If

Option Explicit

Const HKCU = &H80000001

Const KEYPATH = "Software\Microsoft\Windows\CurrentVersion\RunOnce"

 

Set Registry = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRe gProv")

Registry.EnumValues HKCU, KEYPATH, ValueNames

 

If IsArray(ValueNames) Then

For i = 0 To UBound(ValueNames)

Registry.DeleteValue HKCU, KEYPATH, ValueNames(i)

Next

Else

End If

 

 

Was muss ich abändern?

 

Du benutzt die gleiche Konstante und weißt ihr einen neuen Wert zu. Das geht normal nicht. Dazu musst Du die Werte als DIM deklarieren.

 

Gruß

 

Notesuser3

Link zu diesem Kommentar

So ich habe Dir mal ein kleines Grundgerüst zusammengestellt.

 

Option Explicit

Call cmdHKEY1

CALL cmdHKEY2 usw.

 

 

Function cmdHKEY1()

CONST strFunctionName = "cmdHKEY1()"

DIM strHKCU

DIM strKeyPath

 

strHKCU = "&H80000001"

strKeyPath = "Software\Microsoft\Windows\CurrentVersion\Run"

 

IF cmdManipulateRegKeys(strHKCU, strKEYPATH) = FALSE

 

IF Err.Number <> 0 then

MsgBox "Es ist ein Fehler in Funktion: " & strFunctionName & " mit Fehlernummer: " & Err.Number & _

" und Fehlerbeschreibung: " & Err.Description & " aufgetreten!"

Err.Clear

END IF

 

End Function

 

Function cmdManipulateRegKeys(strHKCU, strKeypath)

On Error Resume Next

'Hauptfunction

'Hauptteil der Funktion

CONST strFunctionName = "cmdManipulateRegKeys()"

DIM Registry

DIM ValueNames

DIM i

 

Set Registry = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRe gProv")

Registry.EnumValues strHKCU, strKEYPATH, ValueNames

 

IF IsArray(ValueNames) THEN

For i = 0 to UBound(ValueNames)

Registry.DeleteValue strHKCU, strKeypath, ValueNames(i)

Next

END IF

 

IF Err.Number <> 0 then

MsgBox "Es ist ein Fehler in Funktion: " & strFunctionName & " mit Fehlernummer: " & Err.Number & _

" und Fehlerbeschreibung: " & Err.Description & " aufgetreten!"

Err.Clear

END IF

End Function

 

Die Function cmdManipulateRegKeys bleibt immer gleich. Für jeden RegKey legst du eine neue Function cmdHKEY2(), Function cmdHKEY3(), Function cmdHKEY4() usw. an.

 

Spezifiziert hier die entsprechenden Parameter und rufst die Funktion im oberen Teil der Reihe nach auf.

 

Benutzt Du eigentlich einen Editior? Ich benutze den Scite, da kann man seine Skripte auch im Buildmodus ausführen, dann zeigt er dir die Zeile an, bei der er währender Ausführung hängenbleibt.

 

Gruß

 

Notesusers

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...