在 Windows Server 2019 VM (Azure) 上尝试通过带有串行控制台的 Powershell 命令启用 Hyper-V 时访问被拒绝

Got access denied when tried to enable Hyper-V through Powershell command with Serial Console on a Windows Server 2019 VM (Azure)

我在 Azure 中使用 Windows Server 2019 Datacenter 映像创建了一个 VM。由于公司政策,我们不允许拥有 public IP 和端口。访问 VM 的唯一方法是使用串行控制台。

我能够在串行控制台中 运行 PowerShell。但是,我遇到了访问问题。

错误:

PS C:\windows\system32> Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V
Enable-WindowsOptionalFeature : Win32 internal error "Access is denied" 0x5
occurred while reading the console output buffer. Contact Microsoft Customer
Support Services.
At line:1 char:1
+ Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ReadError: (:) [Enable-WindowsOptionalFeature],
   HostException
    + FullyQualifiedErrorId : ReadConsoleOutput,Microsoft.Dism.Commands.Enable
   WindowsOptionalFeatureCommand

我尝试 elevate the Powershell prompt,但没有成功。我创建的帐户应该具有管理员权限。我想知道有什么方法可以使它正常工作。提前致谢。

我认为 Server 2019 数据中心映像存在一些限制,因为我也遇到了同样的错误,但它在 Server 2016 数据中心上有效,请参考 this

作为解决方法,如果 Azure VM 没有分配 public IP 地址,我建议通过 run command. The feature uses the virtual machine (VM) agent to run PowerShell scripts within an Azure Windows VM. For more information about running scripts in your Windows VM, you could refer to this document.[=17= 在 Azure VM 中使用 运行 PowerShell 脚本]

例如,您可以通过 PowerShell 脚本启用 hyper-v

Install-WindowsFeature -Name Hyper-V -IncludeManagementTools -Restart

然后通过 Invoke-AzVMRunCommandcmdlet 调用脚本到 运行 Azure VM 上的 PowerShell 脚本。该 cmdlet 期望 -ScriptPath 参数中引用的脚本是 cmdlet 所在位置的本地脚本 运行.