Solved

How to find if a Reg key exists

Posted on 2007-11-19
1
442 Views
Last Modified: 2008-02-01
I'm trying to create a script that will the registry (HKLM\Software\Microsoft\Updates\Windows Server 2003\SP3\ "keynamevar").   If the key exists then create a report text file.  I've created the following, but when I test it does not report true findings!  Thank you for your help

strComputer = "."
Set objFSO = CreateObject("Scripting.FileSystemObject")
Const ForReading = 1
Const ForWriting = 2
Const ForAppending = 8
Const HKEY_LOCAL_MACHINE = &H80000002

dt = Replace(Date,"/","-")
strFileName = "C:\versions\" & dt & "-FreeSpace.txt"

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile2 = objFSO.CreateTextFile(strFileName, ForAppending, True)
Set objFile = objFSO.OpenTextFile("C:\versions\patches.txt", 1)

' Registry values
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _
    strComputer & "\root\default:StdRegProv")
'objFile2.WriteLine "Date Modified: " & dt
Do Until objFile.AtEndOfStream
    strCharacters = objFile.Readline
    strKeyPath = "SOFTWARE\Microsoft\Updates\Windows Server 2003\SP3\"& strCharacters
    strValueName = "InstalledDate"
    oReg.GetExpandedStringValue HKEY_LOCAL_MACHINE,strKeyPath, _
        strValueName,strValue
  'If IsNull(strValueName) Then
   if strValueName = "InstalledDate" Then
      objFile2.WriteLine   "Date Installed: " & strValue
         oReg.GetExpandedStringValue HKEY_LOCAL_MACHINE,strKeyPath, _
         strValueName1,strValue1
           strValueName1 = "Description"
         objFile2.WriteLine  "Patch Installed:  " & strValue1
        
  Else
      objFile2.WriteLine  "Key (" & strCharacters & ") does not exist!!"  & strValue1      

  End If
Loop
objFile.Close
objFile2.Close
0
Comment
Question by:Lou Pereira
1 Comment
 
LVL 12

Accepted Solution

by:
chandru_sol earned 250 total points
ID: 20314323
Try this..........

regards
Chandru
Option Explicit

Dim blnResult
 

blnResult = CheckIfRegKeyExist()

If blnResult Then WScript.Echo "True" Else WScript.Echo "False"
 

Function CheckIfRegKeyExist()

   Const HKEY_LOCAL_MACHINE = &H80000002

   Dim objRegistry

   Dim arrSubKeys

   Dim strStartKey

   Dim varResult

   

   ' Set a default value of strStartKey as example.

   ' User can type any other key.

   strStartKey = "SOFTWARE\Microsoft\"

   strStartKey = InputBox("Which key in HKLM do you want to enumerate?","Registry Key Enumeration", strStartKey)

   ' Connect to the registry.

   Set objRegistry = GetObject("winmgmts:root\default:stdregprov")
 

   If objRegistry.EnumKey(HKEY_LOCAL_MACHINE, strStartKey, arrSubKeys) = 0 Then

      CheckIfRegKeyExist = True

   Else

      CheckIfRegKeyExist = False

   End If

   Set objRegistry = Nothing

End Function

Open in new window

0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Convert MSI to MSM 1 49
Using VB6 to write Excel Spreadsheets - 5 40
Bulk Reorder File Names 4 56
Problem to open text file 11 73
I hope you'll find this tutorial useful and interesting. So let's try to extend Tcl with a new package.  For anyone more deeply interested please check out the book "Practical Programming in Tcl and Tk". It's really one of the best written books abo…
Batch, VBS, and scripts in general are incredibly useful for repetitive tasks.  Some tasks can take a while to complete and it can be annoying to check back only to discover that your script finished 5 minutes ago.  Some scripts may complete nearly …
Learn the basics of while and for loops in Python.  while loops are used for testing while, or until, a condition is met: The structure of a while loop is as follows:     while <condition>:         do something         repeate: The break statement m…
The viewer will learn how to count occurrences of each item in an array.

895 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

13 Experts available now in Live!

Get 1:1 Help Now