-
-
Save timnew/2373475 to your computer and use it in GitHub Desktop.
$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 |
@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.
@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 ?
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
@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
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
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.