Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #Create a credential to be used on remote machines
- $User = "MyDomainmyusername"
- $Password = ConvertTo-SecureString 'password' -asplaintext -force
- $Credential = New-Object -typename System.Management.Automation.PSCredential
- -ArgumentList $User, $Password
- $Server1 = New-Object System.Object
- $Server1 | Add-Member -type NoteProperty -name Name -value "Apollo-1"
- $arrServ1Services = @("MSSQLSERVER","QueueManager")
- $Server1 | Add-Member -type NoteProperty -name Services -value $arrServ1Services
- $Server2 = New-Object System.Object
- $Server2 | Add-Member -type NoteProperty -name Name -value "Apollo-2"
- $arrServ2Services = @("Analytics Engine", "MSSQLSERVER")
- $Server2 | Add-Member -type NoteProperty -name Services -value $arrServ2Services
- $Server3 = New-Object System.Object
- $Server3 | Add-Member -type NoteProperty -name Name -value "Apollo-3"
- $arrServ3Services = @("EDDS Agent Manager", "MSSQLSERVER", "Secret Store")
- $Server3 | Add-Member -type NoteProperty -name Services -value
- $arrServ3Services
- $Server4 = New-Object System.Object
- $Server4 | Add-Member -type NoteProperty -name Name -value "Apollo-4"
- $arrServ4Services = @("Service Host Manager", "MSSQLSERVER","Service Bus
- Gateway","Service Bus Message Broker","Service Bus Resource
- Provider","Service Bus VSS","EDDS Agent Manager","Analytics Engine")
- $Server4 | Add-Member -type NoteProperty -name Services -value arrServ4Services
- $Server5 = New-Object System.Object
- $Server5 | Add-Member -type NoteProperty -name Name -value "Apollo-5"
- $arrServ5Services = @("MSSQLSERVER")
- $Server5 | Add-Member -type NoteProperty -name Services -value $arrServ5Services
- $Server6 = New-Object System.Object
- $Server6 | Add-Member -type NoteProperty -name Name -value "Apollo-6"
- $arrServ6Services = @("Web Processing Manager", "Service Host Manager")
- $Server6 | Add-Member -type NoteProperty -name Services -value $arrServ6Services
- $Server7 = New-Object System.Object
- $Server7 | Add-Member -type NoteProperty -name Name -value "Apollo-7"
- $arrServ7Services = @("Web Processing Manager", "Service Host Manager")
- $Server7 | Add-Member -type NoteProperty -name Services -value
- $arrServ7Services
- $Server8 = New-Object System.Object
- $Server8 | Add-Member -type NoteProperty -name Name -value "Apollo-8"
- $arrServ8Services = @("elasticsearch-service-x64")
- $Server8 | Add-Member -type NoteProperty -name Services -value
- $arrServ8Services
- #Create an object to represent the entire Server environment
- $ServerEnvironment = New-Object System.Object
- $ServerEnvironment | Add-Member -type NoteProperty -name Machines -value
- @($Server1, $Server2, $Server3, $Server4, $Server5, $Server6, $Server7,
- $Server8)
- #Iterate through each machine in the environment and stop the services.
- for ($x = $ServerEnvironment.Machines.Length-1; $x -gt -1; $x--) {
- Write-Host " "
- Write-Host " "
- Write-Host "Machine:" $ServerEnvironment.Machines[$x].Name
- Write-Host "No. of Services we are monitoring:"
- $ServerEnvironment.Machines[$x].Services.Length
- #iterate through services
- for ($c = 0; $c -lt $ServerEnvironment.Machines[$x].Services.Length; $c++) {
- $_s = Invoke-Command -ComputerName $ServerEnvironment.Machines[$x].Name -
- Credential $Credential -Command{param($SERV) Get-Service -Name $SERV} -
- ArgumentList $ServerEnvironment.Machines[$x].Services[$c]
- Write-Host $ServerEnvironment.Machines[$x].Services[$c] $_s.Status
- $_s.StartType
- Invoke-Command -ComputerName $ServerEnvironment.Machines[$x].Name -
- Credential $Credential -Command{param($SERV) Stop-Service -Name $SERV} -
- ArgumentList $ServerEnvironment.Machines[$x].Services[$c]
- }
- }
- #Iterate through each machine in the environment. Here we are starting the
- services.
- for ($x = 0; $x -lt $ServerEnvironment.Machines.Length; $x++) {
- Write-Host " "
- Write-Host " "
- Write-Host "Machine:" $ServerEnvironment.Machines[$x].Name
- Write-Host "No. of Services we are monitoring:"
- $ServerEnvironment.Machines[$x].Services.Length
- #iterate through service
- for ($c = 0; $c -lt $ServerEnvironment.Machines[$x].Services.Length; $c++) {
- $_s = Invoke-Command -ComputerName $ServerEnvironment.Machines[$x].Name -
- Credential $Credential -Command{param($SERV) Get-Service -Name $SERV} -ArgumentList $ServerEnvironment.Machines[$x].Services[$c]
- Write-Host $ServerEnvironment.Machines[$x].Services[$c] $_s.Status $_s.StartType
- Invoke-Command -ComputerName $ServerEnvironment.Machines[$x].Name -
- Credential $Credential -Command{param($SERV) Start-Service -Name $SERV} -
- ArgumentList $ServerEnvironment.Machines[$x].Services[$c]
- }
- }
- Write-Host "Done"
- #Create a credential to be used on remote machines
- $User = "MyDomainmyusername"
- $Password = ConvertTo-SecureString 'password' -asplaintext -force
- $Credential = New-Object -typename System.Management.Automation.PSCredential
- -ArgumentList $User, $Password
- $ServerServices = @"
- "Name","Services"
- "Apollo-1","MSSQLSERVER,QueueManager"
- "Apollo-2","Analytics Engine,MSSQLSERVER"
- "Apollo-3","EDDS Agent Manager,MSSQLSERVER,Secret Store "
- "Apollo-4","Service Host Manager,MSSQLSERVER,Service Bus "
- "Apollo-5","MSSQLSERVER"
- "Apollo-6","Web Processing Manager,Service Host Manager "
- "Apollo-7","Web Processing Manager,Service Host Manager "
- "Apollo-8","elasticsearch-service-x64"
- "@ | ConvertFrom-Csv
- #Iterate through each machine in the environment and stop the services.
- ForEach ($Server in $ServerServices){
- $Services = $Server.Services -split ','
- Write-Host " "
- Write-Host " "
- Write-Host "Machine:" $Server.Name
- Write-Host ("No. of Services we are monitoring: {0}" -f $Services.Length)
- #iterate through services
- ForEach ($Service in $Services) {
- $_s = Invoke-Command -ComputerName $Server.Name -Credential $Credential -Command {
- param($SERV) Get-Service -Name $SERV} -ArgumentList $Service
- }
- ...
- }
- }
- #Iterate through each machine in the environment. Here we are starting the
- # same as above
- Write-Host "Done"
Add Comment
Please, Sign In to add comment