在工作组环境中远程管理Hyper-V

在工作组环境中远程管理Hyper-V

 

背景

几个周末前,我决定(因为我显然是受虐狂)对运行家庭实验室的ESXi免费版本感到厌倦,并决定尝试使用Microsoft的Hyper-V Server 2016

我喜欢这个主意,这是重量轻,使用PowerShell访问,并有大量凉爽 Github上项目是由部署测试AD域自动。

我在Windows笔记本电脑上玩过Hyper-V,也喜欢GUI Hyper-V管理器。如果我可以使用它和PowerShell远程管理我的实验室,我会很高兴。

从ISO安装Hyper-V服务器很容易,但是我几乎不知道我会花几天时间尝试连接到它。

我按照这些文档中的步骤进行操作,但仍然无法正常工作:

我的问题的症结在于,Hyper-V Server实际上打算在AD域环境中运行。通过Powershell或Hyper-V Manager进行远程管理,如果AD支持身份验证和授权,我相信它可以无缝地工作。

我的公寓中没有设置AD域,也没有意愿建立DC并管理用于个人使用的域。因此,我着手尝试将Hyper-V配置为与WORKGROUP配合使用。我想要做的是能够从主Windows工作站远程连接并管理服务器。我还想对我的主工作站进行最少的调整(即不要做任何公然不安全的事情,例如禁用防火墙,信任通配符等)。

以下是我发现可以使远程连接正常工作的命令。

配置服务器

初始安装后,设置管理员密码,将显示以下最低要求的屏幕:

 

这里需要配置一些东西。

  1. 在“配置远程管理”中,确保启用了“远程管理”并更改设置以允许对服务器执行ping操作
  2. 启用远程桌面,以便您可以通过RDP远程管理服务器
  3. 配置名称。我选择了hyperv-server。这需要重新启动。

我还在hyperv-server.home.local本地DNS服务器中创建了一个主机条目,因此可以通过主机名访问它。手动编辑etc\hosts文件也可以。

完成这些设置后,我能够按主机名并将凭据用于RDP到框中HYPERV-SERVER\Administrator。

服务器PowerShell配置

配置菜单的后面是命令提示符,可让您进入PowerShell。在这里,您需要配置服务器以允许PS-Remoting并允许对服务器进行CredSSP身份验证。使用以下命令:

Enable-PSRemoting 

Enable-WSManCredSSP -Role server 

 

一旦启用,就完成了服务器配置。现在是使我的客户与其进行交流的棘手部分。

客户端配置

我将通过Windows 10笔记本电脑远程管理Hyper-V服务器。第一件事是确保将连接配置文件设置为“专用”,以便Windows防火墙允许流量(即,它将无法通过公共网络运行)

Get-NetAdapter|Get-NetConnectionProfile

 

Set-NetConnectionProfile -InterfaceAlias Ethernet -NetworkCategory Private 

下一步是通过将服务器添加为WS-Management Protocol的受信任主机来配置可以连接到服务器的客户端。

要添加条目,必须在客户端上启用WinRM。我不想在笔记本电脑上启用WinRM,但是幸运的是,我发现在添加条目后停止服务是可行的。要添加条目:

$ Start-Service -Name winrm

$ Set-Item WSMan:\localhost\Client\TrustedHosts -Value "hyperv-server.home.local

$ Stop-Service -Name winrm

这应该使用IP地址而不是主机名,但是我没有测试。青年汽车

现在测试一下,您可以通过测试来验证身份并从工作站远程运行命令Invoke-Command:

Invoke-Command {whoami} -ComputerName hyperv-server.home.local -Credential HYPERV-SERVER\Administrator 

它将提示您输入本地管理员密码,然后远程执行hostname命令:

 

如果可行,您现在可以在客户端和服务器之间安全地通信,并最终可以开始远程管理Hyper-V。

配置Hyper-V管理器

如果尚未安装,请确保Hyper-V Management Tools在Windows功能中启用以获取Hyper-V Manager GUI。您不必实际启用Hyper-V平台(因为我是在本地运行Virtualbox的,所以不需要。)

 

打开Hyper-V管理器,右键单击并选择“连接到服务器”。输入Hyper-V服务器的IP地址或主机名,然后选择“以其他用户身份连接”,输入本地管理员凭据

 

 

现在...您会认为这完全可以工作。特别是因为我们已经证明WinRM和PS-Remoting可以正常工作。但点击“确定”,就会弹出此错误:

 

我不知道为什么这失败了。直到我找到解决方法,这让我无所适从。

授权解决方法

要解决授权错误,您必须使用手动将Hyper-V Server凭据添加到内存中cmdkey。退出Hyper-V服务器,并在客户端的命令提示符下输入以下内容:

cmdkey /add:HYPERV-SERVER /user:Administrator /pass:<REDACTED> 

现在,重新打开Hyper-V Server并再次连接到远程服务器,但是不必费心指定其他用户,因为我们所需的凭据已经在内存中:

 

终于成功了!您可以连接并远程管理服务器:

 

只要凭据保留在内存中,就可以远程管理服务器。另一个可能的解决方法是使用runas正确的本地帐户启动Hyper-V Manager :

runas /user:HYPERV-SERVER\Administrator /netonly "mmc virtmgmt.msc" 

您可以创建一个快捷方式来运行它,并且可以使用。

tl; dr

在Hyper-V服务器上

  • 启用远程管理
  • 启用远程桌面
  • 设置计算机名
  • 启用WSMan和PS-Remoting:

Enable-PSRemoting 

Enable-WSManCredSSP -Role server 

关于管理客户

  • 为Hyper-V服务器配置主机或DNS条目
  • 确保网络配置文件为“私人”:

Set-NetConnectionProfile -InterfaceAlias Ethernet -NetworkCategory Private 

  • 临时启动WinRM并将Hyper-V服务器添加为可信主机:

Start-Service -Name winrm 

Set-Item WSMan:\localhost\Client\TrustedHosts -Value "hyperv-server.home.local" 

Stop-Service -Name winrm 

  • 在Windows功能中启用Hyper-V管理工具
  • 使用cmdkey添加Hyper-V管理员凭据:

cmdkey /add:HYPERV-SERVER /user:Administrator /pass:<REDACTED> 

  • 启动Hyper-V管理器并连接到服务器(不指定用户)
    • 或者,通过以下命令启动Hyper-V Manager runas:

runas /user:HYPERV-SERVER\Administrator /netonly "mmc virtmgmt.msc" 

摘要

经过大量的摸索,这是我发现的最低限度工作配置,可以在非域环境中远程管理Hyper-V服务器。

我还没有100%确定为什么的Hyper-V管理器不工作,提供的凭证和cmdkey或runas解决方法是必要的。如果有人能对此有所启示,我将不胜感激!

希望这可以帮助某人
-ropnop

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值