O que é Azure PowerShell?
Azure PowerShell é um conjunto de cmdlets que permite gerenciar Azure recursos diretamente com o PowerShell. Em dezembro de 2018, o módulo do Az PowerShell ficou disponível em geral. Agora é o módulo recomendado do PowerShell para interagir com Azure. Para saber mais sobre o módulo do Az PowerShell, consulte Introdução ao módulo do Az PowerShell.
Como desabilitar mensagens de aviso de alteração interruptivas no Azure PowerShell?
Para suprimir as mensagens de aviso de alterações de ruptura no Azure PowerShell, você precisará definir a variável de ambiente SuppressAzurePowerShellBreakingChangeWarnings como true.
Set-Item -Path Env:\SuppressAzurePowerShellBreakingChangeWarnings -Value $true
Essa variável de ambiente deve ser definida antes de importar o módulo do PowerShell do Az ou do Az.Accounts para que ele entre em vigor na sessão atual do PowerShell.
Para obter métodos adicionais para desabilitar mensagens de aviso de alteração significativas em Azure PowerShell, consulte Configurações globais Azure PowerShell.
Como desabilitar a mensagem de aviso de desativação do AzureRM no Azure PowerShell?
Para suprimir a mensagem de aviso de desativação do AzureRM no Azure PowerShell, você precisará definir a variável de ambiente SuppressAzureRmModulesRetiringWarning como true.
Set-Item -Path Env:\SuppressAzureRmModulesRetiringWarning -Value $true
Uma desvantagem do exemplo anterior é que você precisará executar o comando para cada nova sessão do PowerShell, a menos que você a adicione ao seu perfil do PowerShell.
Para definir a variável de ambiente permanentemente, você também pode usar o exemplo a seguir.
[System.Environment]::SetEnvironmentVariable('SuppressAzureRmModulesRetiringWarning', 'true', [System.EnvironmentVariableTarget]::User)
Como determinar os tempos máximos de repetição HTTP em Azure PowerShell?
Para resposta HTTP geral (exceto o código de status de resposta é 429), Azure PowerShell usa o valor definido na variável de ambiente AZURE_PS_HTTP_MAX_RETRIES. Seu valor mínimo é 0. Se não for especificado, Azure PowerShell usará o valor padrão do SDK.
[System.Environment]::SetEnvironmentVariable('AZURE_PS_HTTP_MAX_RETRIES ', 3, [System.EnvironmentVariableTarget]::User)
Se o código de status de resposta HTTP for 429, Azure PowerShell usará o valor definido na variável de ambiente AZURE_PS_HTTP_MAX_RETRIES_FOR_429. Seu valor mínimo é 1. O tempo total de repetição do código de status 429 é (AZURE_PS_HTTP_MAX_RETRIES + 1) * AZURE_PS_HTTP_MAX_RETRIES_FOR_429 - 1. Se não for especificado, Azure PowerShell usará o valor padrão do SDK.
[System.Environment]::SetEnvironmentVariable('AZURE_PS_HTTP_MAX_RETRIES_FOR_429 ', 3, [System.EnvironmentVariableTarget]::User)
Como posso converter um SecureString em texto sem formatação no PowerShell?
Você pode usar o snippet de código a seguir para converter um SecureString ($secureString) em texto sem formatação ($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)
}
Nota: Manipule o texto sem formatação cuidadosamente, pois ele é menos seguro que um SecureString.
Por que o token de acesso que recebo de Get-AzAccessToken contém escopos que eu não pedi?
Eles são os escopos pré-autorizados para Azure PowerShell. Isso não significa que o token tenha acesso a essas APIs. O acesso real ainda depende das permissões da conta de usuário, portanto, esse comportamento é esperado e seguro.