AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 44928
Accepted
Jindrich
Jindrich
Asked: 2009-07-24 17:01:09 +0800 CST2009-07-24 17:01:09 +0800 CST 2009-07-24 17:01:09 +0800 CST

如何重命名域中的多台计算机

  • 772

我继承了这个愚蠢的命名约定:

COMPANYNAME-CITY20090724或COMPANYNAME-CITY-JOHN

它没有告诉我有关位置(楼层,部门)的任何信息。约翰几个月前离开了公司。一个城市的电脑搬到了另一个城市,但名字没有改变。

当您想创建新的命名约定时,如何重命名 100 多台计算机?

windows-vista windows-xp active-directory
  • 4 4 个回答
  • 7849 Views

4 个回答

  • Voted
  1. Best Answer
    Evan Anderson
    2009-07-24T17:07:57+08:002009-07-24T17:07:57+08:00

    肯定的事。在这种情况下,NETDOM 实用程序是“你的朋友”。您可以使用启动脚本重命名计算机。

    NETDOM 上的一些文档在这里:

    • http://technet.microsoft.com/en-us/library/cc737599(WS.10).aspx

    我可以看到这样一个非常简单的脚本:

    @echo off
    IF "%COMPUTERNAME%"=="COMPANYNAME-CITY-JOHN" SET NEWNAME=NEWNAME-HERE
    IF "%COMPUTERNAME%"=="COMPANYNAME-CITY-BOB" SET NEWNAME=NEWNAME-HERE2
    ... more machines ...
    IF NOT "%NEWNAME%"=="" NETDOM renamecomputer member /newname:%NEWNAME% /userd:USER-TO-PERFORM-RENAME-UNDER /password:PASSWORD-FOR-THAT-USER
    

    重命名所有计算机后,您可以删除启动脚本。在已经重命名的计算机上运行它不应该太“昂贵”。如果您担心这一点,您可以使用“trapdoor”技术,即脚本以计算机将自己置于一个被拒绝执行脚本的权限的组中结束。

    • 在 AD 中创建一个组——说“计算机重命名完成”。
    • 修改组的权限以包括“域计算机 - 写入/将自己添加为成员”
    • 在上面的简单批处理文件脚本中,在末尾添加以下行:
    IF NOT "%NEWNAME%"=="" NET GROUP "用户创建脚本完成" /DOMAIN /ADD %COMPUTERNAME%$

    当它在每台机器上运行时,您会看到该组“增长”了成员计算机。要停止脚本在已经运行的计算机上运行,​​请向 GPO 添加一个权限,该权限分配启动脚本“计算机重命名完成 - 拒绝应用组策略”。然后脚本将在每台机器上运行一次。


    你的目的地名称是什么?如果您像我一样喜欢戴尔服务编号,您可以执行以下操作(在 VBScript 中):

    Option Explicit
    Dim objWMIService, strNewName, objShell, objNetwork
    Set objShell = CreateObject("WScript.Shell")
    Set objNetwork = CreateObject("WScript.Network")
    
    ' Obtain the service tag
    Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2") 
    For Each objSMBIOS in objWMIService.ExecQuery("SELECT * FROM Win32_SystemEnclosure")
        strNewName = objSMBIOS.SerialNumber 
    Next
    
    ' Check for empty string
    If (strNewName = "") Then WScript.Quit
    
    ' Does the computer need to be renamed?
    If (UCase(strNewName) <> UCase(objNetwork.ComputerName)) Then    
         objShell.Run "NETDOM renamecomputer member /newname:" & strNewName & " /userd:USER-TO-PERFORM-RENAME-UNDER /password:PASSWORD-FOR-THAT-USER"
    End If
    

    该脚本可以一直运行,并且会不断地重命名未根据服务标签命名的计算机......呵呵。(我不确定我是否真的会这样做,如果我这样做了,我会在脚本中进行更多的理智检查。)

    • 5
  2. Adam Brand
    2009-07-24T17:09:09+08:002009-07-24T17:09:09+08:00

    您可以通过 PowerShell 执行此操作。在 Excel 中,制作一个包含两列的文件,一列用于旧名称,一列用于新名称。添加标题行 oldname 和 newname。将其保存为 CSV (mylist.csv),然后在 powershell 中运行:

    function renameAndReboot([string]$computer, [string]$newname)
    {
            $comp = gwmi win32_computersystem  -computer $computer
            $os   = gwmi win32_operatingsystem -computer $computer
    
            $comp.Rename($newname)
            $os.Reboot()
    }
    
    Import-Csv mylist.csv
    
    foreach ($entry in $list)
    {
        renameAndReboot($entry.oldname,$entry.newname)
    }
    

    ...核心代码来自这里。

    • 2
  3. quux
    2009-07-24T20:22:41+08:002009-07-24T20:22:41+08:00

    一个城市的电脑搬到了另一个城市,但名字没有改变。

    这是试图描述位置、所有者、功能等的命名方案的弱点。事情会发生变化。因此,您最终要么经常重命名计算机(并且每次都重新启动!),要么拥有一个随着时间的推移而失修的命名方案。

    我可以建议描述字段吗? 替代文字 http://lh3.ggpht.com/BryanLockwood/SKbN8OdozVI/AAAAAAAAAVU/C3ZeLX0_wGc/%5C%5Ccojones.org%5Cfiles%5Cusers%5Cbryan%5CDesktop%5CComputerDescription.PNG?imgmax=512

    您可以轻松列出计算机及其描述: 替代文本 http://lh6.ggpht.com/BryanLockwood/SKbN8HBTywI/AAAAAAAAAAAVc/vu65Fm4R5aM/%5C%5Ccojones.org%5Cfiles%5Cusers%5Cbryan%5CDesktop%5Ccmd-example-descriptions。 PNG?imgmax=512

    更多关于这在我的博客。

    • 0
  4. Dave
    2015-02-22T16:59:56+08:002015-02-22T16:59:56+08:00

    如果您不熟悉 Netdom 命令行工具,请尝试使用来自colosify的Netdom 重命名计算机 GUI。

    它将帮助您通过上传 .csv 文件来重命名域中的多台计算机,而无需记住或学习任何命令行代码或创建任何脚本。

    这个 GUI 为我节省了很多时间。

    • 0

相关问题

  • 对于 SME 规模的安装,您在 Vista 中禁用了哪些功能(如果有)?

  • 我应该在 Active Directory 中配置哪些重要的组策略设置?[关闭]

  • 使用 AD 在特定时间段内阻止对特定网站的访问

  • 在登录期间打开 URL 的现代方法是什么?

  • 如何诊断在关机时挂起的 Windows PC?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve