我们需要在 hosts 文件中为网络上的每个用户添加一行。我有管理员权限,但对 Windows 脚本一无所知。有人能给我指点一下吗?我没有所有机器名称的列表,所以我更喜欢一个可以发现网络上所有机器并进行更新的脚本。
答案1
我意识到问题是关于通过 vbscript 修改主机文件。
为您尝试解析的主机名创建一个新的内部 DNS 条目是否更有效?如果您确实希望网络上的每个用户/机器都能看到此更改,也许这会更容易?
答案2
答案3
不要使用“HOSTS”文件。就这样。任何使用 HOSTS 文件的“解决方案”都只会制造新问题。
我假设您有一个 Active Directory 域。在域控制器(很可能也是您的 DNS 服务器之一)上启动“DNS 管理”管理控制台,打开服务器节点、“正向查找区域”节点,然后突出显示与您的 Active Directory 域相对应的区域。单击“操作”(在菜单中)和“新主机”。输入新主机的主机名和 IP 地址。
5 分钟内,该 DNS 服务器的客户端将能够解析该主机名。
假设您是系统管理员。听起来您需要花一些时间了解 DNS,因为这将为您省去很多麻烦。
答案4
如果没有像 SCCM 这样的工具,您将无法发现网络上机器的确切列表。
第一个任务是找到主机:
如果你可以在 GPO 中使用启动脚本,这很容易
如果没有,那么如果你不太擅长编写脚本,我会采用一种外行人的方法。首先使用 angryIP 之类的工具获取要修改该工具的所有 Windows 桌面的列表
然后...
如果你有 GPO,我只需要编写一个批处理文件,其中包含类似
echo 192.168.0.2 hostname > %systemroot%\system32\drivers\etc\hosts.
如果您没有 GPO,请查看 PStools(特别是 PSexec)。将使用 angryIP 发现的主机名复制到主机文件中,然后使用 psexec 以主机名文件作为数组运行命令,它看起来像这样 psexec @hostfile "echo 192.168.0.2 hostname > %systemroot%\system32\drivers\etc\hosts"