![我可以在不打开 Hyper-V 虚拟机的情况下更改其计算机名称吗?](https://linux22.com/image/622304/%E6%88%91%E5%8F%AF%E4%BB%A5%E5%9C%A8%E4%B8%8D%E6%89%93%E5%BC%80%20Hyper-V%20%E8%99%9A%E6%8B%9F%E6%9C%BA%E7%9A%84%E6%83%85%E5%86%B5%E4%B8%8B%E6%9B%B4%E6%94%B9%E5%85%B6%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%90%8D%E7%A7%B0%E5%90%97%EF%BC%9F.png)
这是我在 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/
您需要检查它并看看它是否适合您。