m0_61496330 2024-02-15 12:17 采纳率: 40%
浏览 17

如何批量修改hosts文件

各位运维工程师,应公司要求,将本公司内网主机的hosts文件增加一条IP与dns的映射。想请教一下是否有批量化处理的方法。
本人想过用python写一个脚本,但是由于公司电脑环境有一定数量电脑未安装Python,此方案作废。后写了一个bat批处理脚本,并以管理员身份运行,但由于hosts文件位于C:\window\system32\drivers\etc\文件夹下,该文件没有写权限,批处理脚本会一直卡住,无法执行下去
想请教各位有没有什么好方法,可以批量化处理hosts文件

  • 写回答

3条回答 默认 最新

  • 叫兽-郭老师 新星创作者: Java技术领域 2024-02-15 12:18
    关注

    参考通义千问和郭老师的小迷弟雅思莫了-编写提供,主要是为了帮助您快速解决问题,如下回答,您可以参考下,如有问题,评论区留言。

    批量修改大量主机的hosts文件,您可以考虑以下几种方法:

    1. 通过域控策略部署(Windows AD环境): 如果您的公司使用的是活动目录(Active Directory)进行集中管理,您可以创建一个组策略对象(GPO),在计算机配置中指定一个自定义的hosts文件。这样可以在所有加入域的计算机上自动更新hosts文件。

    2. 使用脚本结合管理员权限执行: 虽然您提到直接修改system32下的hosts文件遇到权限问题,但可以通过批处理脚本先赋予hosts文件写权限再进行修改。例如:

      @echo off
      takeown /F %SystemRoot%\System32\drivers\etc\hosts
      icacls %SystemRoot%\System32\drivers\etc\hosts /grant "Administrators:F"
      echo [IP地址] [域名] >> %SystemRoot%\System32\drivers\etc\hosts
      

      然后,将此批处理以管理员权限运行。不过这种方法需要每台机器都手动操作一次或借助远程执行工具(如PsExec)。

    3. 使用配置管理工具: 利用IT运维自动化工具,比如Ansible、Puppet、Chef等,可以编写 playbook 或者 recipe 来批量修改 hosts 文件。这些工具能够跨越多台机器进行远程配置和管理。

    4. 系统部署工具: 对于大规模部署,可利用系统镜像定制或者系统部署解决方案,预先在系统镜像中添加修改过的hosts文件,然后通过统一的系统部署流程来更新所有内网主机。

    5. WSUS服务扩展(适用于Windows): WSUS(Windows Server Update Services)可以用来分发非安全更新,理论上也可以扩展为分发自定义的hosts文件,但这通常需要额外开发和配置工作。

    6. 基于PXE网络引导与Kickstart、preseed等方式(Linux环境): 在Linux环境下,如果都是通过网络启动安装,可以通过定制kickstart或preseed配置文件,在安装过程中自动替换或添加hosts文件内容。

    综上所述,选择哪种方式取决于您的实际网络环境和IT基础设施情况。

    评论

报告相同问题?

问题事件

  • 创建了问题 2月15日