Поделиться через


Часто задаваемые вопросы о Azure PowerShell

Что такое Azure PowerShell?

Azure PowerShell — это набор командлетов, который позволяет управлять ресурсами Azure непосредственно с помощью PowerShell. В декабре 2018 года модуль Az PowerShell стал общедоступным. Теперь это рекомендуемый модуль PowerShell для взаимодействия с Azure. Дополнительные сведения о модуле Az PowerShell см. в статье "Знакомство с модулем Az PowerShell".

Как отключить предупреждения о критических изменениях в Azure PowerShell?

Чтобы отключить предупреждения о критических изменениях в Azure PowerShell, необходимо задать для переменной SuppressAzurePowerShellBreakingChangeWarnings среды значение true.

Set-Item -Path Env:\SuppressAzurePowerShellBreakingChangeWarnings -Value $true

Эта переменная среды должна быть задана перед импортом модуля PowerShell Az или Az.Accounts , чтобы он вшел в силу в текущем сеансе PowerShell.

Дополнительные методы отключения предупреждений о критических изменениях в Azure PowerShell см. в статье "Настройка глобальных параметров Azure PowerShell".

Как отключить предупреждение об выходе AzureRM в Azure PowerShell?

Чтобы отключить предупреждение об выходе AzureRM в Azure PowerShell, необходимо задать для переменной SuppressAzureRmModulesRetiringWarning среды значение true.

Set-Item -Path Env:\SuppressAzureRmModulesRetiringWarning -Value $true

Одним из недостатков предыдущего примера является то, что вам потребуется выполнить команду для каждого нового сеанса PowerShell, если вы не добавите его в профиль PowerShell.

Чтобы задать переменную среды постоянно, можно также использовать следующий пример.

[System.Environment]::SetEnvironmentVariable('SuppressAzureRmModulesRetiringWarning', 'true', [System.EnvironmentVariableTarget]::User)

Как определить максимальное время повтора HTTP в Azure PowerShell?

Для общего HTTP-ответа (за исключением кода состояния ответа — 429), Azure PowerShell использует значение, определенное в переменной AZURE_PS_HTTP_MAX_RETRIES среды. Минимальное значение равно 0. Если это не указано, Azure PowerShell использует значение пакета SDK по умолчанию.

[System.Environment]::SetEnvironmentVariable('AZURE_PS_HTTP_MAX_RETRIES ', 3, [System.EnvironmentVariableTarget]::User)

Если код состояния http-ответа равен 429, Azure PowerShell использует значение, определенное в переменной AZURE_PS_HTTP_MAX_RETRIES_FOR_429 среды. Минимальное значение равно 1. Общее время повтора кода состояния 429 равно (AZURE_PS_HTTP_MAX_RETRIES + 1) * AZURE_PS_HTTP_MAX_RETRIES_FOR_429 - 1. Если это не указано, Azure PowerShell использует значение пакета SDK по умолчанию.

[System.Environment]::SetEnvironmentVariable('AZURE_PS_HTTP_MAX_RETRIES_FOR_429 ', 3, [System.EnvironmentVariableTarget]::User)

Как преобразовать SecureString в обычный текст в PowerShell?

С помощью следующего фрагмента кода можно преобразовать SecureString ($secureString) в обычный текст ($plainText):

$ssPtr = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($secureString)
try {
    $plaintext = [System.Runtime.InteropServices.Marshal]::PtrToStringBSTR($ssPtr)
    # Perform operations with the contents of $plaintext in this section.
} finally {
    # The following line ensures that sensitive data is not left in memory.
    $plainText = [System.Runtime.InteropServices.Marshal]::ZeroFreeBSTR($ssPtr)
}

Заметка: Тщательно обрабатывайте обычный текст, так как он менее безопасный, чем SecureString.

Почему маркер доступа, полученный из Get-AzAccessToken, содержит области, которые я не запрашивал?

Они являются предварительно несанкционированными областями для Azure PowerShell. Это не означает, что маркер имеет доступ к этим API. Фактический доступ по-прежнему зависит от разрешений учетной записи пользователя, поэтому это поведение ожидается и безопасно.