Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - [решено] Восстановление файла Hosts или очистка от внесённых записей

Ответить
Настройки темы
Любой язык - [решено] Восстановление файла Hosts или очистка от внесённых записей

Аватара для BKPB

Старожил


Сообщения: 172
Благодарности: 6

Профиль | Отправить PM | Цитировать


Нужен vbs(предпочтительней) или cmd для очистки ранее внесённых в hosts адресов для блокировки
Пожалуйста помогите

Отправлено: 12:04, 14-10-2017

 

Аватара для cameron

Ветеран


Сообщения: 4677
Благодарности: 1092

Профиль | Отправить PM | Цитировать


так как файл пустой, то смысла из него что-то удалять нет - проще перезаписать

Код: Выделить весь код
del c:\windows\system32\drivers\etc\hosts /F /Q
@echo off > c:\windows\system32\drivers\etc\hosts
или
Код: Выделить весь код
copy %path_to_original_hosts_file%\hosts c:\windows\system32\drivers\etc\hosts /Y

-------
в личке я не консультирую и не отвечаю на профессиональные вопросы. для этого есть форум.

Это сообщение посчитали полезным следующие участники:

Отправлено: 17:40, 14-10-2017 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Удалять бы я не стал — сменится владелец. Просто:
Код: Выделить весь код
>nul copy nul "%SystemRoot%\system32\drivers\etc\hosts"
или:
Код: Выделить весь код
>nul copy "Путь к ранее сохранённому оригинальному файлу\hosts" "%SystemRoot%\system32\drivers\etc\hosts"
В старых ОС, до Vista, там ещё не был закомментирован localhost.

Последний раз редактировалось Iska, 14-10-2017 в 19:20. Причина: Добавлен пропущенный символ «%»

Это сообщение посчитали полезным следующие участники:

Отправлено: 17:57, 14-10-2017 | #3


Аватара для BKPB

Старожил


Сообщения: 172
Благодарности: 6

Профиль | Отправить PM | Цитировать


del c:\windows\system32\drivers\etc\hosts /F /Q
@echo off > c:\windows\system32\drivers\etc\hosts

После этой команды файл hosts стал пустым.

Извините за вопрос.
А как выполнить эту команду: >nul copy nul "%SystemRoot\system32\drivers\etc\hosts"
это сценарий или скрипт. Пробовал как .cmd, результата нет.

Вот файл .vbs с помощью которого я вношу изменения:
Скрытый текст
Domains = Split("www.facebook.com facebook.com vkontakte.ru www.vkontakte.ru vk.com www.vk.com www.rutube.ru rutube.ru www.youtube.com youtube.com")

With CreateObject("Scripting.FileSystemObject")
Set F = .GetFile(.GetSpecialFolder(1) & "\drivers\etc\hosts")
End With : A = F.Attributes
All = F.OpenAsTextStream(1).ReadAll
If (A And 1) = 1 Then F.Attributes = A - 1 : T = 1

With New RegExp
.MultiLine = True : .IgnoreCase = True
For Each Dom In Domains
.Pattern = "^(0\.0\.0\.0|121\.0\.0\.1)[\t ]" & Replace(Dom, ".", "\.") & "\b"
If Not .Test(All) Then _
With F.OpenAsTextStream(8) .WriteLine "121.0.0.1 " & Dom : .Close : End With
Next
End With : If T Then F.Attributes = A


Может можно сделать такой же, но для отката или очистки hosts

Отправлено: 19:10, 14-10-2017 | #4


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата BKPB:
Пробовал как .cmd, результата нет. »
Я пропустил второй символ «%». Поправил предыдущее сообщение.

Цитата BKPB:
Может можно сделать такой же, но для отката или очистки hosts »
BKPB, коллега cameron уже сказала, что оригинальный файл hosts — пустой (в новых ОС), за исключением комментариев. На WSH можно тупо открыть его для записи как TextStream и сразу же закрыть. Можно взять оригинальное содержимое в конкретной ОС и записывать его. Как угодно.
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:25, 14-10-2017 | #5


Аватара для cameron

Ветеран


Сообщения: 4677
Благодарности: 1092

Профиль | Отправить PM | Цитировать


Цитата BKPB:
После этой команды файл hosts стал пустым. »
он и был пустым
там всё с # начиналось.

-------
в личке я не консультирую и не отвечаю на профессиональные вопросы. для этого есть форум.


Отправлено: 19:36, 14-10-2017 | #6


Аватара для BKPB

Старожил


Сообщения: 172
Благодарности: 6

Профиль | Отправить PM | Цитировать


Теперь >nul copy nul "%SystemRoot%\system32\drivers\etc\hosts" отработал нормально

