VBScript soll registryeintrag löschen
Hallo Leute, ich übe immer noch das scripten und versuche per VBS einen Registryeintrag zu löschen, falls er vorhanden ist. Gelöscht wird aber nichts - Was mache ich hier falsch?
Viele Grüße
WshShell.run "Reg Delete " & "HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\CurrentVersion\TrayNotify\IconStreams" & " /f"
WshShell.run "Reg Delete " & "HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\CurrentVersion\TrayNotify\PastIconsStream" & " /f"
WshShell.run "Reg Delete " & "HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\TrayNotify\IconStreams" & " /f"
WshShell.run "Reg Delete " & "HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\TrayNotify\PastIconsStream" & " /f"
WshShell.run "Reg Delete " & "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\TrayNotify\IconStreams" & " /f"
WshShell.run "Reg Delete " & "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\TrayNotify\PastIconsStream" & " /f"
Viele Grüße
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 433688
Url: https://administrator.de/contentid/433688
Ausgedruckt am: 25.11.2024 um 16:11 Uhr
7 Kommentare
Neuester Kommentar
Erstens hätte man sich mal die Help-Seite des Befehls
Zweitens löscht man Registry-Keys in VBS überlichweise über die Objekte dies es extra dafür schon gibt ...
reg delete /?
angesehen hättest du gesehen das man den Wert separat getrennt vom Pfad (/v Wert
) übergibt.Zweitens löscht man Registry-Keys in VBS überlichweise über die Objekte dies es extra dafür schon gibt ...
On Error Resume Next
Dim strKey, result, objShell
Set objShell = CreateObject("Wscript.Shell")
strKey = "HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\CurrentVersion\TrayNotify\IconStreams"
result = objShell.RegRead(strKey)
If Err.Number <> 0 Then
WScript.Quit 1
End If
objShell.RegDelete strKey
Ja, OK - aber was mache ich nun, wenn ich die einzelnen Registry-Einträge nacheinander löschen möchte,
Für sowas macht man sich üblicherweise eine Funktion draus oder packt das in eine For-Schleife .Set objShell = CreateObject("Wscript.Shell")
' Array mit zu löschenden Keys
arrKeys = array("HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\CurrentVersion\TrayNotify\IconStreams","HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\CurrentVersion\TrayNotify\PastIconsStream")
' Lösche jeden Key aus dem Array mit der Funktion
for each key in arrKeys
DeleteKey key
Next
' Beispielfunktion zum Löschen eines Keys
Function DeleteKey(strKey)
On Error Resume Next
result = objShell.RegRead(strKey)
If Err.Number <> 0 Then
DeleteKey = False
Exit Function
Else
objShell.RegDelete strKey
If Err.Number <> 0 Then
DeleteKey = False
Exit Function
End If
DeleteKey = True
End If
End Function
Ja nee, ne Function in ne Sub packen geht nicht .
Set objShell = CreateObject("Wscript.Shell")
Sub Test
' Array mit zu löschenden Keys
arrKeys = array("HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\CurrentVersion\TrayNotify\IconStreams","HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\CurrentVersion\TrayNotify\PastIconsStream","HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\TrayNotify\IconStreams","HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\TrayNotify\PastIconsStream","HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\TrayNotify\IconStreams","HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\TrayNotify\PastIconsStream")
' Lösche jeden Key aus dem Array mit der Funktion
for each key in arrKeys
DeleteKey key
Next
End Sub
' Beispielfunktion zum Löschen eines Keys
Function DeleteKey(strKey)
On Error Resume Next
result = objShell.RegRead(strKey)
If Err.Number <> 0 Then
DeleteKey = False
Exit Function
Else
objShell.RegDelete strKey
If Err.Number <> 0 Then
DeleteKey = False
Exit Function
End If
DeleteKey = True
End If
End Function
Test
Möglichkeiten gibt es viele ...
Einfach mal hier lesen und lernen
https://www.a-coding-project.de/ratgeber/vbscript/prozeduren-und-funktio ...
ich würde gerne innerhalb verschiedener Sub verschiedene Registryeinträge schreiben und/oder löschen.
Kannst du ja machen, die Keys stehen ja im Array. Oder du erweiterst die Function mit einem weiteren Parameter der das Array aufnimmt und dann durchläufst du das Array innerhalb der Function. Dann sparst du extra Subs für ein und die selbe Aufgabe.Einfach mal hier lesen und lernen
https://www.a-coding-project.de/ratgeber/vbscript/prozeduren-und-funktio ...