diff --git a/docs/content/dev/tweaks/Essential-Tweaks/Services.md b/docs/content/dev/tweaks/Essential-Tweaks/Services.md index cb7cce06..ed4a06b7 100644 --- a/docs/content/dev/tweaks/Essential-Tweaks/Services.md +++ b/docs/content/dev/tweaks/Essential-Tweaks/Services.md @@ -960,3 +960,46 @@ } ], ``` +#Function +```powershell +Function Set-WinUtilService { + <# + + .SYNOPSIS + Changes the startup type of the given service + + .PARAMETER Name + The name of the service to modify + + .PARAMETER StartupType + The startup type to set the service to + + .EXAMPLE + Set-WinUtilService -Name "HomeGroupListener" -StartupType "Manual" + + #> + param ( + $Name, + $StartupType + ) + try { + Write-Host "Setting Service $Name to $StartupType" + + # Check if the service exists + $service = Get-Service -Name $Name -ErrorAction Stop + + # Service exists, proceed with changing properties -- while handling auto delayed start for PWSH 5 + if (($PSVersionTable.PSVersion.Major -lt 7) -and ($StartupType -eq "AutomaticDelayedStart")) { + sc.exe config $Name start=delayed-auto + } else { + $service | Set-Service -StartupType $StartupType -ErrorAction Stop + } + } catch [System.ServiceProcess.ServiceNotFoundException] { + Write-Warning "Service $Name was not found" + } catch { + Write-Warning "Unable to set $Name due to unhandled exception" + Write-Warning $_.Exception.Message + } + +} +```