Нам нужно добавить строку в файл hosts для каждого пользователя в нашей сети. У меня есть права администратора, но я ничего не знаю о сценариях Windows. Может ли кто-нибудь указать мне в этом правильном направлении? У меня нет списка всех имен машин, поэтому я бы предпочел сценарий, который обнаружит все машины в сети и выполнит обновление.
Я понимаю, что вопрос заключается в изменении файла хоста через vbscript.
Было бы более эффективным создать новую внутреннюю запись DNS для имени хоста, которое вы пытаетесь разрешить? Если вы действительно хотите, чтобы КАЖДЫЙ пользователь / компьютер в сети видел это изменение, возможно, это было бы проще?
Если у вас есть домен, просто используйте метод сценария входа (объект групповой политики) другие предлагают и скажите всем перезагрузиться.
Лучше: добавьте запись на свой локальный DNS-сервер вместо.
В противном случае VBScript по-прежнему не требуется. Рассмотрим пакетный файл с такими строками:
echo 10.20.30.40 fishsticks >> \\hostname\c$\windows\system32\drivers\etc\hosts
В стороне: вы не кажетесь организованным.
Это не проблема, о которой вы спрашивали, это проблема, которую вы действительно должны решить первый.
Возьмите электронную таблицу и посчитайте машины, если нужно.
Не используйте файлы "HOSTS". Период. Любое «решение», которое пользователи HOSTS-файлов создают, просто создает новую проблему.
Полагаю, у вас есть домен Active Directory. Запустите консоль управления «Управление DNS» на контроллере домена (который, скорее всего, также является одним из ваших DNS-серверов), откройте узел сервера, узел «Зоны прямого просмотра» и выделите зону, соответствующую вашему активному Справочник домена. Нажмите «Действие» (в меню) и «Новый хост». Введите имя хоста и IP-адрес нового хоста.
В течение 5 минут клиенты этого DNS-сервера смогут разрешить это имя хоста.
Предположительно вы сисадмин. Похоже, вам нужно потратить некоторое время на изучение DNS, потому что это избавит вас от многих головных болей в будущем.
Кукольный это решение для управления конфигурацией, которое говорит это поддерживает окна :)
Если не считать такого инструмента, как 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 \ хосты "
Может, пора там настроить локальный DNS? :)
Согласны с рекомендацией взглянуть на DNS, но давайте не будем забывать, что могут быть некоторые ужасные старые устаревшие приложения, которые все еще требуют разрешения имен хостов в этой сети.
Если вы используете сервер шлюза, измените там хосты, и все будет хорошо. В противном случае, если ваш маршрутизатор (cisco / juniper) допускает текстовую версию файла hosts, поместите его туда. Это позволит избежать необходимости размещать файл хоста на каждом клиенте.