Resolver erros comuns no Microsoft Entra PowerShell

Este artigo explica como determinar, diagnosticar e corrigir problemas que possa encontrar ao usar o Microsoft Entra PowerShell.

Antes de resolver quaisquer erros, certifique-se de que está a usar a versão mais recente do Microsoft Entra PowerShell. Para verificar a versão do módulo instalado, execute:

Get-InstalledModule -Name Microsoft.Entra

A versão do módulo Microsoft.Entra deverá ser a mais recente disponível na Galeria do PowerShell. Se o módulo instalado não estiver atualizado, atualize-o executando:

Update-Module -Name Microsoft.Entra

Problemas de instalação

Durante a instalação, pode encontrar alguns erros que impedem a instalação correta do módulo. Aqui estão algumas questões comuns e as suas soluções.

O parâmetro AllowPrerelease não pode ser encontrado

Podes receber um erro se estiveres a usar uma versão antiga do Install-Module: "Install-Module: Não se encontra um parâmetro que corresponda ao nome AllowPrereleasedo parâmetro ." Para corrigir este erro, execute os seguintes comandos para atualizar:

## Update Nuget Package and PowerShellGet Module 

Install-PackageProvider NuGet -Scope CurrentUser -Force 

Install-Module PowerShellGet -Scope CurrentUser -Force -AllowClobber 

## Remove old modules from existing session 

Remove-Module PowerShellGet,PackageManagement -Force -ErrorAction Ignore 

## Import updated module 

Import-Module PowerShellGet -MinimumVersion 2.0 -Force 

Import-PackageProvider PowerShellGet -MinimumVersion 2.0 -Force 

A capacidade funcional, 4096, foi ultrapassada para este âmbito

No PowerShell 5.1, pode ver o erro: "A função {cmdlet-name} não pode ser criada porque a capacidade da função 4096 foi excedida." Para corrigir este erro, aumente o limite de funções executando o comando seguinte e tente importar o módulo novamente.

$MaximumFunctionCount = 32768

Comandos já disponíveis no módulo

Se houver um conflito se o Beta ou o v1.0 já estiver instalado, poderá ver a seguinte mensagem de erro: "Os seguintes comandos já estão disponíveis neste sistema: Enable-EntraAzureADAlias, Get-EntraUnsupportedCommand, Test-EntraScript." Corrija este erro adicionando o parâmetro -AllowClobber e executando novamente o comando.

Dependências ausentes

Quando as dependências do PowerShell do Microsoft Entra não estão instaladas, pode ver o erro: "O módulo module-name dependente não está instalado neste computador. Para usar o módulo Microsoft.Entraatual, certifique-se de que o seu módulo module-name dependente está instalado." Para corrigir este erro, instale as dependências usando o seguinte script:

  • Instale as dependências do SDK do PowerShell nos Microsoft Graphv1.0.
$RequiredModules = (@'
Microsoft.Graph.DirectoryObjects
Microsoft.Graph.Users
Microsoft.Graph.Users.Actions
Microsoft.Graph.Users.Functions
Microsoft.Graph.Groups
Microsoft.Graph.Identity.DirectoryManagement
Microsoft.Graph.Identity.Governance
Microsoft.Graph.Identity.SignIns
Microsoft.Graph.Applications
'@).Split("`n")

# Check if the pre-requisite modules are installed and install them if needed
foreach ($module in $RequiredModules) {
    Write-Host -ForegroundColor Yellow -BackgroundColor DarkBlue "Checking for $module"
    if (!(Get-Module -Name $module -ListAvailable)) {
        Install-Module -Name $module -Scope CurrentUser
    }
}

<# Attribution: https://github.com/SamErde and https://github.com/alexandair #>

Problemas de autenticação

A falha em autenticar ou receber tokens pode resultar numa resposta "401 Não Autorizado". Este erro pode ocorrer por várias razões. Para corrigir este erro, certifique-se de que está a usar as credenciais corretas e que tem permissões suficientes. Verifique se os registos da sua aplicação (se aplicável) estão configurados corretamente com as permissões necessárias da API no Microsoft Entra ID.

Cmdlet não reconhecido

O PowerShell não reconhece o cmdlet que está a tentar executar. Para corrigir este erro, certifique-se de que o módulo PowerShell da Microsoft Entra está instalado corretamente. Pode verificar este estado executando:

Get-Module -Name Microsoft.Entra -ListAvailable

Se o módulo não estiver listado, instale-o usando:

Install-Module -Name Microsoft.Entra -Repository PSGallery -Force

Conflitos de versões

Pode encontrar erros a indicar que múltiplas versões do módulo estão instaladas, como a mensagem "Assembly with the same name is already load." Para corrigir este erro, desinstale todas as versões conflitantes do módulo e depois instale a versão mais recente:

Install-Module <Module-Name> -Required Version x.x

Erros de permissões

Pode receber erros relacionados com permissões insuficientes ao tentar executar comandos ou scripts. Para corrigir este erro, certifique-se de que tem as permissões necessárias para realizar a operação. Pode ser necessário ajustar as permissões no centro de administração Microsoft Entra.

Problemas de atualização de módulos

Pode ter problemas ao tentar atualizar o módulo PowerShell da Microsoft Entra. Para corrigir este erro, use o snippet para instalar a versão mais recente. Se houver erros, tente desinstalar e depois reinstalar o módulo.

Install-Module -Name Microsoft.Entra -Repository PSGallery -Force

Problemas de desempenho

Os teus scripts ou comandos podem estar a correr devagar ou não estar a ser concluídos como esperado. Para resolver, considere refinar as suas consultas para obter apenas dados necessários, usando filtros e selecionando propriedades específicas. Aumente os tempos limite, se necessário.

Tratamento de erros

Pode receber erros do módulo PowerShell da Microsoft Entra que são difíceis de compreender ou gerir. Para corrigir este erro, use $Error[0].Exception | Format-List -Force para obter informações detalhadas sobre o erro. A informação pode ajudar a compreender melhor a resposta da API e a resolver problemas.

O proxy bloqueia a ligação

Se receber erros de Install-Module a indicar que a Galeria do PowerShell está inacessível, poderá estar atrás de um proxy. Diferentes sistemas operacionais e ambiente de rede têm requisitos diferentes para configurar um proxy em todo o sistema. Contacte o administrador de sistema para obter as suas definições de proxy e saber como configurá-las para o seu ambiente.

O próprio PowerShell pode não estar configurado para usar este proxy automaticamente. Com o PowerShell 5.1 e posterior, configure a sessão do PowerShell para usar um proxy usando os seguintes comandos:

$webClient = New-Object -TypeName System.Net.WebClient
$webClient.Proxy.Credentials = [System.Net.CredentialCache]::DefaultNetworkCredentials

Se as credenciais do seu sistema operativo estiverem configuradas corretamente, esta configuração encaminha os pedidos do PowerShell através do proxy. Para manter esta definição entre sessões, adicione os comandos ao seu perfil do PowerShell.

Para instalar o pacote, seu proxy precisa permitir conexões HTTPS para www.powershellgallery.com.

Outras questões

Se experienciar um problema com o Microsoft Entra PowerShell não listado neste artigo ou precisar de mais assistência, apresente uma reclamação no GitHub.