Добавить запись в файл hosts через командную строку
Иногда приходится сталкиваться с такой проблемой, как изменить файл hosts. И если в ранних версиях Windows это делается весьма легко, то начиная с Windows 7, при сохранении возникает ряд проблем. В первую очередь это связано с тем, что при разработке новых версий использовались новые, более надежные, но в тоже время жесткие правила безопасности.
А ведь иногда просто необходимо внести туда несколько адресов и сайтов, дабы ограничить к ним доступ, запретить выводить рекламу в популярных приложениях.
Итак, как же изменить файл hosts windows 7, 8, 10. Если вы не знаете, где именно располагается данный файл, советуем записать путь к нему: C:\Windows\System32\drivers\etc\hosts?
Есть два основных способа, о которых мы с вами и поговорим.
Как изменить hosts через командную строку?
В первую очередь, отметим, что для того, чтобы изменить hosts, следует открыть его в программе, запущенной от имени администратора. Поэтому следует зайти в систему под учетной записью администратора.
Теперь поговорим о том, как открыть файл hosts и внести в него изменения.
В первую очередь, советуем вам воспользоваться командной строкой. Отметим, что она должна быть открыта от имени администратора, а не обычного пользователя. Для этого переходим в Пуск -> Все программы -> Стандартные -> Командная строка, кликаем правой кнопкой мыши и выбираем пункт «Запустить от имени администратора».
Далее ждем, пока перед нами не откроется окно командной строки. В нем следует прописать: notepad C:\Windows\System32\drivers\etc\hosts (можно скопировать и вставить).
Таким образом, мы даем системе задачу запустить файл hosts в блокноте.
После его открытия вы сможете внести в него изменения, а затем сохранить.
С чего всё начиналось?
Что появилось нового?
Поддержка Linux
С самого начала казалось, что консоль Linux и без этого имеет очень богатые возможности, поэтому появление подобной программы не будет оценено сообществом. Однако, я получил несколько писем с просьбой реализовать возможность работы под Linux.
В последней версии Hosts Commander появилась поддержка Linux и других Unix-подобных операционных систем. Запуск с правами суперпользователя требуют только команды, изменяющие содержимое hosts.
Для запуска необходимо установить Mono 2.8+, который в некоторых дистрибутивах (например, Ubuntu) есть по умолчанию.
Запуск выполняется командой вида mono hosts.exe param1 param2 param3 , что не совсем удобно. Но вы легко можете создать alias hosts="mono hosts.exe" для работы с hosts так же, как и под Windows.
Поддержка алиасов и умная команда add
Поддержка IDN (русскоязычные домены)
Поддержка IPv6 адресов
IPv6, к сожалению, сегодня используется недостаточно активно. Однако, современные ОС поддерживают его в полной мере. Hosts Commander может похвастаться тем же:
hosts add ipv6demo.local ::1
В связи с тем, что в одном файле hosts может быть объявлено две записи с одним и тем же доменом, но с IPv4 и IPv6 адресами, команда add теперь всегда добавляет новый хост в конец файла, а для обновления существующих записей используется команда set. Это достаточно спорный момент. Если у вас есть идея, как сделать команды add и set более удобными и прозрачными — просьба поделиться в комментариях или на email.
Откат последней операции
Встроенный командный интерпретатор
Теперь при запуске hosts без параметров запускается встроенный командный интерпретатор. Он поддерживает все команды, доступные для прямого вызова. Главное отличие — не нужно перед каждой командой писать hosts . Удобно, если вам необходимо выполнить множество операций с файлом hosts. Ещё одно преимущество при запуске из консоли с ограниченными правами под Windows Vista/7: после согласия на предоставление Hosts Commander доступа к системе откроется новое окно, которое не будет тут же закрыто.
Выход из командного интерпретатора осуществляется командами exit или quit .
Решение
Однако hosts не так прост. Маскируется.
Вот другой вариант с последовательным переходом в папку etc (кстати, путь к ней у Вас и моем посте выше прописан не верно) и функцией получения полных прав на запись в него.
Только предупреждаю, что этим Вы подорвете безопасность системы.
Кода восстановления параметров безопасности я не писал.
Реально, но позже.
Насчёт пути к папке, это я сразу увидел, просто в тему забыл отписаться.
После использования первого варианта, файл "hosts" пропадает, и появляется "lmhosts.sam", но на самом деле он просто невидимым становится, потому что перед запуском нашего файла, я открывал "hosts" в блакноте и там можно было увидеть, что добавляется строка, но вот этот текст в блокноте - единственный способ увидеть файл этот, не знаю куда он прячется, но он точно существует.
работает. Но вот вопрос-как теперь удалять нужные строки в файле hosts. Допустим при помощи батника который добавил строчку
Обнаружил баг-удаляю ВСЕ строки из файла hosts. Запускаю этот батник и строчка создаётся не на первой строке а на второй. Как сделать что бы создавалась на первой строке?
то если строчка которую нужно удалить находиться на 2 строке или на 3 не удаляется. А если на первой строке, то удаляется
Briolin, Dragokas всё верно написал, никакой разницы от для hosts не будет.
Код по удалению строчки работает по принципу: построчно (включая пустые строки) считывается файл hosts, если какая-то строка будет равна искомой строке, то в временный файл рядом с батником пишется пробел, если не равна, то во временный файл пишется строчка из hosts. Поэтому и количество пробелов в искомой строчке имеет значение. Затем оригинальный файл hosts удаляется, а на его место переносится изменённый временный файл, добавляются соответствующие атрибуты.
Поэтому, на какой строчке будет искомый url в файле hosts, значения не имеет.
sov44, а почему тогда удаляется строка если она стоит первой? Если на второй то всё, не удаляется
Добавлено через 2 минуты
sov44, нашел порблему. Действительно в другом-при повторном использ. бат он не видит "файл хост".
Добавлено через 2 часа 5 минут
Всё я понял в чем проблема. Запускаю этот батник
О удаляет строчку нужную мне. Но ставит атрибут "только чтение" для файла hosts. Из-за этого второй раз что бы успешно запустить бат нужно вручную снимать галку "только чтение". Как сделать что бы после этого батника не ставился этот атрибут?
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.
файл filename1.txt
@echo off
copy /Y /A %windir%\system32\drivers\etc\hosts + e:\filename2.txt %windir%\system32\drivers\etc\hosts
Последний раз редактировалось Серафима Аркадьевна, 14-05-2010 в 20:56 . Причина: дополнение
Спасибо большое, все работает
Осталось забить все блокируемые хосты все будет
Конфигурация компьютера | |
Процессор: Intel Core i5-2400@3.4GHz | |
Материнская плата: Gigabyte GA-Z68X-UD3-B3 | |
Память: 2*8GB DDR3 1600MHz Crucial | |
HDD: SSD OCZ Agility 3 120GB, SSD SmartBuy Revival 240GB, HDD Samsung F4 2000GB, Samsung F1 750GB, WG Green 750GB | |
Видеокарта: ASUS GeForce GTX 670 2GB | |
Блок питания: Chieftec A135 APS-650C 650W | |
Монитор: 24" Benq G2420HDBL | |
ОС: Win7 x64, Linux Mint | |
Индекс производительности Windows: 7,5 (7,5 7,8 7,9 7,9 7,9) |
SibAgent,
А еще можно сделать перенаправление, например, на сайт своей компании, чтобы люди понимали, что надо работать на работе, а не по контактам лазить (если, конечно, это для работы делаешь)
-------
* Книгой можно не только стаканчик с лапшой накрывать. ©
вот как раз для работы и делаю, а то сидят в рабочее время по социалкам, а как перенаправление сделать?
У нас организовано при помощи Kerio, но, думаю, можно найти и какое-нибудь бесплатное решение. В принципе, такая защита - удел интернет-шлюза, а не конечной рабочей станции (что касается предприятия).
Конфигурация компьютера | |
Процессор: Intel Core i5-2400@3.4GHz | |
Материнская плата: Gigabyte GA-Z68X-UD3-B3 | |
Память: 2*8GB DDR3 1600MHz Crucial | |
HDD: SSD OCZ Agility 3 120GB, SSD SmartBuy Revival 240GB, HDD Samsung F4 2000GB, Samsung F1 750GB, WG Green 750GB | |
Видеокарта: ASUS GeForce GTX 670 2GB | |
Блок питания: Chieftec A135 APS-650C 650W | |
Монитор: 24" Benq G2420HDBL | |
ОС: Win7 x64, Linux Mint | |
Индекс производительности Windows: 7,5 (7,5 7,8 7,9 7,9 7,9) |
-------
* Книгой можно не только стаканчик с лапшой накрывать. ©
- смысл cacls. если прав нет, то расширить их не выйдет, если есть - можно сразу редактировать;
- хорошо бы еще добавить FIND для предотвращения дублей/разрастания файла
-------
Как сообщить о том, что моя проблема решена?
не оказываю техподдержку через ПМ/ICQ/Mail - для этого есть форум
- смысл cacls. если прав нет, то расширить их не выйдет, если есть - можно сразу редактировать; - хорошо бы еще добавить FIND для предотвращения дублей/разрастания файла » |
1. Понял идею при попытке реализовать п.2
2. Вот батник с проверкой на наличие уже существующих записей и с разблокировкой доменов (в текстовике вместо адреса ставится дефис, т.е. например так: "- youtube.com"), но наткнулся на то, что ДОСовские команды при попытке хоть что-либо сделать с "hosts." выдают "Access is denied."
Конфигурация компьютера | |
Процессор: Core™2 Quad Q8300 @ 2.50GHz | |
Материнская плата: MSI G41M-P33 Combo | |
Память: PQI DDR2 (PC2-6400) 2x2048 | |
HDD: SSD OCZ-AGILITY3 - 120GB | |
Видеокарта: Gigabyte GeForce GTX660 2048Mb | |
ОС: Windows 10 Pro x64 (11082) |
Для редактирования файла hosts воспользуйтесь одним из предложенных вариантов:
- Нажмите Пуск - напечатайте notepad - на найденном ярлыке Блокнот нажмите правую кнопку мыши и выберите Запуск от имени администратора.
- Запустите командную строку (cmd) от имени администратора:
- Нажмите сочетание клавиш Win+X или правую кнопку мыши на кнопке Пуск и выберите в меню пункт Командная строка (администратор)
Если все равно не удается получить доступ для копирования или изменения файла hosts, проверьте не блокирует ли его изменение ваш антивирус. Во многих антивирусных продуктах есть такая функция.
Для решения этой проблемы смотрите настройки/инструкцию к вашему антивирусу.
Конфигурация компьютера | |
Процессор: Core™2 Quad Q8300 @ 2.50GHz | |
Материнская плата: MSI G41M-P33 Combo | |
Память: PQI DDR2 (PC2-6400) 2x2048 | |
HDD: SSD OCZ-AGILITY3 - 120GB | |
Видеокарта: Gigabyte GeForce GTX660 2048Mb | |
ОС: Windows 10 Pro x64 (11082) |
Вам все равно не поможет файл hosts .txt где бы вы его ни расположили
Этот файл должен быть без расширения, если сохраняете в блокноте, то имя заключайте в кавычки: " hosts "
Сохраните куда угодно, потом скопируйте в C:\Windows\System32\drivers\etc - при копировании будет запрошено подтверждение - подтвердите.
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.
Еще как вариант:
Запускаем командную строку от администратора, в ней пишем: notepad. Дальше, через "Открыть" находим необходимый файл (предварительно выбрав в типах файлов "Все файлы") и редактируем, сохраняем.
-------
Закон опутывает нас тысячами незримых нитей:
разорвешь одну - преступник, две - смерник, все - бог.
Почему то весь инет пестрит советами, как в Виндовс 7,8 редактировать файл hosts . Или у меня крыша поехала, или народ решил всем скопом меня обмануть !
Нет в системе по указанному пути (Windows\system32\drivers\ets) этого файла, зато он всегда есть по очень сложному и кучерявому пути Windows\SysWOW64\. и далее.
Куча советов как его редактировать и с помощью блокнота с правами администратора, и с помощью прилагаемого батника, но ни один не работает ! Файл нередактируемый.
В W 7 мне удавалось его менять с помощью сложных телодвижений (менять или создавать владельца, присваивать ему права . ). В W 8.1 эти манипуляции не работают. Может кто подсказать как правильно его отредактировать, и . - вернуть ему обратно все свойства ?
Hosts Commander призван максимально облегчить работу с файлом hosts из консоли. Если вам время от времени приходится забираться в этот файл (что характерно для веб-разработчика), и вы любите консоль — Hosts Commander может прийтись вам по душе.
Год назад на Хабрахабре была анонсирована первая версия программы, которая работала только под Windows. Но с тех пор многое изменилось и стало лучше. Это отличный пример, как из простой идеи может вырасти нечто большее.
Итого
Проект вместе с исходниками и более подробной документацией доступен на его страничке.
Топик открыт для отзывов и предложений. Если вы столкнулись с какими-то проблемами в работе программы, просьба сообщить об этом, и я постараюсь решить их.
Изменить и сохранить файл hosts через «Свойства»
Вы также можете изменить файл hosts через «Свойства». Для этого нужно перейти собственно к самому файлу C:\Windows\System32\drivers\etc\ и нажать на нем правой кнопкой мыши. Далее выбираем «Свойства».
Теперь переходим по вкладке «Безопасность» и нажимаем кнопку «Дополнительно».
Во вкладке «Разрешения» нажимаем кнопку «Изменить разрешения».
Для группы «Пользователи» меняем разрешение безопасности касательно файла «hosts». Для этого нужно выбрать: группу Пользователи — Изменить и установить галочку напротив Полный доступ. Сохраняем изменения нажав кнопку «Ок».
Система спросит, действительно ли вы хотите внести изменения? Подтверждаете.
Теперь двойным щелчком нажимаем на файл «hosts» и выбираем программу Блокнот для его редактирования.
Возможно ли с помощью cmd-файла изменить содержимое файла Hosts, в частности добавление в него нескольких строк (адресов).
Вариант перенесения другого(исправленного) файла с помощью команды "Replase" не подойдёт, нужно именно редактирование оригинального файла
Добавлено через 22 минуты
Находил вот такой вот синтаксис:
Изменение файла HOSTS
Здравствуйте. Есть батник который дописывает строки в файл host. Проблема-как запустить успешно.
Изменение адреса файла hosts
По различным причинам приходится качать много софта, в том числе и с далеко не самых проверенных.
Win-7 64 Изменение файла hosts
Если кто знает , можно ли изменить этот файл -.
Снятие атрибутов Hidden, System, ReadOnly.
Затем стандартная дозапись потока в файл с повышенными правами, если это ОСь с версией >= vista.
Восстановление атрибутов.
Добавлено через 1 минуту
Ещё раз благодарю за помощь)
Добавлено через 47 минут
Возникла проблема: cmd-файл успешно дозаписывает строчку в конец документа, но дело в том, что дописать нужно не в последнюю строчку, а в предпоследнюю.
Вот так выглядит конец документа:
127.0.0.1 localhost
127.0.0.1 localhost(вот сюда нужно дозаписать, либо после этой строчки, либо вместо неё)
::1 localhost
Изменение hosts в текстовом редакторе
Второй способ, который поможет вам быстро отредактировать hosts — открытие файла в текстовом редакторе. Как вы догадались, тут также нужны права администратора.
По сути, кардинальных отличий нет, разве что придется открывать другую папку и программу.
Для начала заходим в «Мой компьютер» и задаем путь папки: C:\Windows\system32, находим в ней программу notepad.exe и запускаем от имени администратора.
В открывшемся окне выбираем команду «Файл», затем «Открыть», и прописываем путь к файлу hosts: C:\Windows\System32\drivers\etc\). Далее ставим в окошке с типом файла «все файлы», затем открываем его.
Вносим изменения и сохраняем файл.
Как видите, изменить файл hosts не так сложно, как утверждают люди, впервые столкнувшиеся с данной проблемой. Единственное, вы должны иметь права администратора на данном компьютере или ноутбуке и тогда вам станет доступно большинство функций вашего ПК.
Читайте также: