Термин «Get-AzureRmPolicyDefinition» не распознается как имя командлета, функции, файла сценария или работоспособной программы. - PullRequest
0 голосов
/ 23 января 2020

У меня проблема с последней задачей, назначьте политику:

enter image description here

Модуль AzureRM , который содержит пространство имен ресурсов (с Get- AzureRmPolicyDefinition) должен быть уже включен, верно? https://github.com/Azure/azure-powershell/blob/preview/src/ResourceManager/Resources/Commands.Resources/help/Get-AzureRmPolicyDefinition.md

Так почему у меня появляется это сообщение об ошибке?

Термин «Get-AzureRmPolicyDefinition» не распознается как имя командлета, функция , файл сценария или работоспособная программа. Проверьте правильность написания имени или, если путь был указан, проверьте правильность пути и повторите попытку.

enter image description here

Когда я добавить в строку задач PowerShell:

Install-PackageProvider -Name NuGet -Force -Scope CurrentUser

Install-Module -Name Az.Accounts -RequiredVersion 1.6.2 -Force -Scope CurrentUser -AllowClobber

Install-Module -Name AzureRM.Resources -RequiredVersion 6.7.3 -Force -Scope CurrentUser -AllowClobber

Тогда я в конце получу:

Метод 'get_SerializationSettings' в типе 'Microsoft. Azure .Management.Internal.Resources.ResourceManagementClient' из сборки 'Microsoft. Azure .Commands.ResourceManager.Common, Версия = 4.0.0.0, Culture = нейтральный, PublicKeyToken = 31bf3856ad364e35 'не имеет реализации.

Как решить эту проблему?

2020-01-23T12:42:46.1108266Z ##[section]Starting: Assign Azure Policy
2020-01-23T12:42:46.1190930Z ==============================================================================
2020-01-23T12:42:46.1191016Z Task         : Azure PowerShell
2020-01-23T12:42:46.1191088Z Description  : Run a PowerShell script within an Azure environment
2020-01-23T12:42:46.1191160Z Version      : 4.159.7
2020-01-23T12:42:46.1191219Z Author       : Microsoft Corporation
2020-01-23T12:42:46.1191280Z Help         : [Learn more about this task](https://go.microsoft.com/fwlink/?LinkID=613749)
2020-01-23T12:42:46.1191368Z ==============================================================================
2020-01-23T12:42:48.5385840Z ##[command]Import-Module -Name C:\Modules\az_3.1.0\Az.Accounts\1.6.4\Az.Accounts.psd1 -Global
2020-01-23T12:42:50.3192937Z ##[warning]Both Az and AzureRM modules were detected on this machine. Az and AzureRM modules cannot be imported in the same session or used in the same script or runbook. If you are running PowerShell in an environment you control you can use the 'Uninstall-AzureRm' cmdlet to remove all AzureRm modules from your machine. If you are running in Azure Automation, take care that none of your runbooks import both Az and AzureRM modules. More information can be found here: https://aka.ms/azps-migration-guide
2020-01-23T12:42:55.2184342Z ##[command]Clear-AzContext -Scope Process
2020-01-23T12:42:56.2685211Z ##[command]Clear-AzContext -Scope CurrentUser -Force -ErrorAction SilentlyContinue
2020-01-23T12:42:56.8285933Z ##[command]Connect-AzAccount -ServicePrincipal -Tenant *** -Credential System.Management.Automation.PSCredential -Environment AzureCloud
2020-01-23T12:42:57.9191448Z ##[command] Set-AzContext -SubscriptionId 78afced4-1c58-4e66-8242-c042890d34c3 -TenantId ***
2020-01-23T12:42:58.5652039Z ##[command]& 'D:\a\_temp\743dfd85-b908-48ee-9a00-e0ee97b44c8a.ps1' 
2020-01-23T12:42:59.9241324Z ##[command]Disconnect-AzAccount -Scope Process -ErrorAction Stop
2020-01-23T12:43:00.1484807Z ##[command]Clear-AzContext -Scope Process -ErrorAction Stop
2020-01-23T12:43:00.6509257Z ##[error]Method 'get_SerializationSettings' in type 'Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient' from assembly 'Microsoft.Azure.Commands.ResourceManager.Common, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' does not have an implementation.
2020-01-23T12:43:00.6856188Z ##[section]Finishing: Assign Azure Policy

1 Ответ

0 голосов
/ 24 января 2020

Предупреждение в вашем журнале отображает проблему, вызванную:

На этом компьютере были обнаружены модули Az и AzureRM. Модули Az и AzureRM нельзя импортировать в одном сеансе или использовать в одном и том же сценарии или книге запусков. Если вы используете PowerShell в среде, которой вы управляете, вы можете использовать командлет Uninstall-AzureRm, чтобы удалить все модули AzureRm с вашего компьютера ....

Не уверен, какие у вас сценарии в предыдущем задания. Но, основываясь на этом сообщении об ошибке, я могу точно сказать, что он установил модуль AzureRm в рабочую область. В результате модуль AzureRM конфликтует с модулем Az на последующих этапах.

Az - это новый модуль, который мы разработали и использовали для замены модуля AzureRm. Но когда вы устанавливаете AzureRm и Az модуль в одно рабочее пространство, он легко вызывает конфликт , который приведет к ошибке.


В ваших общих сценариях нет ошибок, так что просто нужно запустить Uninstall-AzureRm перед вашими сценариями, чтобы избежать конфликтов с этим командлетом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...