-
-
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 |
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.
@lollenka This is a powershell script. You can just open a powershell window and then paste this in
you need to be admin AND enable your Your Execution Policy as described here
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.
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 ?
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).
Worked great. Thank you
Thanks, man. It really helps out a lot.
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.
@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
Thank you for the script! You could add
-join ((65..90) + (97..122) | Get-Random -Count 5 | % {[char]$_})
So the computer name is generated randomly
It would be awesome if one could access the virtual machine name from vmware