Commit 909aa5bf5feb7156f6fcb18639782f59237b5dd5
Merge branch 'edge' of github.com:ktgit/knowledgetree into edge
Showing
4 changed files
with
388 additions
and
85 deletions
dmsctl.vbs
| @@ -36,13 +36,17 @@ Const SVC_INVALID_SERVICES_ACCOUNT = 22 ' Status Invalid Service Account | @@ -36,13 +36,17 @@ Const SVC_INVALID_SERVICES_ACCOUNT = 22 ' Status Invalid Service Account | ||
| 36 | Const SVC_STATUS_SERVICE_EXISTS = 23 ' Status Service Exists | 36 | Const SVC_STATUS_SERVICE_EXISTS = 23 ' Status Service Exists |
| 37 | Const SVC_SERVICE_ALREADY_PAUSED = 24 ' Service Already Paused | 37 | Const SVC_SERVICE_ALREADY_PAUSED = 24 ' Service Already Paused |
| 38 | 38 | ||
| 39 | -'Detecting current OS | ||
| 40 | -Dim strComputer, currOS, doRunAs | 39 | +Dim strComputer, currOS, currDir, doRunAs, lastErrorCode |
| 40 | + | ||
| 41 | +' Detecting the current directory | ||
| 42 | +Set oFso = CreateObject("Scripting.FileSystemObject") | ||
| 43 | +currDir = oFso.GetParentFolderName(Wscript.ScriptFullName) | ||
| 41 | 44 | ||
| 42 | strComputer = "." | 45 | strComputer = "." |
| 43 | currOS = "" | 46 | currOS = "" |
| 44 | doRunAs = false | 47 | doRunAs = false |
| 45 | 48 | ||
| 49 | +' Detecting the current OS | ||
| 46 | Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") | 50 | Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") |
| 47 | Set colOperatingSystems = objWMIService.ExecQuery ("Select * from Win32_OperatingSystem") | 51 | Set colOperatingSystems = objWMIService.ExecQuery ("Select * from Win32_OperatingSystem") |
| 48 | 52 | ||
| @@ -52,28 +56,28 @@ For Each objOperatingSystem in colOperatingSystems | @@ -52,28 +56,28 @@ For Each objOperatingSystem in colOperatingSystems | ||
| 52 | Next | 56 | Next |
| 53 | 57 | ||
| 54 | Public Function isWindowsVista() | 58 | Public Function isWindowsVista() |
| 55 | - isWindows7 = false | 59 | + isWin = false |
| 56 | If left(currOS, 19) = "Microsoft Windows Vista" Then | 60 | If left(currOS, 19) = "Microsoft Windows Vista" Then |
| 57 | - isWindows7 = true | 61 | + isWin = TRUE |
| 58 | End If | 62 | End If |
| 59 | End Function | 63 | End Function |
| 60 | 64 | ||
| 61 | Public Function isWindows7() | 65 | Public Function isWindows7() |
| 62 | - isWindows7 = false | 66 | + isWin = false |
| 63 | If left(currOS, 19) = "Microsoft Windows 7" Then | 67 | If left(currOS, 19) = "Microsoft Windows 7" Then |
| 64 | - isWindows7 = true | 68 | + isWin = TRUE |
| 65 | End If | 69 | End If |
| 66 | End Function | 70 | End Function |
| 67 | 71 | ||
| 68 | Public Function isWindows2008() | 72 | Public Function isWindows2008() |
| 69 | - isWindows7 = false | 73 | + isWin = false |
| 70 | If left(currOS, 19) = "Microsoft Windows 2008" Then | 74 | If left(currOS, 19) = "Microsoft Windows 2008" Then |
| 71 | - isWindows7 = true | 75 | + isWin = TRUE |
| 72 | End If | 76 | End If |
| 73 | End Function | 77 | End Function |
| 74 | 78 | ||
| 75 | ' Will call this further down when the individual services need starting | 79 | ' Will call this further down when the individual services need starting |
| 76 | -If doRunAs = true Then | 80 | +If doRunAs = TRUE Then |
| 77 | 'runAs "C:\Program Files (x86)\Zend\ktdms\knowledgetree", "dmsctl_install.bat" | 81 | 'runAs "C:\Program Files (x86)\Zend\ktdms\knowledgetree", "dmsctl_install.bat" |
| 78 | End If | 82 | End If |
| 79 | 83 | ||
| @@ -100,38 +104,44 @@ vbNewLine &_ | @@ -100,38 +104,44 @@ vbNewLine &_ | ||
| 100 | " only mysql is supported for individual control at this time." | 104 | " only mysql is supported for individual control at this time." |
| 101 | 105 | ||
| 102 | Set objArgs = WScript.Arguments | 106 | Set objArgs = WScript.Arguments |
| 103 | -If objArgs.count < 1 Then | 107 | +If (objArgs.count < 1) Then |
| 104 | Wscript.Echo strUsage | 108 | Wscript.Echo strUsage |
| 105 | Else | 109 | Else |
| 106 | Select Case objArgs.Item(0) | 110 | Select Case objArgs.Item(0) |
| 107 | Case "install" | 111 | Case "install" |
| 108 | - isSuccess = true ' Track if anything went wrong | 112 | + isSuccess = TRUE ' Track if anything went wrong |
| 109 | 113 | ||
| 110 | ' Installing KTOffice | 114 | ' Installing KTOffice |
| 111 | - result = exec("C:\Program Files\Zend\ktdms\knowledgetree\var\bin\officeinstall.bat") | 115 | + result = exec(currDir & "\var\bin\officeinstall.bat") |
| 112 | 116 | ||
| 113 | 'Install Failed | 117 | 'Install Failed |
| 114 | If result = 0 Then | 118 | If result = 0 Then |
| 115 | isSuccess = false | 119 | isSuccess = false |
| 116 | - logEvent "The KnowledgeTree KTOffice service could not be installed" | 120 | + writeLog "The " & KTOFFICE & " KnowledgeTree service could not be installed." |
| 121 | + Else | ||
| 122 | + writeLog "The " & KTOFFICE & " KnowledgeTree service was successfully installed." | ||
| 117 | End If | 123 | End If |
| 118 | 124 | ||
| 119 | ' Installing KTScheduler | 125 | ' Installing KTScheduler |
| 120 | - result = exec("C:\Program Files\Zend\ktdms\knowledgetree\var\bin\schedulerinstall.bat") | 126 | + result = exec(currDir & "\var\bin\schedulerinstall.bat") |
| 121 | 127 | ||
| 122 | 'Install Failed | 128 | 'Install Failed |
| 123 | If result = 0 Then | 129 | If result = 0 Then |
| 124 | isSuccess = false | 130 | isSuccess = false |
| 125 | - logEvent "The KnowledgeTree KTScheduler service could not be installed" | 131 | + writeLog "The " & KTSCHEDULER & " KnowledgeTree service could not be installed." |
| 132 | + Else | ||
| 133 | + writeLog "The " & KTSCHEDULER & " KnowledgeTree service was successfully installed." | ||
| 126 | End If | 134 | End If |
| 127 | 135 | ||
| 128 | ' Installing KTLucene | 136 | ' Installing KTLucene |
| 129 | - result = exec("C:\Program Files\Zend\ktdms\knowledgetree\var\bin\luceneinstall.bat") | 137 | + result = exec(currDir & "\var\bin\luceneinstall.bat") |
| 130 | 138 | ||
| 131 | 'Install Failed | 139 | 'Install Failed |
| 132 | If result = 0 Then | 140 | If result = 0 Then |
| 133 | isSuccess = false | 141 | isSuccess = false |
| 134 | - logEvent "The KnowledgeTree KTLucene service could not be installed" | 142 | + writeLog "The " & KTLUCENE & " KnowledgeTree service could not be installed." |
| 143 | + Else | ||
| 144 | + writeLog "The " & KTLUCENE & " KnowledgeTree service was successfully installed." | ||
| 135 | End If | 145 | End If |
| 136 | 146 | ||
| 137 | If (isSuccess) Then | 147 | If (isSuccess) Then |
| @@ -141,69 +151,254 @@ Else | @@ -141,69 +151,254 @@ Else | ||
| 141 | End If | 151 | End If |
| 142 | 152 | ||
| 143 | Case "start" | 153 | Case "start" |
| 144 | - isSuccess = true | ||
| 145 | - | ||
| 146 | - svcName = KTOFFICE | ||
| 147 | - If (NOT isServiceStarted(svcName)) Then | ||
| 148 | - If (NOT startService(svcName)) Then | ||
| 149 | - isSuccess = false | 154 | + If (objArgs.count > 1) Then |
| 155 | + Select Case objArgs.Item(1) | ||
| 156 | + Case "soffice" | ||
| 157 | + isSuccess = TRUE | ||
| 158 | + svcName = KTOFFICE | ||
| 159 | + If (NOT isServiceStarted(svcName)) Then | ||
| 160 | + If (NOT startService(svcName)) Then | ||
| 161 | + isSuccess = FALSE | ||
| 162 | + writeLog "The " & KTOFFICE & " KnowledgeTree service could not be started. Result Code: " & lastErrorCode | ||
| 163 | + Else | ||
| 164 | + writeLog "The " & KTOFFICE & " KnowledgeTree service was successfully started" | ||
| 165 | + End If | ||
| 166 | + | ||
| 167 | + writeLog "Successfully started " & KTOFFICE | ||
| 168 | + Else | ||
| 169 | + writeLog KTOFFICE & " already started. Result Code: " & lastErrorCode | ||
| 170 | + End If | ||
| 171 | + | ||
| 172 | + If (isSuccess) Then | ||
| 173 | + Wscript.Echo "The " & KTOFFICE & " KnowledgeTree service was successfully started" | ||
| 174 | + Else | ||
| 175 | + Wscript.Echo "The " & KTOFFICE & " KnowledgeTree service could not be started. Result Code: " & lastErrorCode | ||
| 176 | + End If | ||
| 177 | + | ||
| 178 | + Case "scheduler" | ||
| 179 | + isSuccess = TRUE | ||
| 180 | + svcName = KTSCHEDULER | ||
| 181 | + If (NOT isServiceStarted(svcName)) Then | ||
| 182 | + If (NOT startService(svcName)) Then | ||
| 183 | + isSuccess = FALSE | ||
| 184 | + writeLog "The " & KTSCHEDULER & " KnowledgeTree service could not be started. Result Code: " & lastErrorCode | ||
| 185 | + Else | ||
| 186 | + writeLog "The " & KTSCHEDULER & " KnowledgeTree service was successfully started" | ||
| 187 | + End If | ||
| 188 | + | ||
| 189 | + writeLog "Successfully started " & KTSCHEDULER | ||
| 190 | + Else | ||
| 191 | + writeLog KTSCHEDULER & " already started. Result Code: " & lastErrorCode | ||
| 192 | + End If | ||
| 193 | + | ||
| 194 | + If (isSuccess) Then | ||
| 195 | + Wscript.Echo "The " & KTSCHEDULER & " KnowledgeTree service was successfully started" | ||
| 196 | + Else | ||
| 197 | + Wscript.Echo "The " & KTSCHEDULER & " KnowledgeTree service could not be started. Result Code: " & lastErrorCode | ||
| 198 | + End If | ||
| 199 | + | ||
| 200 | + Case "lucene" | ||
| 201 | + isSuccess = TRUE | ||
| 202 | + svcName = KTLUCENE | ||
| 203 | + If (NOT isServiceStarted(svcName)) Then | ||
| 204 | + If (NOT startService(svcName)) Then | ||
| 205 | + isSuccess = false | ||
| 206 | + writeLog "The " & KTLUCENE & " KnowledgeTree service could not be started. Result Code: " & lastErrorCode | ||
| 207 | + Else | ||
| 208 | + writeLog "The " & KTLUCENE & " KnowledgeTree service was successfully started" | ||
| 209 | + End If | ||
| 210 | + | ||
| 211 | + writeLog "Successfully started " & KTLUCENE | ||
| 212 | + Else | ||
| 213 | + writeLog KTLUCENE & " already started. Result Code: " & lastErrorCode | ||
| 214 | + End If | ||
| 215 | + | ||
| 216 | + If (isSuccess) Then | ||
| 217 | + Wscript.Echo "The " & KTLUCENE & " KnowledgeTree service was successfully started" | ||
| 218 | + Else | ||
| 219 | + Wscript.Echo "The " & KTLUCENE & " KnowledgeTree service could not be started. Result Code: " & lastErrorCode | ||
| 220 | + End If | ||
| 221 | + End Select | ||
| 222 | + Else | ||
| 223 | + isSuccess = TRUE | ||
| 224 | + | ||
| 225 | + svcName = KTOFFICE | ||
| 226 | + If (NOT isServiceStarted(svcName)) Then | ||
| 227 | + If (NOT startService(svcName)) Then | ||
| 228 | + isSuccess = false | ||
| 229 | + End If | ||
| 230 | + writeLog "Successfully started " & KTOFFICE | ||
| 231 | + Else | ||
| 232 | + writeLog KTOFFICE & " already started. Result Code: " & lastErrorCode | ||
| 150 | End If | 233 | End If |
| 151 | - End If | ||
| 152 | 234 | ||
| 153 | - svcName = KTSCHEDULER | ||
| 154 | - If (NOT isServiceStarted(svcName)) Then | ||
| 155 | - If (NOT startService(svcName)) Then | ||
| 156 | - isSuccess = false | 235 | + svcName = KTSCHEDULER |
| 236 | + If (NOT isServiceStarted(svcName)) Then | ||
| 237 | + If (NOT startService(svcName)) Then | ||
| 238 | + isSuccess = false | ||
| 239 | + End If | ||
| 240 | + writeLog "Successfully started " & KTSCHEDULER | ||
| 241 | + Else | ||
| 242 | + writeLog KTSCHEDULER & " already started. Result Code: " & lastErrorCode | ||
| 157 | End If | 243 | End If |
| 158 | - End If | ||
| 159 | 244 | ||
| 160 | - svcName = KTLUCENE | ||
| 161 | - If (NOT isServiceStarted(svcName)) Then | ||
| 162 | - If (NOT startService(svcName)) Then | ||
| 163 | - isSuccess = false | 245 | + svcName = KTLUCENE |
| 246 | + If (NOT isServiceStarted(svcName)) Then | ||
| 247 | + If (NOT startService(svcName)) Then | ||
| 248 | + isSuccess = false | ||
| 249 | + End If | ||
| 250 | + writeLog "Successfully started " & KTLUCENE | ||
| 251 | + Else | ||
| 252 | + writeLog KTLUCENE & " already started. Result Code: " & lastErrorCode | ||
| 164 | End If | 253 | End If |
| 165 | - End If | ||
| 166 | 254 | ||
| 167 | - If (isSuccess) Then | ||
| 168 | - Wscript.Echo "The KnowledgeTree services were successfully started" | ||
| 169 | - Else | ||
| 170 | - Wscript.Echo "There were errors starting the KnowledgeTree services please see the log for details ('knowledgetree/var/log/dmsctl.log')" | 255 | + If (isSuccess) Then |
| 256 | + Wscript.Echo "The KnowledgeTree services were successfully started" | ||
| 257 | + Else | ||
| 258 | + Wscript.Echo "There were errors starting the KnowledgeTree services please see the log for details ('knowledgetree/var/log/dmsctl.log')" | ||
| 259 | + End If | ||
| 171 | End If | 260 | End If |
| 172 | - | ||
| 173 | Case "stop" | 261 | Case "stop" |
| 174 | - isSuccess = true | 262 | + If (objArgs.count > 1) Then |
| 263 | + Select Case objArgs.Item(1) | ||
| 264 | + Case "soffice" | ||
| 265 | + isSuccess = TRUE | ||
| 266 | + svcName = KTOFFICE | ||
| 267 | + If (isServiceStarted(svcName)) Then | ||
| 268 | + If (NOT stopService(svcName)) Then | ||
| 269 | + isSuccess = false | ||
| 270 | + writeLog "The " & KTOFFICE & " KnowledgeTree service could not be stopped. Result Code: " & lastErrorCode | ||
| 271 | + Else | ||
| 272 | + writeLog "The " & KTOFFICE & " KnowledgeTree service was successfully stopped" | ||
| 273 | + End If | ||
| 274 | + | ||
| 275 | + writeLog "Successfully stopped " & KTOFFICE | ||
| 276 | + Else | ||
| 277 | + writeLog KTOFFICE & " already stopped. Result Code: " & lastErrorCode | ||
| 278 | + End If | ||
| 279 | + | ||
| 280 | + If (isSuccess) Then | ||
| 281 | + Wscript.Echo "The " & KTOFFICE & " KnowledgeTree service was successfully stopped" | ||
| 282 | + Else | ||
| 283 | + Wscript.Echo "The " & KTOFFICE & " KnowledgeTree service could not be stopped. Result Code: " & lastErrorCode | ||
| 284 | + End If | ||
| 285 | + | ||
| 286 | + Case "scheduler" | ||
| 287 | + isSuccess = TRUE | ||
| 288 | + svcName = KTSCHEDULER | ||
| 289 | + If (isServiceStarted(svcName)) Then | ||
| 290 | + If (NOT stopService(svcName)) Then | ||
| 291 | + isSuccess = false | ||
| 292 | + writeLog "The " & KTSCHEDULER & " KnowledgeTree service could not be stopped. Result Code: " & lastErrorCode | ||
| 293 | + Else | ||
| 294 | + writeLog "The " & KTSCHEDULER & " KnowledgeTree service was successfully stopped" | ||
| 295 | + End If | ||
| 296 | + | ||
| 297 | + writeLog "Successfully stopped " & KTSCHEDULER | ||
| 298 | + Else | ||
| 299 | + writeLog KTSCHEDULER & " already stopped. Result Code: " & lastErrorCode | ||
| 300 | + End If | ||
| 301 | + | ||
| 302 | + If (isSuccess) Then | ||
| 303 | + Wscript.Echo "The " & KTSCHEDULER & " KnowledgeTree service was successfully stopped" | ||
| 304 | + Else | ||
| 305 | + Wscript.Echo "The " & KTSCHEDULER & " KnowledgeTree service could not be stopped. Result Code: " & lastErrorCode | ||
| 306 | + End If | ||
| 307 | + | ||
| 308 | + Case "lucene" | ||
| 309 | + isSuccess = TRUE | ||
| 310 | + svcName = KTLUCENE | ||
| 311 | + If (isServiceStarted(svcName)) Then | ||
| 312 | + If (NOT stopService(svcName)) Then | ||
| 313 | + isSuccess = false | ||
| 314 | + writeLog "The " & KTLUCENE & " KnowledgeTree service could not be stopped. Result Code: " & lastErrorCode | ||
| 315 | + Else | ||
| 316 | + writeLog "The " & KTLUCENE & " KnowledgeTree service was successfully stopped" | ||
| 317 | + End If | ||
| 318 | + | ||
| 319 | + writeLog "Successfully stopped " & KTLUCENE | ||
| 320 | + Else | ||
| 321 | + writeLog KTLUCENE & " already stopped. Result Code: " & lastErrorCode | ||
| 322 | + End If | ||
| 323 | + | ||
| 324 | + If (isSuccess) Then | ||
| 325 | + Wscript.Echo "The " & KTLUCENE & " KnowledgeTree service was successfully stopped" | ||
| 326 | + Else | ||
| 327 | + Wscript.Echo "The " & KTLUCENE & " KnowledgeTree service could not be stopped. Result Code: " & lastErrorCode | ||
| 328 | + End If | ||
| 329 | + End Select | ||
| 330 | + Else | ||
| 331 | + 'Stopping all the services | ||
| 332 | + isSuccess = TRUE | ||
| 333 | + | ||
| 334 | + svcName = KTOFFICE | ||
| 335 | + If (isServiceStarted(svcName)) Then | ||
| 336 | + If (NOT stopService(svcName)) Then | ||
| 337 | + isSuccess = false | ||
| 338 | + End If | ||
| 339 | + writeLog "Successfully stopped " & KTOFFICE | ||
| 340 | + Else | ||
| 341 | + writeLog KTOFFICE & " already stopped. Result Code: " & lastErrorCode | ||
| 342 | + End If | ||
| 343 | + | ||
| 344 | + svcName = KTSCHEDULER | ||
| 345 | + If (isServiceStarted(svcName)) Then | ||
| 346 | + If (NOT stopService(svcName)) Then | ||
| 347 | + isSuccess = false | ||
| 348 | + End If | ||
| 349 | + writeLog "Successfully stopped " & KTSCHEDULER | ||
| 350 | + Else | ||
| 351 | + writeLog KTSCHEDULER & " already stopped. Result Code: " & lastErrorCode | ||
| 352 | + End If | ||
| 353 | + | ||
| 354 | + svcName = KTLUCENE | ||
| 355 | + If (isServiceStarted(svcName)) Then | ||
| 356 | + If (NOT stopService(svcName)) Then | ||
| 357 | + isSuccess = false | ||
| 358 | + End If | ||
| 359 | + writeLog "Successfully stopped " & KTLUCENE | ||
| 360 | + Else | ||
| 361 | + writeLog KTLUCENE & " already stopped. Result Code: " & lastErrorCode | ||
| 362 | + End If | ||
| 363 | + | ||
| 364 | + If (isSuccess) Then | ||
| 365 | + Wscript.Echo "The KnowledgeTree services were successfully stopped" | ||
| 366 | + Else | ||
| 367 | + Wscript.Echo "There were errors sopping the KnowledgeTree services please see the log for details ('knowledgetree/var/log/dmsctl.log')" | ||
| 368 | + End If | ||
| 369 | + End If | ||
| 370 | + | ||
| 371 | + Case "uninstall" | ||
| 372 | + isSuccess = TRUE | ||
| 175 | 373 | ||
| 176 | svcName = KTOFFICE | 374 | svcName = KTOFFICE |
| 177 | - If (isServiceStarted(svcName)) Then | ||
| 178 | - If (NOT stopService(svcName)) Then | ||
| 179 | - isSuccess = false | ||
| 180 | - End If | 375 | + If (NOT uninstallService(svcName)) Then |
| 376 | + isSuccess = false | ||
| 377 | + writeLog "The KnowledgeTree KTOffice service could not be uninstalled" | ||
| 181 | End If | 378 | End If |
| 182 | 379 | ||
| 183 | svcName = KTSCHEDULER | 380 | svcName = KTSCHEDULER |
| 184 | - If (isServiceStarted(svcName)) Then | ||
| 185 | - If (NOT stopService(svcName)) Then | ||
| 186 | - isSuccess = false | ||
| 187 | - End If | 381 | + If (NOT uninstallService(svcName)) Then |
| 382 | + isSuccess = false | ||
| 383 | + writeLog "The KnowledgeTree KTScheduler service could not be uninstalled" | ||
| 188 | End If | 384 | End If |
| 189 | 385 | ||
| 190 | svcName = KTLUCENE | 386 | svcName = KTLUCENE |
| 191 | - If (isServiceStarted(svcName)) Then | ||
| 192 | - If (NOT stopService(svcName)) Then | ||
| 193 | - isSuccess = false | ||
| 194 | - End If | 387 | + If (NOT uninstallService(svcName)) Then |
| 388 | + isSuccess = false | ||
| 389 | + writeLog "The KnowledgeTree KTLucene service could not be uninstalled" | ||
| 195 | End If | 390 | End If |
| 196 | 391 | ||
| 197 | If (isSuccess) Then | 392 | If (isSuccess) Then |
| 198 | - Wscript.Echo "The KnowledgeTree services were successfully stopped" | 393 | + Wscript.Echo "The KnowledgeTree services were uninstalled" |
| 199 | Else | 394 | Else |
| 200 | - Wscript.Echo "There were errors sopping the KnowledgeTree services please see the log for details ('knowledgetree/var/log/dmsctl.log')" | 395 | + Wscript.Echo "There were errors uninstalling the KnowledgeTree services please see the log for details ('knowledgetree/var/log/dmsctl.log')" |
| 201 | End If | 396 | End If |
| 202 | 397 | ||
| 203 | - Case "uninstall" | ||
| 204 | - isSuccess = true ' Track if anything went wrong | 398 | + Case "uninstall_old" 'Depricated : This method prevents verbose error logging, using WMI to uninstall instead |
| 399 | + isSuccess = TRUE ' Track if anything went wrong | ||
| 205 | 400 | ||
| 206 | - ' Stopping Then Uninstalling | 401 | + ' Stopping Then FALSE |
| 207 | 'svcName = KTOFFICE | 402 | 'svcName = KTOFFICE |
| 208 | 'If (isServiceStarted(svcName)) Then | 403 | 'If (isServiceStarted(svcName)) Then |
| 209 | ' If (NOT stopService(svcName)) Then | 404 | ' If (NOT stopService(svcName)) Then |
| @@ -211,16 +406,16 @@ Else | @@ -211,16 +406,16 @@ Else | ||
| 211 | ' End If | 406 | ' End If |
| 212 | 'End If | 407 | 'End If |
| 213 | 408 | ||
| 214 | - ' Uninstalling KTOffice | 409 | + ' FALSE KTOffice |
| 215 | result = exec("sc delete " & KTOFFICE) | 410 | result = exec("sc delete " & KTOFFICE) |
| 216 | 411 | ||
| 217 | 'Uninstall Failed | 412 | 'Uninstall Failed |
| 218 | If result = 0 Then | 413 | If result = 0 Then |
| 219 | isSuccess = false | 414 | isSuccess = false |
| 220 | - logEvent "The KnowledgeTree KTOffice service could not be uninstalled" | 415 | + writeLog "The KnowledgeTree KTOffice service could not be uninstalled" |
| 221 | End If | 416 | End If |
| 222 | 417 | ||
| 223 | - ' Stopping Then Uninstalling | 418 | + ' Stopping Then FALSE |
| 224 | 'svcName = KTSCHEDULER | 419 | 'svcName = KTSCHEDULER |
| 225 | 'If (isServiceStarted(svcName)) Then | 420 | 'If (isServiceStarted(svcName)) Then |
| 226 | ' If (NOT stopService(svcName)) Then | 421 | ' If (NOT stopService(svcName)) Then |
| @@ -228,32 +423,30 @@ Else | @@ -228,32 +423,30 @@ Else | ||
| 228 | ' End If | 423 | ' End If |
| 229 | 'End If | 424 | 'End If |
| 230 | 425 | ||
| 231 | - ' Uninstalling KTScheduler | 426 | + ' FALSE KTScheduler |
| 232 | result = exec("sc delete " & KTSCHEDULER) | 427 | result = exec("sc delete " & KTSCHEDULER) |
| 233 | 428 | ||
| 234 | 'Uninstall Failed | 429 | 'Uninstall Failed |
| 235 | If result = 0 Then | 430 | If result = 0 Then |
| 236 | isSuccess = false | 431 | isSuccess = false |
| 237 | - logEvent "The KnowledgeTree KTScheduler service could not be uninstalled" | 432 | + writeLog "The KnowledgeTree KTScheduler service could not be uninstalled" |
| 238 | End If | 433 | End If |
| 239 | - | ||
| 240 | - | ||
| 241 | 434 | ||
| 242 | - ' Stopping Then Uninstalling | 435 | + ' Stopping Then FALSE |
| 243 | 'svcName = KTLUCENE | 436 | 'svcName = KTLUCENE |
| 244 | 'If (isServiceStarted(svcName)) Then | 437 | 'If (isServiceStarted(svcName)) Then |
| 245 | ' If (NOT stopService(svcName)) Then | 438 | ' If (NOT stopService(svcName)) Then |
| 246 | - ' isSuccess = false | 439 | + ' isSuccess = FALSE |
| 247 | ' End If | 440 | ' End If |
| 248 | 'End If | 441 | 'End If |
| 249 | 442 | ||
| 250 | - ' Uninstalling KTLucene | 443 | + ' FALSE KTLucene |
| 251 | result = exec("sc delete " & KTLUCENE) | 444 | result = exec("sc delete " & KTLUCENE) |
| 252 | 445 | ||
| 253 | 'Uninstall Failed | 446 | 'Uninstall Failed |
| 254 | If result = 0 Then | 447 | If result = 0 Then |
| 255 | - isSuccess = false | ||
| 256 | - logEvent "The KnowledgeTree KTLucene service could not be uninstalled" | 448 | + isSuccess = FALSE |
| 449 | + writeLog "The KnowledgeTree KTLucene service could not be uninstalled" | ||
| 257 | End If | 450 | End If |
| 258 | 451 | ||
| 259 | If (isSuccess) Then | 452 | If (isSuccess) Then |
| @@ -261,21 +454,56 @@ Else | @@ -261,21 +454,56 @@ Else | ||
| 261 | Else | 454 | Else |
| 262 | Wscript.Echo "There were errors uninstalling the KnowledgeTree services please see the log for details ('knowledgetree/var/log/dmsctl.log')" | 455 | Wscript.Echo "There were errors uninstalling the KnowledgeTree services please see the log for details ('knowledgetree/var/log/dmsctl.log')" |
| 263 | End If | 456 | End If |
| 457 | + | ||
| 264 | 458 | ||
| 265 | Case Else | 459 | Case Else |
| 266 | Wscript.Echo strUsage | 460 | Wscript.Echo strUsage |
| 267 | End Select | 461 | End Select |
| 268 | 462 | ||
| 269 | End If | 463 | End If |
| 464 | + | ||
| 465 | +' Method to check if a service is installed | ||
| 466 | +Public Function isServiceInstalled(ByVal svcName) | ||
| 467 | + strComputer = "." | ||
| 468 | + Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2") | ||
| 469 | + | ||
| 470 | + ' Obtain an instance of the the class | ||
| 471 | + ' using a key property value. | ||
| 472 | + | ||
| 473 | + isServiceInstalled = FALSE | ||
| 474 | + | ||
| 475 | + svcQry = "SELECT * from Win32_Service" | ||
| 476 | + Set objOutParams = objWMIService.ExecQuery(svcQry) | ||
| 477 | + | ||
| 478 | + For Each objSvc in objOutParams | ||
| 479 | + | ||
| 480 | + Select Case objSvc.Name | ||
| 481 | + Case svcName | ||
| 482 | + isServiceInstalled = TRUE | ||
| 483 | + End Select | ||
| 484 | + | ||
| 485 | + Next | ||
| 486 | + | ||
| 487 | + If (Not isServiceInstalled) Then | ||
| 488 | + lastErrorCode = SVC_INVALID_NAME | ||
| 489 | + End If | ||
| 270 | 490 | ||
| 491 | +End Function | ||
| 492 | + | ||
| 271 | ' Method to interrogate a service | 493 | ' Method to interrogate a service |
| 272 | Public Function isServiceStarted(ByVal svcName) | 494 | Public Function isServiceStarted(ByVal svcName) |
| 495 | + If (NOT isServiceInstalled( svcName )) Then | ||
| 496 | + isServiceStarted = FALSE | ||
| 497 | + Exit Function | ||
| 498 | + End If | ||
| 499 | + | ||
| 273 | strComputer = "." | 500 | strComputer = "." |
| 274 | Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2") | 501 | Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2") |
| 502 | + | ||
| 275 | ' Obtain an instance of the the class | 503 | ' Obtain an instance of the the class |
| 276 | ' using a key property value. | 504 | ' using a key property value. |
| 277 | Set objShare = objWMIService.Get("Win32_Service.Name='" & svcName & "'") | 505 | Set objShare = objWMIService.Get("Win32_Service.Name='" & svcName & "'") |
| 278 | - | 506 | + |
| 279 | ' no InParameters to define | 507 | ' no InParameters to define |
| 280 | 508 | ||
| 281 | ' Execute the method and obtain the return status. | 509 | ' Execute the method and obtain the return status. |
| @@ -283,16 +511,24 @@ Public Function isServiceStarted(ByVal svcName) | @@ -283,16 +511,24 @@ Public Function isServiceStarted(ByVal svcName) | ||
| 283 | ' is created by the provider. | 511 | ' is created by the provider. |
| 284 | Set objOutParams = objWMIService.ExecMethod("Win32_Service.Name='" & svcName & "'", "InterrogateService") | 512 | Set objOutParams = objWMIService.ExecMethod("Win32_Service.Name='" & svcName & "'", "InterrogateService") |
| 285 | 513 | ||
| 514 | + lastErrorCode = objOutParams.ReturnValue | ||
| 515 | + | ||
| 286 | If (objOutParams.ReturnValue = SVC_SERVICE_NOT_ACTIVE) Then | 516 | If (objOutParams.ReturnValue = SVC_SERVICE_NOT_ACTIVE) Then |
| 287 | isServiceStarted = FALSE | 517 | isServiceStarted = FALSE |
| 288 | Else | 518 | Else |
| 289 | isServiceStarted = TRUE | 519 | isServiceStarted = TRUE |
| 290 | End If | 520 | End If |
| 291 | - | 521 | + |
| 292 | end Function | 522 | end Function |
| 293 | 523 | ||
| 294 | ' Method to start a service | 524 | ' Method to start a service |
| 295 | Public Function startService(ByVal svcName) | 525 | Public Function startService(ByVal svcName) |
| 526 | + If (NOT isServiceInstalled( svcName )) Then | ||
| 527 | + writeLog "The KnowledgeTree " & svcName & " service could not be started because it isn't installed. Run 'dmsctl.vbs install' to correct." | ||
| 528 | + startService = FALSE | ||
| 529 | + Exit Function | ||
| 530 | + End If | ||
| 531 | + | ||
| 296 | strComputer = "." | 532 | strComputer = "." |
| 297 | Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2") | 533 | Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2") |
| 298 | ' Obtain an instance of the the class | 534 | ' Obtain an instance of the the class |
| @@ -306,6 +542,8 @@ Public Function startService(ByVal svcName) | @@ -306,6 +542,8 @@ Public Function startService(ByVal svcName) | ||
| 306 | ' is created by the provider. | 542 | ' is created by the provider. |
| 307 | Set objOutParams = objWMIService.ExecMethod("Win32_Service.Name='" & svcName & "'", "StartService") | 543 | Set objOutParams = objWMIService.ExecMethod("Win32_Service.Name='" & svcName & "'", "StartService") |
| 308 | 544 | ||
| 545 | + lastErrorCode = objOutParams.ReturnValue | ||
| 546 | + | ||
| 309 | If (objOutParams.ReturnValue = SVC_SUCCESS) Then | 547 | If (objOutParams.ReturnValue = SVC_SUCCESS) Then |
| 310 | startService = TRUE | 548 | startService = TRUE |
| 311 | Else | 549 | Else |
| @@ -316,6 +554,12 @@ End Function | @@ -316,6 +554,12 @@ End Function | ||
| 316 | 554 | ||
| 317 | ' Method to stop a service | 555 | ' Method to stop a service |
| 318 | Public Function stopService(ByVal svcName) | 556 | Public Function stopService(ByVal svcName) |
| 557 | + If (NOT isServiceInstalled( svcName )) Then | ||
| 558 | + writeLog "The KnowledgeTree " & svcName & " service could not be stopped because it isn't installed. Run 'dmsctl.vbs install' to correct." | ||
| 559 | + stopService = FALSE | ||
| 560 | + Exit Function | ||
| 561 | + End If | ||
| 562 | + | ||
| 319 | strComputer = "." | 563 | strComputer = "." |
| 320 | Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2") | 564 | Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2") |
| 321 | ' Obtain an instance of the the class | 565 | ' Obtain an instance of the the class |
| @@ -328,6 +572,8 @@ Public Function stopService(ByVal svcName) | @@ -328,6 +572,8 @@ Public Function stopService(ByVal svcName) | ||
| 328 | ' The OutParameters object in objOutParams | 572 | ' The OutParameters object in objOutParams |
| 329 | ' is created by the provider. | 573 | ' is created by the provider. |
| 330 | Set objOutParams = objWMIService.ExecMethod("Win32_Service.Name='" & svcName & "'", "StopService") | 574 | Set objOutParams = objWMIService.ExecMethod("Win32_Service.Name='" & svcName & "'", "StopService") |
| 575 | + | ||
| 576 | + lastErrorCode = objOutParams.ReturnValue | ||
| 331 | 577 | ||
| 332 | If (objOutParams.ReturnValue = SVC_SUCCESS) Then | 578 | If (objOutParams.ReturnValue = SVC_SUCCESS) Then |
| 333 | stopService = TRUE | 579 | stopService = TRUE |
| @@ -337,6 +583,49 @@ Public Function stopService(ByVal svcName) | @@ -337,6 +583,49 @@ Public Function stopService(ByVal svcName) | ||
| 337 | 583 | ||
| 338 | End Function | 584 | End Function |
| 339 | 585 | ||
| 586 | +' Method to uninstall a service | ||
| 587 | +Public Function uninstallService(ByVal svcName) | ||
| 588 | + If (NOT isServiceInstalled( svcName )) Then | ||
| 589 | + uninstallService = TRUE ' Service already uninstalled so return TRUE | ||
| 590 | + Exit Function | ||
| 591 | + End If | ||
| 592 | + | ||
| 593 | + wasStopped = TRUE | ||
| 594 | + If (NOT stopService(svcName)) Then | ||
| 595 | + wasStopped = FALSE | ||
| 596 | + End If | ||
| 597 | + | ||
| 598 | + strComputer = "." | ||
| 599 | + Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2") | ||
| 600 | + ' Obtain an instance of the the class | ||
| 601 | + ' using a key property value. | ||
| 602 | + Set objShare = objWMIService.Get("Win32_Service.Name='" & svcName & "'") | ||
| 603 | + | ||
| 604 | + ' no InParameters to define | ||
| 605 | + | ||
| 606 | + ' Execute the method and obtain the return status. | ||
| 607 | + ' The OutParameters object in objOutParams | ||
| 608 | + ' is created by the provider. | ||
| 609 | + Set objOutParams = objWMIService.ExecMethod("Win32_Service.Name='" & svcName & "'", "Delete") | ||
| 610 | + | ||
| 611 | + lastErrorCode = objOutParams.ReturnValue | ||
| 612 | + | ||
| 613 | + If (objOutParams.ReturnValue = SVC_SUCCESS) Then | ||
| 614 | + uninstallService = TRUE | ||
| 615 | + Else | ||
| 616 | + uninstallService = FALSE | ||
| 617 | + | ||
| 618 | + ' Extra Event logging to assist the Administrator | ||
| 619 | + If (wasStopped) Then | ||
| 620 | + writeLog "The KnowledgeTree " & svcName & " service could not be uninstalled because it could not be stopped. Stop this service manually before uninstalling." | ||
| 621 | + uninstallService = FALSE ' Must be stop service before it can be uninstalled | ||
| 622 | + End If | ||
| 623 | + | ||
| 624 | + End If | ||
| 625 | + | ||
| 626 | +End Function | ||
| 627 | + | ||
| 628 | + | ||
| 340 | ' Execute a command | 629 | ' Execute a command |
| 341 | Public Function exec(ByVal cmd) | 630 | Public Function exec(ByVal cmd) |
| 342 | 631 | ||
| @@ -363,7 +652,7 @@ End Sub | @@ -363,7 +652,7 @@ End Sub | ||
| 363 | 652 | ||
| 364 | ' Event logging only works on Server 2003, 2000 and XP | 653 | ' Event logging only works on Server 2003, 2000 and XP |
| 365 | Public Sub logEvent(ByVal strMessage) | 654 | Public Sub logEvent(ByVal strMessage) |
| 366 | - | 655 | + |
| 367 | If (NOT isWindowsVista() AND NOT isWindows7 AND NOT isWindows2008) Then | 656 | If (NOT isWindowsVista() AND NOT isWindows7 AND NOT isWindows2008) Then |
| 368 | Const EVENT_SUCCESS = 0 | 657 | Const EVENT_SUCCESS = 0 |
| 369 | Set objShell = Wscript.CreateObject("Wscript.Shell") | 658 | Set objShell = Wscript.CreateObject("Wscript.Shell") |
| @@ -371,3 +660,13 @@ Public Sub logEvent(ByVal strMessage) | @@ -371,3 +660,13 @@ Public Sub logEvent(ByVal strMessage) | ||
| 371 | End If | 660 | End If |
| 372 | 661 | ||
| 373 | End Sub | 662 | End Sub |
| 663 | + | ||
| 664 | +' Event logging only works on Server 2003, 2000 and XP | ||
| 665 | +Public Sub writeLog(ByVal strMessage) | ||
| 666 | + Set objFSO = CreateObject("Scripting.FileSystemObject") | ||
| 667 | + ForAppending = 8 | ||
| 668 | + Set objTextFile = objFSO.OpenTextFile (currDir & "\var\log\dmsctl.log", ForAppending, True) | ||
| 669 | + objTextFile.WriteLine strMessage | ||
| 670 | + objTextFile.Close | ||
| 671 | +End Sub | ||
| 672 | + |
setup/wizard/lib/services/unixScheduler.php
| @@ -179,7 +179,7 @@ class unixScheduler extends unixService { | @@ -179,7 +179,7 @@ class unixScheduler extends unixService { | ||
| 179 | function start() { | 179 | function start() { |
| 180 | // TODO : Write sh on the fly? Not sure the reasoning here | 180 | // TODO : Write sh on the fly? Not sure the reasoning here |
| 181 | $source = $this->getSchedulerSourceLoc(); | 181 | $source = $this->getSchedulerSourceLoc(); |
| 182 | - $this->writeSchedulerTask(); | 182 | +// $this->writeSchedulerTask(); |
| 183 | $logFile = "/dev/null"; | 183 | $logFile = "/dev/null"; |
| 184 | // @unlink($logFile); | 184 | // @unlink($logFile); |
| 185 | if($source) { // Source | 185 | if($source) { // Source |
setup/wizard/steps/configuration.php
| @@ -247,10 +247,12 @@ class configuration extends Step | @@ -247,10 +247,12 @@ class configuration extends Step | ||
| 247 | public function doRun($edit = false) | 247 | public function doRun($edit = false) |
| 248 | { | 248 | { |
| 249 | $server = $this->getServerInfo(); | 249 | $server = $this->getServerInfo(); |
| 250 | - if(!$edit) $this->temp_variables['server'] = $server; | 250 | + if(!$edit || $this->util->isMigration()) |
| 251 | + $this->temp_variables['server'] = $server; | ||
| 251 | 252 | ||
| 252 | $paths = $this->getPathInfo($server['file_system_root']['value']); | 253 | $paths = $this->getPathInfo($server['file_system_root']['value']); |
| 253 | - if(!$edit) $this->temp_variables['paths'] = $paths; | 254 | + if(!$edit || $this->util->isMigration()) |
| 255 | + $this->temp_variables['paths'] = $paths; | ||
| 254 | 256 | ||
| 255 | // Rewrite file system root | 257 | // Rewrite file system root |
| 256 | if(!$this->fpath) { | 258 | if(!$this->fpath) { |
| @@ -432,13 +434,15 @@ class configuration extends Step | @@ -432,13 +434,15 @@ class configuration extends Step | ||
| 432 | { | 434 | { |
| 433 | if(isset($this->temp_variables['paths'])) { | 435 | if(isset($this->temp_variables['paths'])) { |
| 434 | if ($this->util->isMigration()) { // Check if its an upgrade | 436 | if ($this->util->isMigration()) { // Check if its an upgrade |
| 435 | - $this->readInstallation(); // Read values from config.ini of other installation | 437 | + $this->readConfigPath(); // Read contents of config-path file as only var Documents are used of old stack |
| 438 | + $this->readInstallation(); // Read values from config.ini of other installation and overwrite config-path's | ||
| 436 | $dirs = $this->getFromConfigPath(); // Store contents | 439 | $dirs = $this->getFromConfigPath(); // Store contents |
| 437 | } else { | 440 | } else { |
| 438 | $dirs = $this->temp_variables['paths']; // Pull from temp | 441 | $dirs = $this->temp_variables['paths']; // Pull from temp |
| 439 | } | 442 | } |
| 440 | } else { | 443 | } else { |
| 441 | if ($this->util->isMigration()) { // Check if its an upgrade | 444 | if ($this->util->isMigration()) { // Check if its an upgrade |
| 445 | + $this->readConfigPath(); // Read contents of config-path file as only var Documents are used of old stack | ||
| 442 | $this->readInstallation(); // Read values from config.ini of other installation | 446 | $this->readInstallation(); // Read values from config.ini of other installation |
| 443 | } else { | 447 | } else { |
| 444 | $this->readConfigPath(); // Read contents of config-path file | 448 | $this->readConfigPath(); // Read contents of config-path file |
| @@ -455,13 +459,13 @@ class configuration extends Step | @@ -455,13 +459,13 @@ class configuration extends Step | ||
| 455 | } | 459 | } |
| 456 | if(WINDOWS_OS) | 460 | if(WINDOWS_OS) |
| 457 | $path = preg_replace('/\//', '\\',$path); | 461 | $path = preg_replace('/\//', '\\',$path); |
| 458 | - $dirs[$key]['path'] = $path; | ||
| 459 | - $path = $class = strtolower(substr($path,0,1)).substr($path,1); // Damn you windows | ||
| 460 | - if(isset($dir['file'])) { | ||
| 461 | - $class = $this->util->checkPermission($path, false, true); | ||
| 462 | - } else { | ||
| 463 | - $class = $this->util->checkPermission($path, $dir['create']); | ||
| 464 | - } | 462 | + $dirs[$key]['path'] = $path; |
| 463 | + $path = $class = strtolower(substr($path,0,1)).substr($path,1); // Damn you windows | ||
| 464 | + if(isset($dir['file'])) { | ||
| 465 | + $class = $this->util->checkPermission($path, false, true); | ||
| 466 | + } else { | ||
| 467 | + $class = $this->util->checkPermission($path, $dir['create']); | ||
| 468 | + } | ||
| 465 | if(isset($class['msg'])) { | 469 | if(isset($class['msg'])) { |
| 466 | if($class['class'] != 'tick') { | 470 | if($class['class'] != 'tick') { |
| 467 | $this->temp_variables['paths_perms'] = $class['class']; | 471 | $this->temp_variables['paths_perms'] = $class['class']; |
var/bin/schedulerTask.sh
| @@ -2,11 +2,11 @@ | @@ -2,11 +2,11 @@ | ||
| 2 | PHP_CLI="/usr/local/zend/bin/php" | 2 | PHP_CLI="/usr/local/zend/bin/php" |
| 3 | 3 | ||
| 4 | BIN_DIR=$(dirname $0) | 4 | BIN_DIR=$(dirname $0) |
| 5 | -INSTALL_DIR="../../${BIN_DIR}" | 5 | +INSTALL_DIR="../..${BIN_DIR}" |
| 6 | 6 | ||
| 7 | cd $INSTALL_DIR/bin | 7 | cd $INSTALL_DIR/bin |
| 8 | 8 | ||
| 9 | while true; do | 9 | while true; do |
| 10 | $PHP_CLI -Cq scheduler.php | 10 | $PHP_CLI -Cq scheduler.php |
| 11 | sleep 30 | 11 | sleep 30 |
| 12 | -done | ||
| 13 | \ No newline at end of file | 12 | \ No newline at end of file |
| 13 | +done |