我可以在不打开 Hyper-V 虚拟机的情况下更改其计算机名称吗?

我可以在不打开 Hyper-V 虚拟机的情况下更改其计算机名称吗?

这是我在 Azure 角色实例的典型“系统”日志中看到的初始化序列(这是针对 Windows Server 2008 R2 的,我还没有检查其他版本):

  • 虚拟机已打开,
  • VM 计算机名称已更改
  • 虚拟机重新启动

这样做是因为最初指定的计算机名称不适合动态配置的网络,因此会生成一个合适的名称,并将该名称分配给 VM。由于更改已启动的计算机名称通常需要重新启动,因此 VM 随后会重新启动。

问题是这需要额外的 35 秒,而这段时间实际上是被浪费了。

因此,有一个已启动的 Hyper-V VM,并且需要更改其“计算机名称”。

不打开虚拟机如何做到这一点?

答案1

无论计算机是否为虚拟计算机,在计算机关闭时都无法更改任何 Windows 主机名。更改主机名后还需要重新启动才能生效。

答案2

无需重启即可更改计算机名称。我在 Windows 7(虚拟)计算机上使用此 powershell 脚本成功完成此操作:

$ComputerName = "New Name"

Remove-ItemProperty -path "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" -   name "Hostname" 
Remove-ItemProperty -path "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" -name "NV Hostname" 

New-PSDrive -name HKU -PSProvider "Registry" -Root "HKEY_USERS"

Set-ItemProperty -path  "HKLM:\SYSTEM\CurrentControlSet\Control\Computername\Computername" -name "Computername" - value $ComputerName
Set-ItemProperty -path   "HKLM:\SYSTEM\CurrentControlSet\Control\Computername\ActiveComputername" -name    "Computername" -value $ComputerName
Set-ItemProperty -path "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" -name  "Hostname" -value $ComputerName
Set-ItemProperty -path "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" -name  "NV Hostname" -value  $ComputerName
Set-ItemProperty -path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" - name "AltDefaultDomainName" -value $ComputerName
Set-ItemProperty -path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" -name "DefaultDomainName" -value $ComputerName
#Set-ItemProperty -path "HKU:\.Default\Software\Microsoft\Windows Media\WMSDK\General" - name "Computername" -value $ComputerName

Source: http://timnew.github.io/blog/2012/04/13/powershell-script-to-rename-computer-without-reboot/

您需要检查它并看看它是否适合您。

相关内容