How to remotely start service on Azure VM with powershell 5.1

Viewed 25

How can I start a service on an Azure VM remotely? It seems impossible to do without Powershell being "Run as Administrator". Is there a way to launch as admin?

(I would pass in Get-Credential parameter, but unfortunately the 5.1 version Set-Service command does not accept that as a parameter like it does in Powershell version 7.x, and i am limited to 5.1 for now.)

My credentials do have admin level rights on the VM, but i can't seem to figure out a way to pass that via a command.

I am triggering the call like this, where $action is either 'stop' or 'start':

$runCommand = Invoke-AzVMRunCommand `
            -ResourceGroupName $rg `
            -VMName $vm `
            -CommandId 'RunPowerShellScript' `
            -ScriptPath $scriptPath `
            -Parameter @{action = $action}

The linked script would then execute something like this:

$serviceNames = @("service1, service2")

foreach($serviceName in $serviceNames){
    $service = Get-Service -Name $serviceName
    if($service){
        if($action -ieq "start"){
             Set-Service -InputObject $service -Status "Running"
        }
    }
    else{
        Write-Output "Service $serviceName not found!"
    }
}
  • When i run from my laptop - it hangs.
  • When i run from Azure portal via "Run Command" - it hangs.
  • When i run from the VM itself - it says: "Service '' cannot be configured due to the following error: Access is denied
  • When i run from the VM itself but start Powershell as admin - It works!
0 Answers
Related