停止填充临时 Internet 文件的 VBS 脚本

Stop a VBS Script filling up temp Internet files

我有一个 .vbs 脚本可以快速创建大量临时 Internet 文件。我怎样才能减少这个?它是一个 Windows Server 2016 box

我已经尝试使用 IE > 工具 > 临时 Intranet 文件对此设置限制...但是这不起作用。我怀疑是因为没有打开实际的浏览器。 .vbs 文件由 Windows 定时任务触发。它使用 HTTP 协议连接到 XML 源,如下所示:

Set objxml = CreateObject("Msxml2.DOMDocument")
objxml.setProperty "SelectionLanguage", "XPath"
objXML.async =  False
objXML.Load url 

然后遍历XML,将数据插入到DB中,然后结束。结果是这个位置每小时大约有 40MB 的文件:

C:\Users\[theUser]\AppData\Local\Microsoft\Windows\INetCache\IE

正如我上面所说。我已经以 [theUser] 身份登录服务器并将上限设置为 200MB,但它不遵守此规定。我如何才能阻止此进程破坏 [theUser] 的临时 Internet 文件位置?

已编辑:如果您不支持代理 IMO,则公认的解决方案更好。我选择 运行 高权限的 WST 并这样做:

 call dumpAllFilesInFolder("C:\Users\[theUser]\AppData\Local\Microsoft\Windows\INetCache\IE")
 function dumpAllFilesInFolder(theFullPath)
    dim objFS, curFile, objFolder, objFiles
    Set objFS = CreateObject("Scripting.FileSystemObject")
    Set objFolder = objFS.GetFolder(theFullPath) 
    Set objFiles = objFolder.Files
    For each curFile in objFiles
        objFS.DeleteFile(curFile)
    Next
end function

除非另有说明,否则 DOMDocument 使用主要为用户交互应用程序开发的 WinINET API。导致您遇到的问题的缓存文件是由于WinINET's cache behavior而创建的,简而言之:所有可以缓存的都必须缓存。

作为替代方案,您可以通过将 ServerHTTPRequest 属性 设置为 True 来强制 DomDocument 对象使用 WinHTTP。与 WinINET 不同,WinHTTP 是为服务器端应用程序设计的,因此不会缓存任何内容。似乎更适合您的环境。

Set objxml = CreateObject("Msxml2.DOMDocument")
objxml.setProperty "SelectionLanguage", "XPath"
objxml.setProperty "ServerHTTPRequest", True
objXML.async = False
objXML.Load url 

相关链接