windows - 停止填充临时 Internet 文件的 VBS 脚本
问题描述
我有一个快速创建大量临时 Internet 文件的 .vbs 脚本。我怎样才能减少这种情况?它是一个 Windows Server 2016 盒子
我曾尝试使用 IE > 工具 > 临时 Intranet 文件对此进行限制....但这不起作用。我怀疑它是因为没有打开实际的浏览器。.vbs 文件由每小时的 Windows 计划任务触发。它使用 HTTP 协议连接到 XML 源,如下所示:
Set objxml = CreateObject("Msxml2.DOMDocument")
objxml.setProperty "SelectionLanguage", "XPath"
objXML.async = False
objXML.Load url
然后它遍历 XML,将数据插入数据库,然后完成。这样做的结果是每小时在这个位置有大约 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 的缓存行为而创建的,简而言之:可以缓存的所有内容都必须缓存。
作为替代方案,您可以通过将属性设置为 来强制您的DomDocument
对象使用 WinHTTP 。与 WinINET 不同,WinHTTP 是为服务器端应用程序设计的,因此不会缓存任何内容。似乎更适合您的环境。ServerHTTPRequest
True
Set objxml = CreateObject("Msxml2.DOMDocument")
objxml.setProperty "SelectionLanguage", "XPath"
objxml.setProperty "ServerHTTPRequest", True
objXML.async = False
objXML.Load url
相关链接
推荐阅读
- bash - 如何从 postgres bash 中获取 bash 变量?
- node.js - req.user 和 req.isAuthenticated() 有什么区别
- powershell - psObject 的两个不同输出
- r - 使用 ggplot2 创建堆叠条形图的最简单方法是什么?
- node.js - GCP 上的 docker 映像(nodejs 应用程序)返回 ERR_CONNECTION_REFUSHED(在本地工作)
- panel - 如何在 Panel Pyviz 小部件中显示函数的文本输出?
- javascript - 如果本地存储是一种解决方案,则在重新加载页面时数据应保留在 kendo-grid 中如何在我的代码中使用它
- javascript - 如何覆盖 Web 浏览器中的功能键?
- python - PySpark:如何从嵌套在数组内的结构中的结构中提取变量?
- java - 如何通过按钮将活动链接到片段