|
- ' Copyright (c) 2012-2020, EnterpriseDB Corporation. All rights reserved
- On Error Resume Next
-
- ' PostgreSQL server startup script for Windows
-
- ' Check the command line
- If WScript.Arguments.Count <> 1 Then
- Wscript.Echo "Usage: startserver.vbs <ServiceName>"
- Wscript.Quit 127
- End If
-
- strServiceName = WScript.Arguments.Item(0)
-
- lServices = 0
-
- Dim objWMIService, colServiceList, objService
- Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
-
- ' Find any service we require
- Set colServiceList = objWMIService.ExecQuery("Associators of {Win32_Service.Name='" & strServiceName & "'} Where AssocClass=Win32_DependentService Role=Dependent")
-
- ' Start the dependencies
- For Each objService in colServiceList
- If objService.State <> "Running" Then
- WScript.Echo "Starting " & objService.Name
- iRetval = objService.StartService()
- If iRetval = 0 Then
- WScript.Echo "Parent service " & objService.Name & " started successfully"
- Else
- WScript.Echo "Parent service " & objService.Name & " did not start (" & iRetVal & ")"
- End If
- End If
- Next
-
- ' Find the service
- Set objService = objWMIService.Get("Win32_Service.Name='" & strServiceName & "'")
-
- ' Start it (them)
- If objService.State <> "Running" Then
- WScript.Echo "Starting " & objService.Name
- iRetval = objService.StartService()
- If iRetval = 0 Then
- WScript.Echo "Service " & objService.Name & " started successfully"
- Else
- WScript.Echo "Failed to start the database server (" & iRetVal & ")"
- WScript.Quit 1
- End If
- Else
- WScript.Echo "Service " & objService.Name & " is already running"
- End If
-
- ' Give the server a change to finish any recovery etc. Shouldn't be required with -w, but...
- WScript.Sleep(5000)
-
- WScript.Echo "startserver.vbs ran to completion"
- WScript.Quit 0
|