Code: Select all
' Remote Script
set oFS = CreateObject("Scripting.FileSystemObject")
set oTS = oFS.OpenTextFile("serverdatabase.csv")
oFS.CopyFile ">srv1groupsIT GROUP DATAHQDRDR StartupPlannedStartupRemote.vbs", "srv1groupsIT GROUP DATAHQDRDR Startup"
' srv1groupsIT GROUP DATAHQDR
Do Until oTS.AtEndOfStream
Dim wshShell
' Set it up
set wshShell=CreateObject("wscript.shell")
'title for popup window
strTitle= "Script Status"
strLine = Trim(oTS.ReadLine)
arrSplit = Split(strLine, ",")
sServer = arrSplit(0) 'Server Name
sIPHQ = arrSplit(1) 'HQ IP Address
sIPDR = arrSplit(2) 'DR IP Address
sSubnetHQ = arrSplit(3) 'HQ Subnet
sSubnetDR = arrSplit(4) 'DR Subnet
sGatewayHQ = arrSplit(5) 'HQ Gateway
sGatewayDR = arrSplit(6) 'DR Gateway
sDNS1HQ = arrSplit(7) 'HQ DNS1
sDNS1DR = arrSplit(8) 'DR DNS1
sDNS2HQ = arrSplit(9) 'HQ DNS2
sDNS2DR = arrSplit(10) 'DR DNS2
sSVC1 = arrSplit(11) 'Service 1 - WMI - Will need to be in Final script!
sSVC2 = arrSplit(12) 'Service 2
sSVC3 = arrSplit(13) 'Service 3
sSVC4 = arrSplit(14) 'Service 4
' Get IP address for servers to display in the ping block
strcomputer = sServer
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!" & strComputer & "rootcimv2")
Set colItems = objWMIService.ExecQuery ("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True")
For Each objitem in colitems
strIPAddress = Join(objitem.IPAddress, ",")
IP = stripaddress
Next
' Ping servers
Set CPingResults = GetObject ("winmgmts://./root/cimv2").ExecQuery("SELECT * " & "FROM Win32_PingStatus WHERE Address ='" & sServer & "'")
For Each oPingResult In CPingResults
If oPingResult.StatusCode = 0 Then
wshShell.Popup sServer & " resolves" & VbCrLf & "IP Address: " & IP,5,strTitle,vbOKOnly+vbInformation
Else
wshShell.Popup sServer & " did not resolve, run local script" & VbCrLf & "IP Address: " & IP,7,strTitle,vbOKOnly+vbInformation
End If
Next
' Start services
strComputer = sServer
' Bind services to WMI from csv
set oShell = CreateObject("WScript.Shell")
aServices = Array(sSVC1, sSVC2, sSVC3, sSVC4)
For Each sService In aServices
oShell.Run "Net.exe start "& Chr(34) & sService & Chr(34), 0, True
Next
' Run local script on servers that will run batch file
strComputer = sServer
strCommand = "cscript.exe " & sServer & "C$ScriptsStartup.vbs"
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!" & strComputer & "rootcimv2")
Set objProcess = objWMIService.Get("Win32_Process")
errReturn = objProcess.Create(strCommand, null, null, intProcessID)
If errReturn = 0 Then
wshShell.Popup "Local script on " & sServer & " has been initiated",3,strTitle,vbOKOnly+vbInformation
Else
wshShell.Popup "Local script on " & sServer,3,strTitle,vbOKOnly+vbInformation
End If
Loop