function Set-ServiceAccountManagedState { <# .SYNOPSIS Set the service managed account state value to True While we could provide a flag to set it to off, we don't do that, because we use gMSA accounts .PARAMETER ServiceName The service name to set the state for #> [CmdletBinding()] param ( [string]$ServiceName ) $logLead = (Get-logLeadName) if ($null -eq (Get-Service -Name $ServiceName)) { Write-Warning "$logLead : [$ServiceName] does not appear to be a valid service. Can not set the service account managed state" return } Write-Host "$logLead : Setting process to managedaccount $ServiceName true" Invoke-SCExe @("managedaccount",$ServiceName,"True") if ($LASTEXITCODE -ne 0) { Write-Error "$logLead : Attempt to call sc.exe and set service account managed state errored out. Please review logs" } else { Write-Host "$logLead : Successfully set the managed state for [$ServiceName]" } }