|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - [решено] Восстановление файла Hosts или очистка от внесённых записей |
|
Любой язык - [решено] Восстановление файла Hosts или очистка от внесённых записей
|
Старожил Сообщения: 176 |
Профиль | Отправить PM | Цитировать Нужен vbs(предпочтительней) или cmd для очистки ранее внесённых в hosts адресов для блокировки
Пожалуйста помогите |
|
Отправлено: 12:04, 14-10-2017 |
Ветеран Сообщения: 4677
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 17:40, 14-10-2017 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать |
Последний раз редактировалось Iska, 14-10-2017 в 19:20. Причина: Добавлен пропущенный символ «%» Отправлено: 17:57, 14-10-2017 | #3 |
Старожил Сообщения: 176
|
Профиль | Отправить 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
|
Профиль | Отправить PM | Цитировать Цитата BKPB:
Цитата BKPB:
|
|||
Отправлено: 19:25, 14-10-2017 | #5 |
Ветеран Сообщения: 4677
|
Профиль | Отправить PM | Цитировать Цитата BKPB:
там всё с # начиналось. |
|
------- Отправлено: 19:36, 14-10-2017 | #6 |
Старожил Сообщения: 176
|
Профиль | Отправить PM | Цитировать Теперь >nul copy nul "%SystemRoot%\system32\drivers\etc\hosts" отработал нормально
Цитата cameron:
|
|
Отправлено: 19:47, 14-10-2017 | #7 |
Старожил Сообщения: 176
|
Профиль | Отправить 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
|
Профиль | Отправить PM | Цитировать Цитата BKPB:
Цитата BKPB:
У меня под Windows 7 атрибута ReadOnly на файле нет, владельцем является «NT AUTHORITY\SYSTEM», право на изменение есть у данной учётной записи и у встроенной группы Администраторы. Категорически не вижу никакого смысла что-либо здесь трогать, особенно в том виде, как это сделано в приведённом Вами коде, ибо ничего из описанного для правки не требуется. Совсем. Как в более новых ОС, кто там владелец, какие там права — не знаю, коллеги подскажут, если что изменилось, тогда и будем смотреть. Ответ по существу — да, сделать можно. Смысла делать — пока не вижу. |
||
Отправлено: 20:37, 14-10-2017 | #9 |
Старожил Сообщения: 176
|
Профиль | Отправить PM | Цитировать Спасибо за помощь.
Вопрос решён. |
Последний раз редактировалось BKPB, 15-10-2017 в 20:01. Отправлено: 14:04, 15-10-2017 | #10 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Любой язык - 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 |
|