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
PowerCLI
VMware vCenter Server 8.x
VMware vCenter Server 7.x
VMware vSphere ESXi 8.x
VMware vSphere ESXi 7.x
ConstrainedLanguage では Connect-VIServer の実行時に実施される PowerShell の内部処理にて実行権限がないため、エラーが発生します。
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