我有两个域名
foo.local
test.local
如果我使用位于 test.local 域中的 VM,我可以针对 test.local hyper-v 服务器运行 powershell hyper-v cmdlet。
Get-VM -ComputerName hyperv01.test.local
我希望能够从位于 foo.local 域的工作站运行相同的命令。
我相信我需要在 hyper-v 服务器上启用委派,以便我的工作站可以运行 hyperv 命令,但看起来我无法在管理员控制台中更改域。
有没有办法允许 foo.local 域中的工作站Get-VM
在 test.local 域中的 hyperv 服务器上运行?
答案1
PowerShell 远程处理和 Windows 凭据委派是两个不同的东西。您执行的大多数远程处理都是在没有凭据委派的情况下完成的。
委派功能可让您远程连接的计算机获取您的凭据并重复使用它们以跳转到第三台服务器。这存在安全隐患,但有时是必要的,尤其是在管理 Hyper-V 主机组时。
远程处理不需要委派您的初始连接。有几种方法可以向远程服务器进行身份验证。在您的域中,您默认使用 Kerberos。如果您想使用 Kerberos 向远程域中的服务器进行身份验证,域管理员将需要设置域信任。
对于不在同一域中(甚至不在工作组中)的机器,您可以使用证书认证。PowerShell 远程处理的秘密是一本来自 PowerShell 社区的免费电子书,它将指导您完成配置。
答案2
你必须建立信任在两个域之间,或者使用Powershell 远程处理hyperv01.test.local
并建立使用凭据的远程 PS 会话test.local
,然后Get-VM
在该 WinRM 会话的上下文中运行。