'Add Missing fields to Local Catalog - 7/10/214 CONST RBSProvider = "Dr.Backup" CONST Version = "(v1.0.0)" '** standard pre-amble for all interactive scripts ** 'get OS volume Set OSobj = CreateObject("Scripting.FileSystemObject") OSfolder = OSobj.getspecialfolder(0) objStartFolder = Left(OSfolder, 3) 'root of search file tree OSVolume = Left(OSfolder, 1) '** added to elevate privs - initial call will have zero arguments ** If WScript.Arguments.count = 0 AND NewOS() Then Set objShell = CreateObject("Shell.Application") 'Pass a bogus argument with leading blank space, say [ uac] objShell.ShellExecute "wscript.exe", Chr(34) & _ WScript.ScriptFullName & Chr(34) & " uac", "", "runas", 1 Wscript.Quit End If 'find location of 32-bit script processing program - in syswow64 on 64-bit machines ScriptEXE = OSFolder & "\SYSTEM32\Cscript.exe" Set objFSOexe = CreateObject("Scripting.FileSystemObject") If objFSOexe.FileExists(OSFolder & "\SYSWOW64\Cscript.exe") Then '640bit system found. switch to 32-bit cscript ScriptEXE = OSFolder & "\SYSWOW64\Cscript.exe" End If '** if we have UAC escalated count will be 1, otherwise 0 on legacy machines ** '** force use of cscript so we get console display ** If Wscript.Arguments.Count < 2 Then strPath = Wscript.ScriptFullName strCommand = "%comspec% /k " & ScriptEXE & " //nologo """ & strPath & """" & " 1 2" Set objShell = CreateObject("Wscript.Shell") objShell.Run(strCommand), 1, True Wscript.Quit End If 'we need to trap errors and continue due to SQL query try-retry logic problems 'unfrotunately, sometimes this can cause trouble On Error Resume Next Err.Clear '** Let's get started ** Wscript.StdOut.WriteLine(RBSProvider & " - Catalog Table Format Update Utility " & Version & VbCrLF) Wscript.StdOut.WriteLine("Start : " & Now() & VbCr) 'Get catalog location from Registry Const HKEY_LOCAL_MACHINE = &H80000002 strComputer = "." strKeyPath = "SOFTWARE\Quantum Tech, Inc.\Remote Backup\Settings" strEntryName = "ClientDB" Set objReg = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv") status = objReg.GetStringValue( HKEY_LOCAL_MACHINE, strKeyPath, strEntryName, strValue) 'Sometimes security products block access to the registry. If so, lookup will fail. 'Give the user an opportunity to specify location of backup catalog manually rather than hard fail. If (status <> 0) or (Err.Number <> 0) Then strValue = InputBox("Unable to lookup database location in registry." & VbCrLf & "Please enter path below: ","Locate Backup Catalog", "C:\Program Files\Remote Backup") If Len(strValue) = 0 Then Wscript.StdOut.WriteLine("Cancelled. Script aborted." & VbCr) Wscript.Quit End If Err.Clear End If 'All that to get the location of the backup.mdb database Database = strValue & "\" & "backup.mdb" 'let's attempt to add missing fields to table. ADDFIELD = "ALTER TABLE Schedule ADD Purge Text(100) ;" 'open connection and update database structure SET objConnAlter = CreateObject("ADODB.Connection") objConnAlter.Open "Provider=MSDASQL; DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & DataBase & ";UID=admin;PWD= ;" objConnAlter.Execute ADDFIELD If err.number <> 0 Then Wscript.StdOut.Writeline("ALTER TABLE ERROR: " & err.number & " Message: " & err.description) err.clear Else Wscript.StdOut.Writeline("INFO: Schedule.Purge Text(100) field added to Catalog.") objConnAlter.Close End If ADDFIELD = "ALTER TABLE Catalog ADD PartialPurge Text(1) ;" 'open connection and update database structure SET objConnAlter = CreateObject("ADODB.Connection") objConnAlter.Open "Provider=MSDASQL; DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & DataBase & ";UID=admin;PWD= ;" objConnAlter.Execute ADDFIELD If err.number <> 0 Then Wscript.StdOut.Writeline("ALTER TABLE ERROR: " & err.number & " Message: " & err.description) err.clear Else Wscript.StdOut.Writeline("INFO: Catalog.PartialPurge Text(1) field added to Catalog.") objConnAlter.Close End If Wscript.StdOut.WriteLine(VbCrLf & VbCRLf& "Catalog Table Format Update Utility Completed: " & Now() & VbCrLf) WScript.Quit Function NewOS() On Error Resume Next strComputer = "." OScaption = "" NewOS = False Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colOperatingSystems = objWMIService.ExecQuery _ ("Select * from Win32_OperatingSystem") For Each objOperatingSystem in colOperatingSystems OScaption = objOperatingSystem.Caption Next If Instr(OScaption,"XP") > 0 OR _ Instr(OScaption, "2003") > 0 OR _ instr(OScaption, "2000") > 0 OR _ len(OScaption) = 0 Then NewOS = False Else NewOS = True End If Exit Function End Function '' SIG '' Begin signature block '' SIG '' MIIUIQYJKoZIhvcNAQcCoIIUEjCCFA4CAQExCzAJBgUr '' SIG '' DgMCGgUAMGcGCisGAQQBgjcCAQSgWTBXMDIGCisGAQQB '' SIG '' gjcCAR4wJAIBAQQQTvApFpkntU2P5azhDxfrqwIBAAIB '' SIG '' AAIBAAIBAAIBADAhMAkGBSsOAwIaBQAEFIn5X0gR7I7s '' SIG '' gDYRqUJMaaJmknRNoIIOzjCCBJMwggN7oAMCAQICEEeK '' SIG '' jvtZ4dg/DOFC0qKHB74wDQYJKoZIhvcNAQEFBQAwgZUx '' SIG '' CzAJBgNVBAYTAlVTMQswCQYDVQQIEwJVVDEXMBUGA1UE '' SIG '' BxMOU2FsdCBMYWtlIENpdHkxHjAcBgNVBAoTFVRoZSBV '' SIG '' U0VSVFJVU1QgTmV0d29yazEhMB8GA1UECxMYaHR0cDov '' SIG '' L3d3dy51c2VydHJ1c3QuY29tMR0wGwYDVQQDExRVVE4t '' SIG '' VVNFUkZpcnN0LU9iamVjdDAeFw0xMDA1MTAwMDAwMDBa '' SIG '' Fw0xNTA1MTAyMzU5NTlaMH4xCzAJBgNVBAYTAkdCMRsw '' SIG '' GQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAOBgNV '' SIG '' BAcTB1NhbGZvcmQxGjAYBgNVBAoTEUNPTU9ETyBDQSBM '' SIG '' aW1pdGVkMSQwIgYDVQQDExtDT01PRE8gVGltZSBTdGFt '' SIG '' cGluZyBTaWduZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IB '' SIG '' DwAwggEKAoIBAQC8NaA2cCKBEcOyg7nTKMY2zSVrqXuy '' SIG '' HPabUZzvNfTtCI5eOAj4dzwKQuDzcNyj18r1TAvP/yKc '' SIG '' Cn5o1gmiKoR7pp20qcEz4u8fF0jKOs1G5sWqd73jd5r6 '' SIG '' R1NAKFlDk/GkgervgLVPpwjOum68ynYMl2RZhiS7PYKQ '' SIG '' qFWxktOgpwWsn1MlCBBHmc2Y3mjltFB4o68BzFlDWOR2 '' SIG '' bn6sx+KeH0+wRy3IDKNJJ4B1jLsGkWUPkJv0utGByFxq '' SIG '' 7BTpJQm/Ixb0lUZAQCG7g5b9hh96yA0QjqL4GQdYf5+9 '' SIG '' NwJg8qTpnUQ/MAXkp3CZUZroF/FVyrJhiWVGp2ryWEZ+ '' SIG '' qqAHAgMBAAGjgfQwgfEwHwYDVR0jBBgwFoAU2u1kdBSc '' SIG '' FDyr3ZmpvVsoTYs8ydgwHQYDVR0OBBYEFC4tsApEStOH '' SIG '' wAIHzpd9UGIg/Q+DMA4GA1UdDwEB/wQEAwIGwDAMBgNV '' SIG '' HRMBAf8EAjAAMBYGA1UdJQEB/wQMMAoGCCsGAQUFBwMI '' SIG '' MEIGA1UdHwQ7MDkwN6A1oDOGMWh0dHA6Ly9jcmwudXNl '' SIG '' cnRydXN0LmNvbS9VVE4tVVNFUkZpcnN0LU9iamVjdC5j '' SIG '' cmwwNQYIKwYBBQUHAQEEKTAnMCUGCCsGAQUFBzABhhlo '' SIG '' dHRwOi8vb2NzcC51c2VydHJ1c3QuY29tMA0GCSqGSIb3 '' SIG '' DQEBBQUAA4IBAQDI+2P4C3V1LDrx8hOnLbajGpytAQfT '' SIG '' NI534MJurgJdSE+k0iG2Nv0qNUN8a9+AhwsV8HYyALTO '' SIG '' tWekLy8gG5xUnoM/H18UlWKCDyJBIh9ws/P3Qt5sUc1L '' SIG '' +CGsmzuMseXmKI/OKor5qlJNjFt3uk1aWNu7agTMUh6d '' SIG '' 4ig3DrvnDpHH+NvxgZjrzTezDqtl02LsOqV26xOoNZPJ '' SIG '' LgoB7MDozD1+tuviwezTFJKCZodQ3P1Ql6yzSnZzBsSG '' SIG '' ETqzX0MEUm/qs9B0NkzK8Rt5hDdwY610uaoO85iwhgjr '' SIG '' 2+AfjBDyOWSbrk8KLJKKTxi1keWNGpNfH67xpvAul9DS '' SIG '' 9is8MIIE5zCCA8+gAwIBAgIQEHCdT/VUCNcwYAHY6pF1 '' SIG '' uzANBgkqhkiG9w0BAQUFADCBlTELMAkGA1UEBhMCVVMx '' SIG '' CzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2Ug '' SIG '' Q2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3 '' SIG '' b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVz '' SIG '' dC5jb20xHTAbBgNVBAMTFFVUTi1VU0VSRmlyc3QtT2Jq '' SIG '' ZWN0MB4XDTExMDgyNDAwMDAwMFoXDTIwMDUzMDEwNDgz '' SIG '' OFowezELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0 '' SIG '' ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEa '' SIG '' MBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxITAfBgNV '' SIG '' BAMTGENPTU9ETyBDb2RlIFNpZ25pbmcgQ0EgMjCCASIw '' SIG '' DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMv456fo '' SIG '' 8ZcoQGiAN9LIP46SipI3h0eA6kyZz275FUe97nX0RKzQ '' SIG '' w9RN9xnA0zxNwUe5WWUWk4zZCoSbn+j2amNY/l/c0X9L '' SIG '' UZ8AHACHVCAHV6CCyS+YrzOKu3uAIiVqbK/CLGx5E72j '' SIG '' KkjWtY5hVelr6D2AvxQDhRiOfkzpwhmIc5Jyzfr/UE3L '' SIG '' LKZ7GnOxAJAs2TLi+/2slUI27DTFE1NossGfQJ/ae8id '' SIG '' YmyTokLXeZ+XTzFbUCGhq6/ZHLLOdb5bLFYAJI0RwXUf '' SIG '' 8P7Slf7w4TEjGGfAWxP9WpiUlP//WQIfAKzm8fL6OnOz '' SIG '' HUL8VHXPUTEv49uB2XcjKk9ZziMCAwEAAaOCAUowggFG '' SIG '' MB8GA1UdIwQYMBaAFNrtZHQUnBQ8q92Zqb1bKE2LPMnY '' SIG '' MB0GA1UdDgQWBBQexbEsfYfaAmh8JbwMB4Q/ts/e8TAO '' SIG '' BgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIB '' SIG '' ADATBgNVHSUEDDAKBggrBgEFBQcDAzARBgNVHSAECjAI '' SIG '' MAYGBFUdIAAwQgYDVR0fBDswOTA3oDWgM4YxaHR0cDov '' SIG '' L2NybC51c2VydHJ1c3QuY29tL1VUTi1VU0VSRmlyc3Qt '' SIG '' T2JqZWN0LmNybDB0BggrBgEFBQcBAQRoMGYwPQYIKwYB '' SIG '' BQUHMAKGMWh0dHA6Ly9jcnQudXNlcnRydXN0LmNvbS9V '' SIG '' VE5BZGRUcnVzdE9iamVjdF9DQS5jcnQwJQYIKwYBBQUH '' SIG '' MAGGGWh0dHA6Ly9vY3NwLnVzZXJ0cnVzdC5jb20wDQYJ '' SIG '' KoZIhvcNAQEFBQADggEBAJWJd5NoAV582S03B5BdWkJe '' SIG '' DGS0NrUP9qvVOSfeIkakSRxmS0YZWS55SQP2nJLfbVA1 '' SIG '' XAyRLmADWdDxZPdpCfZ+/us0s22xv2aco7oxeLmHNWE9 '' SIG '' kjEb7/TontasRfoMNjyAZ7u97y7CkOE9cS87wbBYfkXD '' SIG '' UnEDB/bzOU2LNiEbAd/Z2l4r6w6XgB5EHFCI9cYSM0qo '' SIG '' TaWNL5QMe8a/mizDMs29jCcm8OEwA1AGgrz0O7ODdQbG '' SIG '' 77ru04D4Usasy3nyOJ57sJJYQpEFyJYhrblLFoEUafE3 '' SIG '' sP4099yw35f1QxCbdo+0ZfXonxO3HqxvxGmKX7o8YX5e '' SIG '' SYYjEy6vFUgwggVIMIIEMKADAgECAhEAshgnO/3X/hCB '' SIG '' 2Sgc9JuRXDANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQG '' SIG '' EwJHQjEbMBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVy '' SIG '' MRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01P '' SIG '' RE8gQ0EgTGltaXRlZDEhMB8GA1UEAxMYQ09NT0RPIENv '' SIG '' ZGUgU2lnbmluZyBDQSAyMB4XDTE0MDUyODAwMDAwMFoX '' SIG '' DTE1MDUyODIzNTk1OVowgZUxCzAJBgNVBAYTAlVTMQ4w '' SIG '' DAYDVQQRDAUyMDcyMzELMAkGA1UECAwCTUQxDzANBgNV '' SIG '' BAcMBkxhdXJlbDEeMBwGA1UECQwVODQwNSBDaGVycnkg '' SIG '' TGF1cmVsIEN0MRswGQYDVQQKDBJEb2N0b3IgQmFja3Vw '' SIG '' LCBMTEMxGzAZBgNVBAMMEkRvY3RvciBCYWNrdXAsIExM '' SIG '' QzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB '' SIG '' AMEs88SG4w70p6KShE+0OpL2W02TyTiJoIp51unEvVg2 '' SIG '' 006IQZgf05A+jF6TfWTE0WTXx7Swre3gV4EuHqjQzWnM '' SIG '' EoYWyoZ8eqCM0LS0KtBHz1YMXlmYnK0f5vvS52nBae8O '' SIG '' YUkXDELYQphAM4S5fUlTPwbpjNzoYKDBhcgWyEchJyOi '' SIG '' 8K8a1XEthL5SEc88+aPnA/dU3Tv0x2jP7CFTRSCgOlLm '' SIG '' v07FEWDenKzUDf8sndEuNvCi+X9VP35HxkEBx3DwBjCs '' SIG '' CMAnzfF7Yk7nVIs8A/f0Qs+PVzWG6hJgpIjRsZIbH7St '' SIG '' uEAGRXByC1ER9PYim6izuceECGuqS9dqdtECAwEAAaOC '' SIG '' AaowggGmMB8GA1UdIwQYMBaAFB7FsSx9h9oCaHwlvAwH '' SIG '' hD+2z97xMB0GA1UdDgQWBBTormmrOaAWmjI76TMOBUWz '' SIG '' YjIQ3TAOBgNVHQ8BAf8EBAMCB4AwDAYDVR0TAQH/BAIw '' SIG '' ADATBgNVHSUEDDAKBggrBgEFBQcDAzARBglghkgBhvhC '' SIG '' AQEEBAMCBBAwRgYDVR0gBD8wPTA7BgwrBgEEAbIxAQIB '' SIG '' AwIwKzApBggrBgEFBQcCARYdaHR0cHM6Ly9zZWN1cmUu '' SIG '' Y29tb2RvLm5ldC9DUFMwQQYDVR0fBDowODA2oDSgMoYw '' SIG '' aHR0cDovL2NybC5jb21vZG9jYS5jb20vQ09NT0RPQ29k '' SIG '' ZVNpZ25pbmdDQTIuY3JsMHIGCCsGAQUFBwEBBGYwZDA8 '' SIG '' BggrBgEFBQcwAoYwaHR0cDovL2NydC5jb21vZG9jYS5j '' SIG '' b20vQ09NT0RPQ29kZVNpZ25pbmdDQTIuY3J0MCQGCCsG '' SIG '' AQUFBzABhhhodHRwOi8vb2NzcC5jb21vZG9jYS5jb20w '' SIG '' HwYDVR0RBBgwFoEUc3VwcG9ydEBkcmJhY2t1cC5uZXQw '' SIG '' DQYJKoZIhvcNAQEFBQADggEBAMWLTATWsIItZYZNZmUx '' SIG '' NtpYsc8i+wg27uhNS/ROK90smOUifSGZOtn0KTv+GLvC '' SIG '' 6wufvubtRQZ9tznsYsMmgrNjhqwmBUto9i3Pz3r0A/Tw '' SIG '' AsvcbGa6vV9wYhLUven1IvZMxkV59XrJYhTbZmEgsxv2 '' SIG '' pDMbf0GLmra57IKSW4sywlv07PYNSefj9FdMvd13bSHm '' SIG '' YLU9S1uINxOD9BqpuJ3Ik/IBMi9sKXN040WSwkt8++tI '' SIG '' ROzi29xnjE2I9jRwrkEF5pNUuj7aUmRvBDv+es3ZPXAN '' SIG '' tXXWeTkV1/6m86KcftueZmGGGYUgjfVRdw4As92LkwMR '' SIG '' z8XEiUuZ+0gSEroxggS/MIIEuwIBATCBkDB7MQswCQYD '' SIG '' VQQGEwJHQjEbMBkGA1UECBMSR3JlYXRlciBNYW5jaGVz '' SIG '' dGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFD '' SIG '' T01PRE8gQ0EgTGltaXRlZDEhMB8GA1UEAxMYQ09NT0RP '' SIG '' IENvZGUgU2lnbmluZyBDQSAyAhEAshgnO/3X/hCB2Sgc '' SIG '' 9JuRXDAJBgUrDgMCGgUAoIG8MBkGCSqGSIb3DQEJAzEM '' SIG '' BgorBgEEAYI3AgEEMBwGCisGAQQBgjcCAQsxDjAMBgor '' SIG '' BgEEAYI3AgEVMCMGCSqGSIb3DQEJBDEWBBQGCs8PI1dT '' SIG '' mZzn5Lfd5rnNzlwOnjBcBgorBgEEAYI3AgEMMU4wTKAu '' SIG '' gCwAQwBhAHQAYQBsAG8AZwAgAEYAbwByAG0AYQB0ACAA '' SIG '' VQBwAGQAYQB0AGUAcqEagBhodHRwOi8vd3d3LmRyYmFj '' SIG '' a3VwLm5ldCAwDQYJKoZIhvcNAQEBBQAEggEADOUSlq1z '' SIG '' 0FahhnC5Pwnfm1AirBdpYPJfDGGRsqS06hKo/CzOfXDP '' SIG '' 8I2gRC/M2YnPkpzhTVe4usBVyD3nNjgj5DTNmxjah5Eq '' SIG '' JLv4gl7AhC8LUZl27wWmG8DbMA//ozhiSvHzH9EQ2POb '' SIG '' UIRLxKD81KTh3vLV6xPHUtngwU/JMHe5O/EoT9dRbL4w '' SIG '' cGiRhF9PrZejhU98gBY0Gych1yPRZChaoxlj1DqcmcuC '' SIG '' 6zSsB8t/8DAXA/V5UnMLxiGC8D3jCFKOG58cDZHqjwG1 '' SIG '' Rc+48FEYPHusBVjDExeMfsqtrphcwWYthjqHEUmUBeEi '' SIG '' uerPivGgX0eMkw/9uuGxFBhID6GCAkQwggJABgkqhkiG '' SIG '' 9w0BCQYxggIxMIICLQIBADCBqjCBlTELMAkGA1UEBhMC '' SIG '' VVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExh '' SIG '' a2UgQ2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBO '' SIG '' ZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0 '' SIG '' cnVzdC5jb20xHTAbBgNVBAMTFFVUTi1VU0VSRmlyc3Qt '' SIG '' T2JqZWN0AhBHio77WeHYPwzhQtKihwe+MAkGBSsOAwIa '' SIG '' BQCgXTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwG '' SIG '' CSqGSIb3DQEJBTEPFw0xNDA3MTAxNDU5MDBaMCMGCSqG '' SIG '' SIb3DQEJBDEWBBQMIscW2Q2QCVNlR3nPaOYPj0/DEjAN '' SIG '' BgkqhkiG9w0BAQEFAASCAQBUTlFJTowwEjnmsBa12Tf5 '' SIG '' iP4JgSkRT1KGVVfgPQwFoA6wXKjIWE/Ety4xhjb440Wk '' SIG '' KUWFoN+Nzc5k+u49DSZG8zgPOpu3QDCSaRbXQzSK/mJA '' SIG '' zOokYm8RUw/9Af9jw1zmUlt0BQUm3ArGJg0D+2ZowR0R '' SIG '' xb3JS59McaJSyStCTYVadTcY/SdsxpH8NtxwVVlJRezD '' SIG '' 28zG7AJ+/X5Rs89cXWEKfEfM6nyW0KZ6J0L/X2jAEG8y '' SIG '' d8NQToqZXuKvF2EdWI/F4nucq9qW0nnIWHC2E4xUtltT '' SIG '' dyEv0VaAYj2ZtNnGETkUTnZMxAmEtYmIo3aHw5vIkfQV '' SIG '' Rw4neGdWFAsB '' SIG '' End signature block