Guest User

Untitled

a guest
Aug 8th, 2018
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.81 KB | None | 0 0
  1. #Create a credential to be used on remote machines
  2. $User = "MyDomainmyusername"
  3. $Password = ConvertTo-SecureString 'password' -asplaintext -force
  4. $Credential = New-Object -typename System.Management.Automation.PSCredential
  5. -ArgumentList $User, $Password
  6.  
  7.  
  8. $Server1 = New-Object System.Object
  9. $Server1 | Add-Member -type NoteProperty -name Name -value "Apollo-1"
  10. $arrServ1Services = @("MSSQLSERVER","QueueManager")
  11. $Server1 | Add-Member -type NoteProperty -name Services -value $arrServ1Services
  12.  
  13.  
  14.  
  15. $Server2 = New-Object System.Object
  16. $Server2 | Add-Member -type NoteProperty -name Name -value "Apollo-2"
  17. $arrServ2Services = @("Analytics Engine", "MSSQLSERVER")
  18. $Server2 | Add-Member -type NoteProperty -name Services -value $arrServ2Services
  19.  
  20.  
  21.  
  22. $Server3 = New-Object System.Object
  23. $Server3 | Add-Member -type NoteProperty -name Name -value "Apollo-3"
  24. $arrServ3Services = @("EDDS Agent Manager", "MSSQLSERVER", "Secret Store")
  25. $Server3 | Add-Member -type NoteProperty -name Services -value
  26. $arrServ3Services
  27.  
  28.  
  29. $Server4 = New-Object System.Object
  30. $Server4 | Add-Member -type NoteProperty -name Name -value "Apollo-4"
  31. $arrServ4Services = @("Service Host Manager", "MSSQLSERVER","Service Bus
  32. Gateway","Service Bus Message Broker","Service Bus Resource
  33. Provider","Service Bus VSS","EDDS Agent Manager","Analytics Engine")
  34. $Server4 | Add-Member -type NoteProperty -name Services -value arrServ4Services
  35.  
  36.  
  37. $Server5 = New-Object System.Object
  38. $Server5 | Add-Member -type NoteProperty -name Name -value "Apollo-5"
  39. $arrServ5Services = @("MSSQLSERVER")
  40. $Server5 | Add-Member -type NoteProperty -name Services -value $arrServ5Services
  41.  
  42.  
  43. $Server6 = New-Object System.Object
  44. $Server6 | Add-Member -type NoteProperty -name Name -value "Apollo-6"
  45. $arrServ6Services = @("Web Processing Manager", "Service Host Manager")
  46. $Server6 | Add-Member -type NoteProperty -name Services -value $arrServ6Services
  47.  
  48.  
  49. $Server7 = New-Object System.Object
  50. $Server7 | Add-Member -type NoteProperty -name Name -value "Apollo-7"
  51. $arrServ7Services = @("Web Processing Manager", "Service Host Manager")
  52. $Server7 | Add-Member -type NoteProperty -name Services -value
  53. $arrServ7Services
  54.  
  55.  
  56. $Server8 = New-Object System.Object
  57. $Server8 | Add-Member -type NoteProperty -name Name -value "Apollo-8"
  58. $arrServ8Services = @("elasticsearch-service-x64")
  59. $Server8 | Add-Member -type NoteProperty -name Services -value
  60. $arrServ8Services
  61.  
  62.  
  63.  
  64. #Create an object to represent the entire Server environment
  65. $ServerEnvironment = New-Object System.Object
  66. $ServerEnvironment | Add-Member -type NoteProperty -name Machines -value
  67. @($Server1, $Server2, $Server3, $Server4, $Server5, $Server6, $Server7,
  68. $Server8)
  69.  
  70.  
  71. #Iterate through each machine in the environment and stop the services.
  72. for ($x = $ServerEnvironment.Machines.Length-1; $x -gt -1; $x--) {
  73. Write-Host " "
  74. Write-Host " "
  75. Write-Host "Machine:" $ServerEnvironment.Machines[$x].Name
  76. Write-Host "No. of Services we are monitoring:"
  77. $ServerEnvironment.Machines[$x].Services.Length
  78.  
  79. #iterate through services
  80. for ($c = 0; $c -lt $ServerEnvironment.Machines[$x].Services.Length; $c++) {
  81. $_s = Invoke-Command -ComputerName $ServerEnvironment.Machines[$x].Name -
  82. Credential $Credential -Command{param($SERV) Get-Service -Name $SERV} -
  83. ArgumentList $ServerEnvironment.Machines[$x].Services[$c]
  84. Write-Host $ServerEnvironment.Machines[$x].Services[$c] $_s.Status
  85. $_s.StartType
  86.  
  87. Invoke-Command -ComputerName $ServerEnvironment.Machines[$x].Name -
  88. Credential $Credential -Command{param($SERV) Stop-Service -Name $SERV} -
  89. ArgumentList $ServerEnvironment.Machines[$x].Services[$c]
  90. }
  91. }
  92.  
  93.  
  94. #Iterate through each machine in the environment. Here we are starting the
  95. services.
  96. for ($x = 0; $x -lt $ServerEnvironment.Machines.Length; $x++) {
  97.  
  98. Write-Host " "
  99. Write-Host " "
  100.  
  101. Write-Host "Machine:" $ServerEnvironment.Machines[$x].Name
  102. Write-Host "No. of Services we are monitoring:"
  103. $ServerEnvironment.Machines[$x].Services.Length
  104.  
  105. #iterate through service
  106. for ($c = 0; $c -lt $ServerEnvironment.Machines[$x].Services.Length; $c++) {
  107. $_s = Invoke-Command -ComputerName $ServerEnvironment.Machines[$x].Name -
  108. Credential $Credential -Command{param($SERV) Get-Service -Name $SERV} -ArgumentList $ServerEnvironment.Machines[$x].Services[$c]
  109. Write-Host $ServerEnvironment.Machines[$x].Services[$c] $_s.Status $_s.StartType
  110.  
  111. Invoke-Command -ComputerName $ServerEnvironment.Machines[$x].Name -
  112. Credential $Credential -Command{param($SERV) Start-Service -Name $SERV} -
  113. ArgumentList $ServerEnvironment.Machines[$x].Services[$c]
  114.  
  115. }
  116.  
  117. }
  118.  
  119.  
  120. Write-Host "Done"
  121.  
  122. #Create a credential to be used on remote machines
  123. $User = "MyDomainmyusername"
  124. $Password = ConvertTo-SecureString 'password' -asplaintext -force
  125. $Credential = New-Object -typename System.Management.Automation.PSCredential
  126. -ArgumentList $User, $Password
  127.  
  128. $ServerServices = @"
  129. "Name","Services"
  130. "Apollo-1","MSSQLSERVER,QueueManager"
  131. "Apollo-2","Analytics Engine,MSSQLSERVER"
  132. "Apollo-3","EDDS Agent Manager,MSSQLSERVER,Secret Store "
  133. "Apollo-4","Service Host Manager,MSSQLSERVER,Service Bus "
  134. "Apollo-5","MSSQLSERVER"
  135. "Apollo-6","Web Processing Manager,Service Host Manager "
  136. "Apollo-7","Web Processing Manager,Service Host Manager "
  137. "Apollo-8","elasticsearch-service-x64"
  138. "@ | ConvertFrom-Csv
  139.  
  140.  
  141. #Iterate through each machine in the environment and stop the services.
  142.  
  143. ForEach ($Server in $ServerServices){
  144. $Services = $Server.Services -split ','
  145. Write-Host " "
  146. Write-Host " "
  147. Write-Host "Machine:" $Server.Name
  148. Write-Host ("No. of Services we are monitoring: {0}" -f $Services.Length)
  149.  
  150. #iterate through services
  151. ForEach ($Service in $Services) {
  152. $_s = Invoke-Command -ComputerName $Server.Name -Credential $Credential -Command {
  153. param($SERV) Get-Service -Name $SERV} -ArgumentList $Service
  154. }
  155. ...
  156. }
  157. }
  158.  
  159. #Iterate through each machine in the environment. Here we are starting the
  160.  
  161. # same as above
  162.  
  163. Write-Host "Done"
Add Comment
Please, Sign In to add comment