我想授予非管理员用户启动/停止/检查点特定虚拟机的权限。
这授予-VMConnectAccesscmdlet 应该可以完成这项工作。我还将用户添加到远程管理用户团体。
但是当我尝试连接到 VM 时,Windows 事件日志中出现了一个 .NET 异常:
Application: vmconnect.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: Microsoft.Management.Infrastructure.CimException
at Microsoft.Management.Infrastructure.Internal.Operations.CimSyncEnumeratorBase`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].MoveNext()
at System.Linq.Enumerable+WhereSelectEnumerableIterator`2[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].MoveNext()
at Microsoft.Virtualization.Client.Management.Server.LoadOSInfo()
at Microsoft.Virtualization.Client.ConnectionHelper.ConnectServer(Microsoft.Virtualization.Client.InformationDisplayer, System.String, Boolean, Microsoft.Virtualization.Client.Common.IUserPassCredential)
at Microsoft.Virtualization.Client.ConnectionHelper.TryGetVirtualMachinesInternal(System.String, Microsoft.Virtualization.Client.Common.WindowsCredential, Mode, System.String, System.Guid, Microsoft.Virtualization.Client.Management.IVMComputerSystem ByRef, System.Collections.Generic.List`1<System.String> ByRef, System.Exception ByRef)
at Microsoft.Virtualization.Client.ConnectionHelper.TryGetVirtualMachine(System.String, Microsoft.Virtualization.Client.Common.WindowsCredential, System.String, Microsoft.Virtualization.Client.Management.IVMComputerSystem ByRef, System.Exception ByRef)
at Microsoft.Virtualization.Client.InteractiveSession.CommandLineParser.TryParse(System.String[], Microsoft.Virtualization.Client.InteractiveSession.RdpConnectionInfo ByRef)
at Microsoft.Virtualization.Client.InteractiveSession.VmisApplicationContext.TryParseCommandLine(System.String[])
at Microsoft.Virtualization.Client.InteractiveSession.Program.Main(System.String[])
vmconnect.exe 仅在我将用户置于Hyper-V 管理员或者管理员组。但是,这会为用户提供对所有虚拟机的完全访问权限。
更新:我想让它在 Microsoft Hyper-V Server 10.0.17763 Build 17763 上运行。但我也无法让它在 Microsoft Windows Server 2019 Standard 10.0.17763 Build 17763 上运行
答案1
您正在寻找 Hyper-V 的基于角色的访问控制,为此您需要安装
系统中心虚拟机管理器 (VMM)。
要了解有关该主题的更多信息,请参阅 Microsoft 文章 管理 VMM 中的角色和权限。
您面临学习曲线,但可以在互联网上找到很多有用的资料。