Python修改Windows10电脑名称,无需重启生效

一般来说,你在windows电脑属性里修改计算机名称,需要重新启动电脑才生效。

其实计算机名称是保存在Windows注册表里面的,我们可以通过直接修改注册表,达到修改计算机名称的目的。

修改过程如下:

  1. 按规则创建新的注册表文件,定义新的计算机名称;
  2. 使用regedit /s命令,导入前面生成的注册表;
  3. 最后,使用python模块subprocess.call()调用windows系统cmd命令行执行。
import subprocess

name = 'Python_Test7'
scripts = '''REGEDIT4 
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName] 
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName]  
"ComputerName"="{name}" 
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ActiveComputerName]  
"ComputerName"="{name}" 
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Control\ComputerName\ComputerName]  
"ComputerName"="{name}" 
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]  
"NV Hostname"="{name}"  
"Hostname"="{name}" 
[HKEY_USERS\S-1-5-18\Software\Microsoft\Windows\ShellNoRoam]  
@="{name}" 
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\ComputerName\ActiveComputerName]  
"ComputerName"="{name}" 
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Tcpip\Parameters]  
"NV Hostname"="{name}"  
"Hostname"="{name}" 
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]  
"DefaultDomainName"="{name}"  
"AltDefaultDomainName"="{name}" '''
cmdline = scripts.format('{}',name=name).split('\n')
cmdlines = []
for v in  cmdline:
    cmdlines.append(v + '\n')

fileName = 'c:/windows/reg.reg'
with open(fileName,'w',encoding='utf-8') as file:
    file.writelines(cmdlines)

cmd_rename = 'regedit /s c:/windows/reg.reg'
subprocess.call(cmd_rename)

参考:

亦良Cool. 一键修改计算机名(无需重启). CSDN博客. 2019.07

猜你喜欢

转载自blog.csdn.net/xiaoyw/article/details/132410300