Цитата cameron:
он и был пустым
там всё с # начиналось. »
Я и имел ввиду # , просто, что он может быть совершенно чистым без # я не знал (Windows 10)

Отправлено: 19:47, 14-10-2017 | #7


Аватара для BKPB

Старожил


Сообщения: 172
Благодарности: 6

Профиль | Отправить PM | Цитировать


Помогите ещё, если это не слишком сложно.
Можно как нибудь конвертировать .cmd в .vbs
Суть в том, что нужно с помощью .vbs снять защиту с hosts
и после внесения изменений с помощь фрагмента .vbs
снова восстановить защиту.
У меня есть для этого два .cmd
Снимает защиту:
Скрытый текст
@echo off
cd /d "%windir%\system32\drivers"
cd etc

Call :GrantAccess hosts
attrib -R hosts
goto :eof

:GrantAccess
takeown /f "%~1"
echo y|cacls "%~1" /g %username%:f
exit /b

Восстанавливает защиту:
Скрытый текст
@echo off
cd /d "%windir%\system32\drivers"
cd etc

Call :GrantAccess hosts
attrib +R hosts
goto :eof

:GrantAccess
takeown /f "%~1"
echo y|cacls "%~1" /g %username%:f
exit /b

а мне нужно в .vbs т.к изменения вносятся с помощью .vbs
Скрытый текст
Domains = Split("www.facebook.com facebook.com vkontakte.ru www.vkontakte.ru vk.com www.vk.com www.rutube.ru rutube.ru www.youtube.com youtube.com")

With CreateObject("Scripting.FileSystemObject")
Set F = .GetFile(.GetSpecialFolder(1) & "\drivers\etc\hosts")
End With : A = F.Attributes
All = F.OpenAsTextStream(1).ReadAll
If (A And 1) = 1 Then F.Attributes = A - 1 : T = 1

With New RegExp
.MultiLine = True : .IgnoreCase = True
For Each Dom In Domains
.Pattern = "^(0\.0\.0\.0|121\.0\.0\.1)[\t ]" & Replace(Dom, ".", "\.") & "\b"
If Not .Test(All) Then _
With F.OpenAsTextStream(8) .WriteLine "121.0.0.1 " & Dom : .Close : End With
Next
End With : If T Then F.Attributes = A

поэтому хочется чтобы это было одним файлом

Отправлено: 20:09, 14-10-2017 | #8


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата BKPB:
Я и имел ввиду # »
Это и есть комментарии, они просто пропускаются обработчиком.

Цитата BKPB:
У меня есть для этого два .cmd
Снимает защиту:

Восстанавливает защиту:
»
Первый снимает атрибут ReadOnly с файла, второй — устанавливает. Плюс оба сбрасывают текущего владельца и разрешения безопасности и пытаются устанавливать владельцем текущего пользователя и дать ему полные права. Никакой «защитой» там и не пахнет.

У меня под Windows 7 атрибута ReadOnly на файле нет, владельцем является «NT AUTHORITY\SYSTEM», право на изменение есть у данной учётной записи и у встроенной группы Администраторы. Категорически не вижу никакого смысла что-либо здесь трогать, особенно в том виде, как это сделано в приведённом Вами коде, ибо ничего из описанного для правки не требуется. Совсем. Как в более новых ОС, кто там владелец, какие там права — не знаю, коллеги подскажут, если что изменилось, тогда и будем смотреть.

Ответ по существу — да, сделать можно. Смысла делать — пока не вижу.
Это сообщение посчитали полезным следующие участники:

Отправлено: 20:37, 14-10-2017 | #9


Аватара для BKPB

Старожил


Сообщения: 172
Благодарности: 6

Профиль | Отправить PM | Цитировать


Спасибо за помощь.
Вопрос решён.

Последний раз редактировалось BKPB, 15-10-2017 в 20:01.


Отправлено: 14:04, 15-10-2017 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - [решено] Восстановление файла Hosts или очистка от внесённых записей

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Любой язык - 2- задачи:замена файла hosts и запуск программы от админа santey007 Скриптовые языки администрирования Windows 27 26-08-2016 17:06
2008 R2 - Очистка устаревших записей DNS на КД sovransky5 Windows Server 2008/2008 R2 3 17-02-2016 16:09
Службы - [решено] Оригинал файла Hosts Vostorg Microsoft Windows 7 4 22-07-2015 17:07
Доступ - [решено] У файла hosts правильный владелец или нет? rstp14 Microsoft Windows 8 и 8.1 2 16-07-2014 04:09
Интерфейс - [решено] Очистка истории записей в диалоговом окне Выполнить (Run) andy tacker Microsoft Windows 2000/XP 7 25-02-2004 23:22




 
Переход