Rename Windows guest without reboot

This commit is contained in:
uchagani 2014-10-23 02:27:05 -04:00
parent 30c8f0708f
commit 90cbdd85e1
1 changed files with 24 additions and 5 deletions

View File

@ -14,12 +14,31 @@ module VagrantPlugins
# Rename and reboot host if rename succeeded # Rename and reboot host if rename succeeded
script = <<-EOH script = <<-EOH
$computer = Get-WmiObject -Class Win32_ComputerSystem try
$retval = $computer.rename("#{name}").returnvalue {
if ($retval -eq 0) { $computer = Get-WmiObject -Class Win32_ComputerSystem
shutdown /r /t 5 /f /d p:4:1 /c "Vagrant Rename Computer" $computer.rename("#{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 "#{name}"
Set-ItemProperty -path "HKLM:\SYSTEM\CurrentControlSet\Control\Computername\ActiveComputername" -name "Computername" -value "#{name}"
Set-ItemProperty -path "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" -name "Hostname" -value "#{name}"
Set-ItemProperty -path "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" -name "NV Hostname" -value "#{name}"
Set-ItemProperty -path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" -name "AltDefaultDomainName" -value "#{name}"
Set-ItemProperty -path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" -name "DefaultDomainName" -value "#{name}"
Set-ItemProperty -path "HKCU:\Volatile Environment" -name "LOGONSERVER" -value "#{name}"
[Environment]::SetEnvironmentVariable("COMPUTERNAME", "#{name}", "User")
exit 0
}
catch
{
exit -1
} }
exit $retval
EOH EOH
machine.communicate.execute( machine.communicate.execute(