我可以在不開啟已關閉的 Hyper-V 虛擬機器的情況下更改其電腦名稱嗎?

我可以在不開啟已關閉的 Hyper-V 虛擬機器的情況下更改其電腦名稱嗎?

以下是我在 Azure 角色執行個體的典型「系統」日誌中看到的初始化序列(這是針對 Windows Server 2008 R2,我沒有檢查其他版本):

  • 虛擬機器已打開,
  • VM電腦名稱已更改
  • VM 已重新啟動

這樣做是因為最初指定的電腦名稱不適合動態配置的網絡,因此會產生適當的名稱並為 VM 指派該名稱。由於變更已啟動的電腦名稱通常需要重新啟動,因此隨後會重新啟動虛擬機器。

問題是這需要額外的 35 秒,而這時間實際上被浪費了。

因此,有一個已啟動的 Hyper-V 虛擬機,並且需要更改其「電腦名稱」。

如何在不開啟虛擬機器的情況下完成此操作?

答案1

當機器關閉時,無論是否虛擬,都無法變更任何 Windows 主機名稱。主機名稱更改後還需要重新啟動才能生效。

答案2

無需重新啟動即可更改電腦名稱。我使用以下 powershell 腳本在 Windows 7(虛擬)電腦上取得了成功:

$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/

您需要檢查它並看看它是否適合您。

相關內容