【问题标题】:VBScript error ADODB.Stream : Write to the file failedVBScript 错误 ADODB.Stream:写入文件失败
【发布时间】:2021-09-06 11:25:18
【问题描述】:

我正在尝试运行一个脚本,该脚本从文件中解析 url 和项目名称,并尝试将文件从 url 下载为 zip 格式。我在将文件写入文件夹时看到错误。我正在使用 windows sserver 2012 R2

ADODB.Stream : 写入文件失败

我已验证 IUSER 和其他用户对目标和源文件夹具有完全访问权限。

这是脚本。我可以知道我是否在这里遗漏了什么吗?

Dim URLFile 
Dim URLLine, URL, ProjectName
Dim xHttp, bStrm

Set objShell = CreateObject("WScript.Shell")
Set WshShell = WScript.CreateObject("WScript.Shell") 
set fso = createobject("scripting.filesystemobject")
Set URLFile = fso.OpenTextFile("C:\Temp\Scripts\VBScripts\URLList.txt")


do while  not URLFile.AtEndOfStream

URLLine = URLFile.ReadLine()
'Wscript.Echo URLLine

if len(URLLine)>10 then
URL = Left(URLLine,inStr(URLLine,";")-1)
ProjectName = Right(URLLine,Len(URLLine)-inStr(URLLine,";"))
Set xHttp = createobject("Microsoft.XMLHTTP")
Set bStrm = createobject("Adodb.Stream")


xHttp.Open "GET", URL, False
xHttp.Send


with bStrm
   .type = 1 '//binary
   .open
   .write xHttp.responseBody
   .savetofile "C:\Backups\"&"Backup Zip All Files for "&ProjectName&"-"&cStr(Date)&".zip", 2 '//overwrite
  end with

Set xHttp = Nothing
Set bStrm = Nothing

end if

loop

【问题讨论】:

  • 你为什么要标记这个PowerShell
  • 无论您是否相信这是一个权限问题,您都需要检查您是否使用IUSR 作为您的ApplicationPoolIdentity 以及匿名用户帐户。如果没有,您需要授予IIS_IUSRS 系统组对该文件夹的写入权限。
  • 本地能正常工作吗?此错误仅出现在 iis 上?如果是这样,那么它应该是一个权限问题,请重新检查您的权限。你给IUSER“完全控制”权限了吗?
  • 是的 这在本地可以正常工作。在服务器中,我对包括 IUSER 和我自己在内的多个用户拥有完全控制权。附上权限截图

标签: iis vbscript asp-classic adodb


【解决方案1】:

如果您通过为每个人设置读/写来克服权限问题,那么您只需要一个执行 ZIP 功能的模块。

我通常使用商业 DLL,有很多可供选择。

【讨论】:

  • 我看不出这是如何回答问题的。
  • 即时压缩下载时它适用于我。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-07
  • 2020-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多