【问题标题】:Change windows hostname from command line [closed]从命令行更改 Windows 主机名 [关闭]
【发布时间】:2008-09-10 18:45:04
【问题描述】:

是否可以使用开箱即用的工具从命令行更改 Windows 2003 中的主机名?

【问题讨论】:

  • 175K 浏览量... 5 个月前有效... 12 年前询问并于 2 年前关闭。我们不能让有用的帖子活着吗?这个问题可能不是很好,但它是主题。
  • @dmo 这个脚本可能很有趣:gist.github.com/timnew/2373475

标签: windows command-line


【解决方案1】:

cmd(命令):

netdom renamecomputer %COMPUTERNAME% /Newname "NEW-NAME"

powershell(Windows 2008/2012):

netdom renamecomputer "$env:COMPUTERNAME" /Newname "NEW-NAME"

之后,您需要重新启动计算机。

【讨论】:

  • 不,至少在 Win8 上没有。网络无法识别。
  • 在 win 2016 内核中运行良好
  • 在 Win 10 上不起作用,但在 Win 2016 服务器上对我有用。
【解决方案2】:

我不知道执行此操作的命令,但您可以在 VBScript 或类似的东西中执行此操作。 有点像:

sNewName = "put new name here" 

Set oShell = CreateObject ("WSCript.shell" ) 

sCCS = "HKLM\SYSTEM\CurrentControlSet\" 
sTcpipParamsRegPath = sCCS & "Services\Tcpip\Parameters\" 
sCompNameRegPath = sCCS & "Control\ComputerName\" 

With oShell 
.RegDelete sTcpipParamsRegPath & "Hostname" 
.RegDelete sTcpipParamsRegPath & "NV Hostname" 

.RegWrite sCompNameRegPath & "ComputerName\ComputerName", sNewName 
.RegWrite sCompNameRegPath & "ActiveComputerName\ComputerName", sNewName 
.RegWrite sTcpipParamsRegPath & "Hostname", sNewName 
.RegWrite sTcpipParamsRegPath & "NV Hostname", sNewName 
End With ' oShell 

MsgBox "Computer name changed, please reboot your computer" 

Original

【讨论】:

    【解决方案3】:

    如果您希望通过 Windows 10 IoT 执行此操作,则可以使用内置命令:

    setcomputername [newname]

    不幸的是,此命令在 Windows 10 的完整版本中不存在

    【讨论】:

      【解决方案4】:

      前面提到的wmic 命令是可行的方法,因为它默认安装在最新版本的 Windows 中。

      这是我通过从环境中检索当前名称来概括它的小改进:

      wmic computersystem where name="%COMPUTERNAME%" 
           call rename name="NEW-NAME"
      

      注意:命令必须在一行中给出,但我将其分成两行以使滚动变得不必要。正如@rbeede 所说,您必须重新启动才能完成更新。

      【讨论】:

      • 执行后必须重启
      • 我认为wmic 没有随 Windows XP 提供
      • 短一点:wmic computersystem where name="%COMPUTERNAME%" rename "NEW-NAME"
      【解决方案5】:

      虽然很复杂,但为什么要简单? 当正确的询问是正确的方式时,为什么要使用像 netdom.exe 这样的第三方应用程序? 尝试 2 次审讯:

      wmic computersystem where caption='%computername%' get caption, UserName, Domain /format:value

      wmic computersystem where "caption like '%%%computername%%%'" get caption, UserName, Domain /format:value

      或在批处理文件中使用循环

      for /f "tokens=2 delims==" %%i in ('wmic computersystem where "Caption like '%%%currentname%%%'" get UserName /format:value') do (echo . 用户名- %%i)

      【讨论】:

        【解决方案6】:

        可以使用netdom.exe 命令行程序。这可从 Windows XP 支持工具或 Server 2003 支持工具(都在安装 CD 上)获得。

        使用指南here

        【讨论】:

        • 如果您描述如何使用它会更好(如@litao's answer),因为您提供的链接现在已失效。
        • 仅供参考,11 年后,链接已失效。这就是为什么添加示例很有用
        • 该指南仍然可用here
        【解决方案7】:

        这是使用 WHS 脚本的另一种方法:

        Set objWMIService = GetObject("Winmgmts:root\cimv2")
        
        For Each objComputer in _
            objWMIService.InstancesOf("Win32_ComputerSystem")
        
            objComputer.rename "NewComputerName", NULL, NULL 
        Next
        

        Source

        【讨论】:

          【解决方案8】:

          使用以下命令远程更改计算机主机名,更改后需要重新启动系统..

          psexec.exe -h -e \\\IPADDRESS -u USERNAME -p PASSWORD netdom renamecomputer CurrentComputerName /newname:NewComputerName /force

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2017-12-05
            • 2013-04-12
            • 2010-09-05
            • 2014-02-26
            • 1970-01-01
            • 2010-09-05
            • 2021-09-07
            相关资源
            最近更新 更多