Change start mode for Windows services via PowerShell
Some Windows services are unnecessary for some users or some production environments such as Windows Update, if you have WSUS!
Disabling or stopping services on one or two computers is very easy but for 100 computers or more!
I wrote a script for that, you can change services start mode on one or a list of computers by this script.
################################################################# ## SCOR v0.1 07.07.2012 ## ## This script is written by Davoud Teimouri ## ## For changing Windows services status ## ################################################################# Function Change_Start_Mode ([string]$Client,[string]$ServiceName,[string]$Choice,$Cred) { Switch ($Choice) { 1 { $Service = (Get-WmiObject -class "Win32_service" -computername $Client -filter "name='$ServiceName'" -namespace "ROOT\CIMV2" -EnableAllPrivileges -Credential $Cred ).ChangeStartMode("Automatic") Write-Host("The service start mode has been changed to Automatic on " + $Client) } 2 { $Service = (Get-WmiObject -class "Win32_service" -computername $Client -filter "name='$ServiceName'" -namespace "ROOT\CIMV2" -EnableAllPrivileges -Credential $Cred ).ChangeStartMode("Manual") Write-Host("The service start mode has been changed to Manual on " + $Client) } 3 { $Service = (Get-WmiObject -class "Win32_service" -computername $Client -filter "name='$ServiceName'" -namespace "ROOT\CIMV2" -EnableAllPrivileges -Credential $Cred ).StopService() $Service = (Get-WmiObject -class "Win32_service" -computername $Client -filter "name='$ServiceName'" -namespace "ROOT\CIMV2" -EnableAllPrivileges -Credential $Cred ).ChangeStartMode("Disabled") Write-Host("The service start mode has been changed to Disabled on " + $Client) } } } $Cred=Get-Credential CLS #Clear Screen Write-Host ("1. Change service status on single computer") Write-Host ("2. Change service status on a list of computers (Service name is different with service display name)") $Choice1= Read-Host ("Please select your choice") Write-Host Write-Host ("1.Automatic") Write-Host ("2.Manual") Write-Host ("3.Disabled") $Choice2=Read-Host ("Please select service status") Switch ($Choice1) { 1 { $Client=Read-Host ("Please enter computer name") $ServiceName= Read-Host ("Pleas enter your service name") Change_Start_Mode $Client $ServiceName $Choice2 $Cred } 2 { $FileName=Read-Host ("Please enter your file path") $Clients=Get-Content $FileName $ServiceName=Read-Host("Please enter your service name") ForEach ($Client in $Clients) { Change_Start_Mode $Client $ServiceName $Choice2 $Cred } } }
[quotes_and_tips]