この記事では、Microsoft Entra PowerShell の使用時に発生する可能性がある問題を特定、診断、修正する方法について説明します。
エラーのトラブルシューティングを行う前に、Microsoft Entra PowerShell の最新バージョンを実行していることを確認してください。 インストールされているモジュールのバージョンを確認するには、次を実行します。
Get-InstalledModule -Name Microsoft.Entra
Microsoft.Entra モジュールのバージョンは、PowerShell ギャラリー の最新リリースと同じ最新バージョンである必要があります。 インストールされているモジュールが最新でない場合は、次を実行して更新します。
Update-Module -Name Microsoft.Entra
インストールに関する問題
インストール中に、モジュールが正しくインストールされないエラーが発生する可能性があります。 一般的な問題とその解決策を次に示します。
AllowPrerelease パラメーターが見つかりません
以前のバージョンの Install-Module を使用している場合、エラーが発生する可能性があります。"Install-Module: パラメーター名 AllowPrereleaseと一致するパラメーターが見つかりません。"このエラーを解決するには、次のコマンドを実行してアップグレードします。
## 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
このスコープの機能容量 4096 を超えました
PowerShell 5.1 では、"関数の容量 4096 を超えたため、関数 {cmdlet-name} を作成できません" というエラーが表示されることがあります。このエラーを解決するには、次のコマンドを実行して関数の制限を増やしてから、モジュールを再度インポートしてみてください。
$MaximumFunctionCount = 32768
モジュールで既に使用可能なコマンド
Betaまたはv1.0が既にインストールされているときに競合が発生した場合は、"次のコマンドは、このシステムで既に使用できます: Enable-EntraAzureADAlias、Get-EntraUnsupportedCommand、Test-EntraScript。このエラーを修正するには、-AllowClobber パラメーターを追加し、コマンドを再実行します。
不足している依存関係
Microsoft Entra PowerShell の依存関係がインストールされていない場合、"依存モジュール module-nameはこのコンピューターにインストールされていません。現在のモジュール Microsoft.Entraを使用するには、依存モジュールmodule-nameがインストールされていることを確認します。" このエラーを修正するには、次のスクリプトを使用して依存関係をインストールします。
- Microsoft Graph PowerShell SDK
v1.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 #>
認証の問題
トークンの認証または受信に失敗すると、"401 Unauthorized" 応答が発生する可能性があります。 このエラーが発生する原因は複数あります。 このエラーを解決するには、正しい資格情報を使用していて、十分なアクセス許可があることを確認します。 アプリの登録 (該当する場合) が、Microsoft Entra IDで必要な API アクセス許可を使用して正しく構成されていることを確認します。
コマンドレットが認識されない
PowerShell は、実行しようとしているコマンドレットを認識しません。 このエラーを解決するには、Microsoft Entra PowerShell モジュールが正しくインストールされていることを確認します。 この状態は、次を実行して確認できます。
Get-Module -Name Microsoft.Entra -ListAvailable
モジュールが一覧にない場合は、次を使用してインストールします。
Install-Module -Name Microsoft.Entra -Repository PSGallery -Force
バージョンの競合
"同じ名前のアセンブリが既に読み込まれています" というメッセージなど、複数のバージョンのモジュールがインストールされていることを示すエラーが発生する場合があります。このエラーを解決するには、競合するすべてのバージョンのモジュールをアンインストールし、最新バージョンをインストールします。
Install-Module <Module-Name> -Required Version x.x
アクセス許可エラー
コマンドまたはスクリプトを実行しようとすると、アクセス許可の不足に関連するエラーが発生する可能性があります。 このエラーを解決するには、操作を実行するために必要なアクセス許可があることを確認します。 Microsoft Entra 管理センターでアクセス許可の調整が必要になる場合があります。
モジュールの更新に関する問題
Microsoft Entra PowerShell モジュールを更新しようとすると、問題が発生する可能性があります。 このエラーを解決するには、スニペットを使用して最新バージョンをインストールします。 エラーが発生した場合は、 モジュールをアンインストール してから再インストールしてみてください。
Install-Module -Name Microsoft.Entra -Repository PSGallery -Force
パフォーマンスの問題
スクリプトまたはコマンドの実行速度が遅いか、想定どおりに完了していない可能性があります。 これを修正するには、フィルターを使用して特定のプロパティを選択して、必要なデータのみをフェッチするようにクエリを調整することを検討してください。 必要に応じてタイムアウトを増やします。
エラーの処理
Microsoft Entra PowerShell モジュールから、理解や管理が困難なエラーが発生する可能性があります。
このエラーを修正するには、 $Error[0].Exception | Format-List -Force を使用して詳細なエラー情報を取得します。 この情報は、API の応答を理解し、さらにトラブルシューティングを行う上で役立ちます。
プロキシによる接続のブロック
Install-Module から PowerShell ギャラリー に接続できないというエラーが表示された場合は、プロキシ環境下にある可能性があります。 システム全体のプロキシを構成するための要件は、オペレーティング システムとネットワーク環境によってさまざまに異なります。 プロキシ設定と、ご使用の環境での構成方法については、システム管理者にお問い合わせください。
PowerShell 自体は、このプロキシを自動的に使用するように構成されていない可能性があります。 PowerShell 5.1 以降では、次のコマンドを使用して、プロキシを使用するように PowerShell セッションを構成します。
$webClient = New-Object -TypeName System.Net.WebClient
$webClient.Proxy.Credentials = [System.Net.CredentialCache]::DefaultNetworkCredentials
オペレーティング システムの資格情報が正しく構成されている場合、この構成ではプロキシ経由で PowerShell 要求がルーティングされます。 セッション間でこの設定を保持するには、 PowerShell プロファイルにコマンドを追加します。
パッケージをインストールするには、プロキシで www.powershellgallery.com への HTTPS 接続を許可する必要があります。
その他の問題
この記事に記載されていない PowerShell Microsoft Entraで製品の問題が発生した場合や、さらにサポートが必要な場合は、GitHubに問題を提出してください。