PowerShell の LanguageMode が ConstrainedLanguage の場合に Connect-VIServer コマンドレットが実行不可となる
search cancel

PowerShell の LanguageMode が ConstrainedLanguage の場合に Connect-VIServer コマンドレットが実行不可となる

book

Article ID: 390693

calendar_today

Updated On: 03-26-2025

Products

VMware vCenter Server VMware vSphere ESXi

Issue/Introduction

PowerShell の LanguageMode が ConstrainedLanguage の場合に Connect-VIServer を実行すると下記のエラーメッセージが出力されます。

PS C:\Users\Administrator> $ExecutionContext.SessionState.LanguageMode = "ConstrainedLanguage"
PS C:\Users\Administrator> $ExecutionContext.SessionState.LanguageMode
ConstrainedLanguage
PS C:\Users\Administrator> Connect-VIServer -Server ###.###.###.###
Connect-VIServer : Specified method is not supported.
At line:1 char:1
+ Connect-VIServer -Server ###.###.###.###
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotImplemented: (:) [Connect-VIServer], PSNotSupportedException
    + FullyQualifiedErrorId : NotSupported,VMware.VimAutomation.ViCore.Cmdlets.Commands.ConnectVIServer

Environment

PowerCLI
VMware vCenter Server 8.x
VMware vCenter Server 7.x
VMware vSphere ESXi 8.x
VMware vSphere ESXi 7.x

Cause

ConstrainedLanguage では Connect-VIServer の実行時に実施される PowerShell の内部処理にて実行権限がないため、エラーが発生します。

Resolution

Connect-VIServer のパラメータである -NotDefault を使用することで回避可能です。
PowerShell にて下記手順のように -NotDefault パラメータを指定した Connect-VIServer の結果を変数に格納し、各コマンドレットを実行する度に -Server パラメータで変数を指定します。

手順:
1. 下記のようにある変数へ Connect-VIServer コマンドレットにて -NotDefault パラメータを指定した結果を格納
   $conn = Connect-VIServer -Server <IP アドレス> -NotDefault
   ※ 必要に応じてユーザー名とパスワードを入力

2. 下記のように PowerCLI のコマンドレットを実行する際に -Server パラメータで上述の変数を指定
   Get-VM -Server $conn