Skip to content

Instantly share code, notes, and snippets.

@timnew
Last active November 2, 2024 08:33
Show Gist options
  • Save timnew/2373475 to your computer and use it in GitHub Desktop.
Save timnew/2373475 to your computer and use it in GitHub Desktop.
Script to Rename Computer without Reboot
$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"
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
@lollenka
Copy link

lollenka commented Aug 4, 2017

I'm not too good at it. Could you please tell me, after I replace the computer names here with the ones I need, what do I do with this script? Do I save it under some specific name and paste into system files? I have Win10. Please.

@TheBoroer
Copy link

@lollenka This is a powershell script. You can just open a powershell window and then paste this in

@audioscavenger
Copy link

you need to be admin AND enable your Your Execution Policy as described here

@discentem
Copy link

discentem commented Apr 23, 2018

This seems to cause Not enough storage is available to complete this operation for just about every command I try to run after editing the registry in this way on Windows Server 2008.

@thangvc91
Copy link

Hi Cotarelo ,
I would like to ask you about you comment on July 27 2017 , could you please help a full code after adding the "-join ((65..90) + (97..122) | Get-Random -Count 5 | % {[char]$_})".I don't know where i can put the code. Sorry for my bad question ?

@uluQulu
Copy link

uluQulu commented Dec 21, 2018

Thanks @timnew, worked flawlessly on Windows 7 Home Basic.

I just also had to run,
Set-ExecutionPolicy RemoteSigned
at C:\Windows\SysWOW64\WindowsPowerShell\v1.0\ powershell.exe as Administrator (thanks to Glen Little).

@fragtion
Copy link

Worked great. Thank you

@linotes
Copy link

linotes commented Oct 30, 2019

Thanks, man. It really helps out a lot.

@rererecursive
Copy link

rererecursive commented Jul 14, 2020

This breaks Powershell/other applications if the hostname is too long. For example, run it with $ComputerName = "hello.there.my.name.is.john" and then open another Powershell window; you'll find a cryptic error message. My guess is something is breaks in the registry.

@sebma
Copy link

sebma commented Nov 25, 2020

@timnew Congratulations for this great script.

Can you please add some restrictions on the new name before actually applying the new name to windows, that is to say : forbid names containing . or spaces just like the warning printed by the netdom.exe tool :

The syntax of the new computer name, WORD1.WORD2
is incorrect. A computer name (DNS host label) may contain letters (a-z, A-Z),
numbers (0-9), and hyphens, but no spaces or periods (.).

The filename, directory name, or volume label syntax is incorrect.

The command failed to complete successfully.

@sebma
Copy link

sebma commented Nov 25, 2020

@timnew The reboot might not be needed, but my question is : Do I need to kill all explorer.exe instances and relaunch one for the new registry key to be reloaded ?

@PharQ
Copy link

PharQ commented Mar 5, 2021

i'm trying to rename my PC to its IP address this is what I have but i get an error saying the syntax of the command is incorrect

@echo off
SET /P < ipaddress >
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName /v ComputerName /t REG_SZ /d %PCNAME% /f

@overdrive80
Copy link

overdrive80 commented Feb 5, 2023

@echo off

set "cName=ROG-ISRA"
set "OEM=ROG STRIX B650E-F GAMING WIFI"

REG ADD "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\OEMInformation" /t REG_SZ /v Model /d "%OEM%" /f

wmic computersystem where name="%computername%" call rename name="%cName%"

REG ADD "HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" /v "Hostname" /d %cName% /f
REG ADD "HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" /v "NV Hostname" /d  %cName% /f

set "sysSets=SystemSettings.exe"

tasklist /fi "ImageName eq %sysSets%" /fo csv 2>NUL | find /I "%sysSets%">NUL
if "%ERRORLEVEL%"=="0" (
	taskkill /F /IM %sysSets% 
	start ms-settings:
)

EDIT: More simply and best

@Raazor
Copy link

Raazor commented Aug 6, 2024

FYI I had the issue that I needed a name change without reboot AND running PsExec for another user session on the same machine afterwards. I got this Error: Creating key file on $newComputername. The user name or password is incorrect / The network location cannot be reached.

Fix was to add the following lines to rename.ps1

# Restart service to have PsExec working after name change; wait 5 seconds to be safe
Restart-Service Server -Force
Start-Sleep 

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment