web-dev-qa-db-ja.com

Visual Studio Team Servicesのビルド中に、管理者としてPowershellまたはコマンドプロンプトを実行します

私は、アセンブリへの署名が遅れているプロジェクトに取り組んでいます。ビルド中に厳密な名前ツールを数回使用して、厳密な名前の検証をオフにし、アセンブリをパッケージ化する前に完全に署名する必要があります。 PowerShellの手順を使用して検証をオフにしようとしましたが、次のエラーが発生しました。

脚本:

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

エラー:

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

そこで、最初のスクリプトを実行するスクリプトを作成しましたが、-elevatedパラメーターを追加しました。これは何の違いもありませんでした。

また、PowerShellの代わりにコマンドプロンプトステップを使用してみました。これも同じエラーを返しました。

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

これと同じスクリプトをビルドエージェントマシン自体に対して実行しようとすると、意図したとおりに機能します。ビルドのステップとして実行された場合にのみ機能しません。

何か案は?

13
Edward Rixon

あなたの説明によると:

これと同じスクリプトをビルドエージェントマシン自体に対して実行しようとすると、意図したとおりに機能します。

ビルドに独自のビルドエージェントを使用していると思います。次に、ビルドエージェントが管理者アカウントで実行されていないことが原因である可能性があります。管理者アカウントで実行するようにビルドエージェントを更新してから、再試行してください。

エージェントを実行するサービスとして実行する

エージェントをWindowsサービスとして実行するようにデプロイした場合、エージェントの実行ステータスはサービススナップインから制御できます。 services.mscを実行し、「VSOエージェント()」を探します。ログオンアカウントを変更する必要がある場合は、サービススナップインから変更しないでください。代わりに、昇格したコマンドプロンプトから、次のコマンドを実行します。C:\Agent\Agent\VsoAgent.exe /ChangeWindowsServiceAccount Runインタラクティブに

それ以外の場合、インタラクティブに実行するようにエージェントをインストールした場合は、Agent\VsoAgent.exeを起動してエージェントを起動できます。

詳細については、次のリンクを参照してください。 エージェントを実行

6