Saturday, November 28, 2015

Bulk start, stop, disable of windows services

Sharing a script that we have used recently for stopping/starting exchange services & setting those to disabled/enabled for some hardware maintenance work. This script has been enhanced to be used with any of the windows services.

Extract the script zip from below link & update the servers.txt & services.txt that is placed inside the script folder.

https://gallery.technet.microsoft.com/scriptcenter/Bulk-start-stop-disable-of-ea821281



Example of services file :



Example of servers file:



Ones both the files have been updated, you just have to run the batch file & it will prompt you for status/ startup that you want to set.



As you can see in the above screenshot , values for status can be : stopped or running

Values for startuptype can be : manual, stopped, disabled

If you enter values other than these, than script will exit by throwing error as below:



Let us now enter the correct values for the parameters: for example - stopped & disabled

Press return to execute..



All services have been stopped & set to disabled.





similarly after maintenance of hardware is completed, you can use Running & automatic as values.

Note:- Use PS version 3.0 or above


################################################################################### 
#            Author: Vikas Sukhija http://msexchange.me 
#            Date: 11/12/2015 
#            Update:11/28/2015 
#            Reviewer: 
#            Description: Start, stop, disable ,manual, automatic 
################################################################################### 
 
param
     
$status
$startup 

 
write-host "After updating the servers & Services file" -foregroundcolor Magenta 
write-host "Use Script as setsvssts.ps1 startuptype status" -foregroundcolor Magenta 
write-host "-----------------------------------------------" -foregroundcolor Magenta 
write-host "--------Examples--------" -foregroundcolor Magenta 
write-host "Use Script as setsvssts.ps1 stopped manual" -foregroundcolor Magenta 
write-host "Use Script as setsvssts.ps1 stopped automatic" -foregroundcolor Magenta 
write-host "Use Script as setsvssts.ps1 stopped disabled" -foregroundcolor Magenta 
write-host "Use Script as setsvssts.ps1 running manual" -foregroundcolor Magenta 
write-host "Use Script as setsvssts.ps1 running manual" -foregroundcolor Magenta 
 
write-host "=========================================== " -foregroundcolor Blue 
 
 
write-host "You can also enter parameters when Prompted " -foregroundcolor Blue 
 
$servers = gc .\servers.txt 
$services = gc .\services.txt 
 
if(($status -like "stopped"-or ($status -like "running")){ }else
    $status = Read-host "Refer above and Enter Value for status:"  
    if(($status -like "stopped"-or ($status -like "running")){ }else
    Write-Host "You have entered invalid input, script will end now" -foregroundcolor Red 
    timeout 10 
    exit

 
if(($startup -like "manual"-or ($startup -like "automatic"-or ($startup -like "disabled")){ }else
    $startup = Read-host "Refer above and Enter Value for startuptype:"  
    if(($startup -like "manual"-or ($startup -like "automatic"-or ($startup -like "disabled")){ }else
    Write-Host "You have entered invalid input, script will end now" -foregroundcolor Red 
    timeout 10 
    exit

 
$servers | foreach-object { 
Write-host "Processing ....................... $_" 
$comp = $_ 
 
$services | foreach-object { 
$svc = $_ 
$comp 
$svc 
 
Set-Service -ComputerName $comp -Name $svc -StartupType $startup 
if$status -like "stopped"){ 
get-service -ComputerName $comp -Name $svc | Stop-Service -force} 
 
if$status -like "running"){ 
get-service -ComputerName $comp -Name $svc | Start-Service
 
 

 

####################################################################################




 

Regards

Sukhija Vikas

http://msexchange.me

3 comments:

  1. Hello Vikas,

    Could you please help me to writing a script, which is monitor the multiple Services from one server and sent the report to me through mail if the service is down.

    I have placed the required services in services.txt

    I tried so many options but failing :(

    Regards,
    Chandra

    ReplyDelete
  2. Please refer my different script

    https://syscloudpro.com/2013/07/07/services-monitor-report/

    ReplyDelete
  3. Thanks Vikas. I tried it it is working for me, but can we notify only which is not running. For example IIS ADMIN is running and WWW service is not running. I need to get the alert only for WWW service.

    ReplyDelete