gomeara
asked on
Search registry for string value and delete all entries found using script or other networking tool
I want to search the registry for a given string and delete the registry entries that it finds.
E.g. Search for entries with "\\Servername" and delete all the entries that have this in the key/value.
I have a script that will search for the specified string and displays the results in notepad.
I need to be able to then delete all the entries that I have found automatically without any user intervention.
Using script in GPO or using another tool.
A copy of the script is attached in code section
E.g. Search for entries with "\\Servername" and delete all the entries that have this in the key/value.
I have a script that will search for the specified string and displays the results in notepad.
I need to be able to then delete all the entries that I have found automatically without any user intervention.
Using script in GPO or using another tool.
A copy of the script is attached in code section
Option Explicit
Dim oWS : Set oWS = CreateObject("WScript.Shell")
Dim oFSO : Set oFSO = CreateObject("Scripting.FileSystemObject")
Dim sSearchFor
sSearchFor = "\\Servername"
If sSearchFor = "" Then Cleanup()
Dim StartTime : StartTime = Timer
Dim sRegTmp, sOutTmp, eRegLine, iCnt, sRegKey, aRegFileLines
sRegTmp = oWS.Environment("Process")("Temp") & "\RegTmp.tmp "
sOutTmp = oWS.Environment("Process")("Temp") & "\sOutTmp" & _
Hour(Now) & Minute(Now) & Second(Now) & ".tmp "
oWS.Run "regedit /e /a " & sRegTmp, , True '/a enables export as Ansi for WinXP
With oFSO.OpenTextFile(sOutTmp, 8, True)
.WriteLine("REGEDIT4" & vbcrlf & "; " & WScript.ScriptName & " " & _
Chr(169) & " Bill James" & vbcrlf & vbcrlf & "; Registry search " & _
"results for string " & Chr(34) & sSearchFor & Chr(34) & " " & Now & _
vbcrlf & vbcrlf & "; NOTE: This file will be deleted when you close " & _
"WordPad." & vbcrlf & "; You must manually save this file to a new " & _
"location if you want to refer to it again later." & vbcrlf & "; (If " & _
"you save the file with a .reg extension, you can use it to restore " & _
"any Registry changes you make to these values.)" & vbcrlf)
With oFSO.GetFile(sRegTmp)
aRegFileLines = Split(.OpenAsTextStream(1, 0).Read(.Size), vbcrlf)
End With
oFSO.DeleteFile(sRegTmp)
For Each eRegLine in aRegFileLines
If InStr(1, eRegLine, "[", 1) > 0 Then sRegKey = eRegLine
If InStr(1, eRegLine, sSearchFor, 1) > 0 Then
If sRegKey <> eRegLine Then
.WriteLine(vbcrlf & sRegKey) & vbcrlf & eRegLine
Else
.WriteLine(vbcrlf & sRegKey)
End If
iCnt = iCnt + 1
End If
Next
Erase aRegFileLines
If iCnt < 1 Then
oWS.Popup "Search completed in " & FormatNumber(Timer - StartTime, 0) & " seconds." & _
vbcrlf & vbcrlf & "No instances of " & chr(34) & sSearchFor & chr(34) & _
" found.",, WScript.ScriptName & " " & Chr(169) & " Bill James", 4096
.Close
oFSO.DeleteFile(sOutTmp)
Cleanup()
End If
.Close
End With
oWS.Popup "Search completed in " & FormatNumber(Timer - StartTime, 0) & " seconds." & _
vbcrlf & vbcrlf & iCnt & " instances of " & chr(34) & sSearchFor & chr(34) & _
" found." & vbcrlf & vbcrlf & "Click OK to open Results in WordPad.",, _
WScript.ScriptName & " " & Chr(169) & " Bill James", 4096
oWS.Run "Notepad " & sOutTmp, 3, True
oFSO.DeleteFile(sOutTmp)
Cleanup()
Sub Cleanup()
Set oWS = Nothing
Set oFSO = Nothing
WScript.Quit
End Sub
ASKER
Attached is the output file
Output.txt
Output.txt
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Hi Rob any you help on a related post please...
https://www.experts-exchange.com/questions/25081166/How-can-i-delete-all-related-to-Sophos-registry-entries.html?cid=1575
https://www.experts-exchange.com/questions/25081166/How-can-i-delete-all-related-to-Sophos-registry-entries.html?cid=1575
Regards,
Rob.