Run Powershell or Command Prompt as administrator during Visual Studio Team Services build
Asked Answered
V

1

15

I am working on a project where we are delay signing the assemblies. I need to use the strong name tool a couple times during the build, to turn off strong name verification, and then to fully sign the assemblies before they are packaged. I attempted to use a powershell step to turn off verification, but it came back with this error:

Script:

$testprojs = gci Project.*.dll -r
$testprojs | % {
            sn -Vr $_
            write-output $("Turned off sn verification for " + $_.Name)
}

Error:

Failed to open registry key -- Administrator permissions are needed to use
the selected options. Use an administrator command prompt to complete these tasks.

So I created a script that would run the first one, but added the -elevated parameter. This made no difference.

I also tried using a command prompt step instead of powershell. This also returned the same error.

For /r %g in ("Project.*.dll") DO sn -Vr %g

When I tried running this same script rdp'd to the build agent machine itself, it works as intended. It's only when it runs as a step in the build does it not work.

Any ideas?

Villeneuve answered 11/4, 2016 at 13:36 Comment(0)
D
10

According to your description:

When I tried running this same script rdp'd to the build agent machine itself, it works as intended.

I assume you are using your own build agent for build. Then this may caused by the build agent isn't running with an administrator account. Please update your build agent to run with administrator account and then try again.

Run the agent Run as a service

If you deployed the agent to run as a Windows service, then the agent running status can be controlled from the Services snap-in. Run services.msc and look for "VSO Agent ()". If you need to change the logon account, don't do it from the services snap-in. Instead, From an elevated Command Prompt, run: C:\Agent\Agent\VsoAgent.exe /ChangeWindowsServiceAccount Run interactively

Otherwise if you installed the agent to run interactively, the agent can be started by launching Agent\VsoAgent.exe.

Refer to this link for details: Run the agent

Deodar answered 12/4, 2016 at 0:56 Comment(2)
This was it! Yes it is our own build agent. I hadn't realised that the account the service was running under didn't have administrative permissions. CheersVilleneuve
As of 2020, this doesn't work anymore. I do have the same setup, and the Agent runs with an Administrator account, however, it can't run any command that depends on elevation.Exorbitance

© 2022 - 2024 — McMap. All rights reserved.