如何访问网络上的每台计算机并修改 Windows XP 中的 hosts 文件

如何访问网络上的每台计算机并修改 Windows XP 中的 hosts 文件

我们需要在 hosts 文件中为网络上的每个用户添加一行。我有管理员权限,但对 Windows 脚本一无所知。有人能给我指点一下吗?我没有所有机器名称的列表,所以我更喜欢一个可以发现网络上所有机器并进行更新的脚本。

答案1

我意识到问题是关于通过 vbscript 修改主机文件。

为您尝试解析的主机名创建一个新的内部 DNS 条目是否更有效?如果您确实希望网络上的每个用户/机器都能看到此更改,也许这会更容易?

答案2

如果你有一个域,只需使用登录脚本(组策略对象)方法其他人建议并告诉所有人重新启动。

更好的办法:将条目添加到本地 DNS 服务器反而

否则,VBScript 仍然不是必需的。考虑包含如下行的批处理文件:

echo 10.20.30.40 fishsticks >> \\hostname\c$\windows\system32\drivers\etc\hosts

另外:你听起来不太有条理。

这不是你问的问题,但这是你应该解决的问题第一的

如果有必要,请拿出电子表格并计算机器数量。

答案3

不要使用“HOSTS”文件。就这样。任何使用 HOSTS 文件的“解决方案”都只会制造新问题。

我假设您有一个 Active Directory 域。在域控制器(很可能也是您的 DNS 服务器之一)上启动“DNS 管理”管理控制台,打开服务器节点、“正向查找区域”节点,然后突出显示与您的 Active Directory 域相对应的区域。单击“操作”(在菜单中)和“新主机”。输入新主机的主机名和 IP 地址。

5 分钟内,该 DNS 服务器的客户端将能够解析该主机名。

假设您是系统管理员。听起来您需要花一些时间了解 DNS,因为这将为您省去很多麻烦。

答案4

如果没有像 SCCM 这样的工具,您将无法发现网络上机器的确切列表。

第一个任务是找到主机:

  1. 如果你可以在 GPO 中使用启动脚本,这很容易

  2. 如果没有,那么如果你不太擅长编写脚本,我会采用一种外行人的方法。首先使用 angryIP 之类的工具获取要修改该工具的所有 Windows 桌面的列表

然后...

  1. 如果你有 GPO,我只需要编写一个批处理文件,其中包含类似 echo 192.168.0.2 hostname > %systemroot%\system32\drivers\etc\hosts.

  2. 如果您没有 GPO,请查看 PStools(特别是 PSexec)。将使用 angryIP 发现的主机名复制到主机文件中,然后使用 psexec 以主机名文件作为数组运行命令,它看起来像这样 psexec @hostfile "echo 192.168.0.2 hostname > %systemroot%\system32\drivers\etc\hosts"

相关内容