John Bartow
john at winhaven.net
Wed Jan 30 15:02:08 CST 2013
Could someone please read through this and see why I'm getting a compile error? It's a pretty simple script but I'm obviously blinded by over familiarity right now. ---------------------------------------------------------------------------- ------------------------------ Dim WshShell, oExec, OSbit64, FSO, bResendDSC, ProgramPath, ViprePath, AgentPath Set WshShell = CreateObject("WScript.Shell") Set FSO = CreateObject("Scripting.FileSystemObject") If OSbit64() Then MsgBox "It's 64-bit!" ProgramPath = "C:\Program Files (x86)\" Else MsgBox "It's 32-bit!" ProgramPath = "C:\Program Files\" End If If FSO.FolderExists(ProgramPath & "GFI Software\VIPRE") Then ViprePath= ProgramPath & "GFI Software\VIPRE" Else wscript.Echo "Vipre Folder Not Found." End If If FSO.FolderExists(ProgramPath & "\Advanced Monitoring Agent") Then AgentPath= ProgramPath & "\Advanced Monitoring Agent" Else wscript.Echo "Agent Folder Not Found." End If ViprePath = Chr(34) & ViprePath& "\SBAMCommandLineScanner.exe" & Chr(34) & " /updatedefs" AgentPath = Chr(34) & AgentPath & "\winagent.exe" & Chr(34) bResendDSC = True Set oExec = WshShell.Exec(ViprePath) Do While oExec.Status <> 1 WScript.Sleep 100 Loop Do While oExec.StdOut.AtEndOfStream <> True If oExec.StdOut.ReadLine = "DONE:Update not needed" Then bResendDSC = False End If Loop If bResendDSC = True Then RestartDSC wscript.Echo "Updating Vipre and resending Daily Service Check" Else wscript.Echo "Vipre is up to date" End If Sub RestartDSC() 'Stop agent Service Set oExec = WshShell.Exec(AgentPath & " /stopservice") Do While oExec.Status <> 1 WScript.Sleep 100 Loop 'Reset DSC Counter Set oExec = WshShell.Exec(AgentPath & " /testreset") Do While oExec.Status <> 1 WScript.Sleep 100 Loop 'Restart Service Set oExec = WshShell.Exec(AgentPath & " /startservice") Do While oExec.Status <> 1 WScript.Sleep 100 Loop End Sub Function OSbit64() ' This works on Windows 2000, XP, Vista, 7, as well as Server 2000, 2003, and 2008 Const HKLM = &H80000002 Dim strComputer, WshShell, sOSBit strComputer = "." Set WshShell = WScript.CreateObject("WScript.Shell") OSbit64 = True sOSbit = WshShell.RegRead("HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\PROCESSOR_ARCHITECTURE") If sOSBit = "x86" Then OSbit64 = False End If Set WshShell = Nothing End Function