Azure PowerShell не работает в Azure Dev Ops на частном агенте
Я установил 64-разрядный частный агент на свой сервер сборки Windows Server 2012 R2. Я связал это с Azure Dev Ops. На сервере сборки у меня установлена только версия 5.6.0 AzureRM, потому что это требуется для сценариев, которые я хочу запустить. Если у вас есть интересующие вас вопросы, посмотрите мой вопрос: Как установить PITR для всех баз данных в эластичном пуле баз данных Azure Sql?
Если я создаю задачу Azure PowerShell v3 в DevOps Azure, чтобы запустить следующий встроенный сценарий:
Get-Module -Name AzureRM* -ListAvailable
Я получаю эту ошибку:
2018-11-14T13:26:56.0519566Z ==============================================================================
2018-11-14T13:26:56.0519655Z Task : Azure PowerShell
2018-11-14T13:26:56.0519727Z Description : Run a PowerShell script within an Azure environment
2018-11-14T13:26:56.0519782Z Version : 3.1.7
2018-11-14T13:26:56.0519844Z Author : Microsoft Corporation
2018-11-14T13:26:56.0520315Z Help : [More Information](https://go.microsoft.com/fwlink/?LinkID=613749)
2018-11-14T13:26:56.0520404Z ==============================================================================
2018-11-14T13:26:57.1508635Z Added TLS 1.2 in session.
2018-11-14T13:26:57.4439615Z ##[command]Import-Module -Name C:\Program Files\WindowsPowerShell\Modules\AzureRM\5.6.0\AzureRM.psd1 -Global
2018-11-14T13:26:58.6759005Z ##[error]The following error occurred while loading the extended type data file: Error in TypeData "Microsoft.Azure.Commands.Common.Authentication.Abstractions.IAzureContextContainer": The TypeConverter was ignored because it already occurs.
Error in TypeData "Microsoft.Azure.Commands.Common.Authentication.Abstractions.IAzureContextContainer": The member SerializationDepth is already present.
Error in TypeData "Microsoft.Azure.Commands.Common.Authentication.ProtectedFileTokenCache": The member PropertySerializationSet is already present.
Error in TypeData "Microsoft.Azure.Commands.Common.Authentication.ProtectedFileTokenCache": The member SerializationMethod is already present.
Error in TypeData "Microsoft.Azure.Commands.Common.Authentication.AuthenticationStoreTokenCache": The member PropertySerializationSet is already present.
Error in TypeData "Microsoft.Azure.Commands.Common.Authentication.AuthenticationStoreTokenCache": The member SerializationMethod is already present.
Error in TypeData "Microsoft.Azure.Commands.Profile.Models.PSAzureContext": The member SerializationDepth is already present.
Error in TypeData "Microsoft.Azure.Commands.Profile.Models.PSAzureProfile": The member SerializationDepth is already present.
Если я войду на сервер сборки как учетная запись сервера сборки и открою окно PowerShell, все будет работать нормально. Он также отлично работает в обычной задаче PowerShell в DevOps Azure.
Мой сценарий PowerShell должен выполняться в контексте учетной записи Azure. Как мне этого добиться?
РЕДАКТИРОВАТЬ
Я пробовал задачи Azure PowerShell v1 и v2, но это не сработало. Я также попытался указать версию PowerShell в разделе параметров версии как версию 5.6, а также последнюю установленную версию. Ни один из тех не работал.