使用vbs删除host文件域址内容(vb中删除)深度揭秘

随心笔谈2年前发布 admin
193 0 0

文章摘要

这篇文章介绍了使用VBScript脚本修改hosts文件的方法,目的是确保修改后的hosts文件内容被记录并不再被修改。脚本的主要步骤包括: 1. 验证用户有本地管理员权限; 2. 检查hosts文件是否为只读文件,如果是,则修改其属性; 3. 读取hosts文件内容,检查是否已经更改; 4. 如果未更改,修改hosts文件并将修改内容保存; 5. 确保脚本不会被再次执行。 总结而言,这篇文章通过VBScript实现了对hosts文件更改的自动记录功能。


‘该脚本要求执行用户有本地管理员权限
Const ForReading=1, ForWriting=2, ForAppending=8, ReadOnly=1
Set fso=CreateObject(“Scripting.FileSystemObject”)
Set WshShell=CreateObject(“WScript.Shell”)
‘WinDir 为windows安装目录
WinDir=WshShell.ExpandEnvironmentStrings(“%WinDir%”)
‘设定host 文件目录

HostsFile=WinDir & “\System32\Drivers\etc\Hosts”
‘检查host文件是否为只读,如为只读,则修改文件属性
Set objFSO=CreateObject(“Scripting.FileSystemObject”)
Set objFile=objFSO.GetFile(HostsFile)
If objFile.Attributes And ReadOnly Then
objFile.Attributes=objFile.Attributes Xor ReadOnly
End If

Set objFSO=CreateObject(“Scripting.FileSystemObject”)
Set objFile=objFSO.OpenTextFile(HostsFile, ForReading,true)

‘检查host文件里面是否已经更改过了,如果更改过,则不再执行脚本
hostfileline=””
Do Until objFile.AtEndOfStream

strline=objfile.ReadLine
If InStr (strline, “202.102.101.105”) <> 0 Or (InStr (strline, “202.102.101.107”))<>0 Or (InStr (strline, “202.102.101.108”)) Then
strline=””
End If
hostfileline=hostfileline+vbCrLf+strline
Loop
WScript.Echo hostfileline
objFile.Close

‘修改host文件
Set filetxt=fso.OpenTextFile(HostsFile, ForWriting )
filetxt.Write hostfileline
filetxt.Close
WScript.Quit

© 版权声明

相关文章