我已经制作了一个小登录脚本,该脚本的任务是安装Mimecast Add-in for Outlook
。
脚本首次检查是存在插件DLL文件,如果它执行了take product版本。如果版本与我们当前的8.7.4425.0匹配addin,则执行MSI的无声安装。如果Addin DLL也不存在安装。
我使用 VBSEdit
构建我的脚本,并且该脚本从调试器完美地运行。它找到add-in
版本并执行msi
。
但是,当我使用cscript或双击Windows Explorer执行脚本时,我会收到编译错误。
出于诊断目的,我正在使用/qb
开关来查看msi
执行。
代码在下面。
Dim mimever
Dim instcmd
Dim exist
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("Wscript.shell")
exist = 0
instcmd = "cmd /c start /wait msiexec /i " & Chr(34) & "\server-01ictSoftwareMimecastMSO 7.4Mimecast for Outlook 7.4.2183.20730 (64 bit).msi" & Chr(34) & " ALLUSERS=1" & " /qb /norestart"
if objFSO.FileExists("C:Program FilesMimecastMimecast Outlook Add-Inadxloader64.dll") then
exist = 1
End if
If exist = 1 then
mimever = objFSO.GetFileVersion("C:Program FilesMimecastMimecast Outlook Add-Inadxloader64.dll")
if mimever = null then
mimever = 0
End if
End if
if mimever <> "8.7.4425.0" Or exist = 0 then
ObjShell.Run instcmd
End If
错误屏幕截图
修复程序是将instcmd变量线更改为:
instcmd = "cmd /c start """" /wait msiexec /i " & Chr(34) & "\server-01ictSoftwareMimecastMSO 7.4Mimecast for Outlook 7.4.2183.20730 (64 bit).msi" & Chr(34) & " ALLUSERS=1" & " /qb /norestart"