![]() |
Восстановление файла Hosts или очистка от внесённых записей
Нужен vbs(предпочтительней) или cmd для очистки ранее внесённых в hosts адресов для блокировки
Пожалуйста помогите |
так как файл пустой, то смысла из него что-то удалять нет - проще перезаписать
Код:
del c:\windows\system32\drivers\etc\hosts /F /Q Код:
copy %path_to_original_hosts_file%\hosts c:\windows\system32\drivers\etc\hosts /Y |
Удалять бы я не стал — сменится владелец. Просто:
Код:
>nul copy nul "%SystemRoot%\system32\drivers\etc\hosts" Код:
>nul copy "Путь к ранее сохранённому оригинальному файлу\hosts" "%SystemRoot%\system32\drivers\etc\hosts" |
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 |
Цитата:
Цитата:
|
Цитата:
там всё с # начиналось. |
Теперь >nul copy nul "%SystemRoot%\system32\drivers\etc\hosts" отработал нормально
Цитата:
|
Помогите ещё, если это не слишком сложно.
Можно как нибудь конвертировать .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 поэтому хочется чтобы это было одним файлом |
Цитата:
Цитата:
У меня под Windows 7 атрибута ReadOnly на файле нет, владельцем является «NT AUTHORITY\SYSTEM», право на изменение есть у данной учётной записи и у встроенной группы Администраторы. Категорически не вижу никакого смысла что-либо здесь трогать, особенно в том виде, как это сделано в приведённом Вами коде, ибо ничего из описанного для правки не требуется. Совсем. Как в более новых ОС, кто там владелец, какие там права — не знаю, коллеги подскажут, если что изменилось, тогда и будем смотреть. Ответ по существу — да, сделать можно. Смысла делать — пока не вижу. |
Спасибо за помощь.
Вопрос решён. |
Время: 13:05. |
Время: 13:05.
© OSzone.net 2001-