我制作了一个小型登录脚本,其任务是安装Mimecast Add-in for Outlook
。
脚本首先检查是否存在插件dll文件,如果是,则采用产品版本。如果版本与我们当前的8.7.4425.0插件匹配,那么它会执行msi的静默安装。如果addin dll不存在,安装也会执行。
我使用VBSEdit
来构建我的脚本,这个脚本完全可以从调试器运行。它找到add-in
版本并执行msi
。
但是,当我使用cscript执行脚本或从Windows资源管理器中双击时,我收到编译错误。
出于诊断目的我正在使用/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-01\ict\Software\Mimecast\MSO 7.4\Mimecast for Outlook 7.4.2183.20730 (64 bit).msi" & Chr(34) & " ALLUSERS=1" & " /qb /norestart"
if objFSO.FileExists("C:\Program Files\Mimecast\Mimecast Outlook Add-In\adxloader64.dll") then
exist = 1
End if
If exist = 1 then
mimever = objFSO.GetFileVersion("C:\Program Files\Mimecast\Mimecast Outlook Add-In\adxloader64.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
答案 0 :(得分:0)
修复方法是将instcmd变量行更改为:
instcmd = "cmd /c start """" /wait msiexec /i " & Chr(34) & "\\server-01\ict\Software\Mimecast\MSO 7.4\Mimecast for Outlook 7.4.2183.20730 (64 bit).msi" & Chr(34) & " ALLUSERS=1" & " /qb /norestart"