[Last Call] Learn how to a build a cloud-first strategyRegister Now

x
?
Solved

Problems checking date for registry key using vbs

Posted on 2009-04-15
2
Medium Priority
?
188 Views
Last Modified: 2012-05-06
Hello. I am trying to get the below script to check the date. If the date is less than one day old, it will display my message box and quit. If the date is older than 1 day, it will display another message box I have.

I assume my problem is in the way I am checking the date. I am modifying an existing script that I have.

The date is in the format of 4/15/2009 - 16:08:04. I am not concerned about the time. I only want it to check the date. Currently, the script always displays the installing message box.

Any help would be appreciated.
DateCheck
 
Function DateCheck
 
Dim objShell
Dim strComputer
Dim objRegistry
Dim strKeyPath
Dim strValueName
Dim strValue
Dim intReturn
Dim arrDateBits
Dim dteDate
 
 
 
Set objShell = CreateObject("WScript.Shell")
Const HKLM = &H80000002
strComputer = "."
Set objRegistry = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")
strKeyPath = """SOFTWARE\Packages\FTC\FTC Base Package"""
strValueName = "InstallDate"
intReturn = objRegistry.GetStringValue(HKLM, strKeyPath, strValueName, strValue)
If intReturn = 0 Then
	If InStr(strValue, "-") > 0 Then
		arrDateBits = Split(strValue, "/")
		If UBound(arrDateBits) = 2 Then
			dteDate = CDate(arrDateBits(0) & "/" & MonthName(arrDateBits(1), True) & "/" & arrDateBits(2))
			If dteDate < DateAdd("d", -1, Now) Then
			MsgBox "Exit"
			WScript.Quit
			End If
		Else
		End If
	Else
	End If
Else
MsgBox "Installing"
End If
 
Set objShell = Nothing
Set objRegistry = Nothing
 
End Function

Open in new window

0
Comment
Question by:Lorrec
2 Comments
 
LVL 10

Accepted Solution

by:
TakedaT earned 2000 total points
ID: 24151206
Try this code.  I think that all the extra quotes around the reg path in line 21 caused your getstring to return an error.

Since you are not worried about the time, I had the time stipped off of arrDateBits(2) in line 29.  I entered a date just as you specified and it works for me.

If you want the time included, it shouldnt be to difficult.
DateCheck
 
Function DateCheck
 
Dim objShell
Dim strComputer
Dim objRegistry
Dim strKeyPath
Dim strValueName
Dim strValue
Dim intReturn
Dim arrDateBits
Dim dteDate
 
 
 
Set objShell = CreateObject("WScript.Shell")
Const HKLM = &H80000002
strComputer = "."
Set objRegistry = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")
strKeyPath = "SOFTWARE\Packages\FTC\FTC Base Package"
strValueName = "InstallDate"
intReturn = objRegistry.GetStringValue(HKLM, strKeyPath, strValueName, strValue)
 
If intReturn = 0 Then
	If InStr(strValue, "-") > 0 Then
		arrDateBits = Split(strValue, "/")
		If UBound(arrDateBits) = 2 Then
			dteDate = CDate(arrDateBits(0) & "/" & arrDateBits(1) & "/" & left(arrDateBits(2),4))
			If dteDate < DateAdd("d", -1, Now) Then
				MsgBox "Older than a day Exit"
				WScript.Quit
			Else
				MsgBox "Newer than a day Exit"
				Wscript.Quit
			End If
		Else
		End If
	Else
	End If
Else
	MsgBox "Installing"
End If
 
Set objShell = Nothing
Set objRegistry = Nothing
 
End Function

Open in new window

0
 

Author Closing Comment

by:Lorrec
ID: 31570556
This is great. Thank you for the help.
0

Featured Post

Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

Question has a verified solution.

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

Recently I finished a vbscript that I thought I'd share.  It uses a text file with a list of server names to loop through and get various status reports, then writes them all into an Excel file.  Originally it was put together for our Altiris server…
Hello again, all.  For those of you that have been following along, you'll know that this is my third article on this topic (though it is not Part III).  This article is sort of remedial, and probably the topic with which I should have started the s…
Please read the paragraph below before following the instructions in the video — there are important caveats in the paragraph that I did not mention in the video. If your PaperPort 12 or PaperPort 14 is failing to start, or crashing, or hanging, …
Is your OST file inaccessible, Need to transfer OST file from one computer to another? Want to convert OST file to PST? If the answer to any of the above question is yes, then look no further. With the help of Stellar OST to PST Converter, you can e…
Suggested Courses
Course of the Month18 days, 14 hours left to enroll

834 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