我想在一个msi(安装项目)的 自定义操作中的脚本内调用caspol。我更喜欢标准msi ClickOnce, ,因为使用标准msi我可以安装驱动程序&关联 filetypes与我们的应用程序,而使用ClickOnce我不能。从vbscript中执行caspol
当我在命令行成功, 但是从VBScript中它总是失败,错误执行命令caspol“Fehler: Unbekannte Mitgliedschaftsbedingung - -url ..” - 意为 “错误:未知会员条件:-url“。要进一步说明:A 副本&生成的命令的粘贴可以在命令行 上直接在虚拟机的本地驱动器上正常工作,如本地 管理员作为工作组的一部分。
我有两个想法: 1.我不是VBScript国王,所以也许我错过了引号或者做了一些其他类型的语法错误。 2.卡斯波认识到我正在从一个脚本中运行它,并且因故意无意义的错误而暂停。
个人而言,我相信这只是一个愚蠢的语法错误。
这里是我的脚本:
set sh = CreateObject("Wscript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
dim command
dim location
dim retVal
location = fso.GetFile(Wscript.ScriptFullName).ParentFolder
'%windir%\microsoft.net\framework\v2.0.50727\caspol.exe -pp off -m -addgroup 1 –url file://COMPUTER/SHARE/* FullTrust -name sbw2
command = fso.GetSpecialFolder(0) & "\microsoft.net\framework\v2.0.50727\caspol.exe -pp off -m -ag 1 –url file://"
for each s in Split(location, "\")
if Len(s) > 0 then
command = command & s & "/"
end if
next
command = command & "* FullTrust -name sbw2"
'DEBUG
'command = fso.GetSpecialFolder(0) & "\microsoft.net\framework\v2.0.50727\caspol.exe -m -ag 1 –url file://mjlaptop/sbw2/* FullTrust"
Wscript.StdOut.WriteLine VbClrf
Wscript.StdOut.WriteLine command
Wscript.StdOut.WriteLine VbClrf
Set output = sh.Exec(command)
dim text
while Not output.StdOut.AtEndOfStream
text = text & output.StdOut.Read(1)
Wend
Wscript.StdOut.WriteLine text
由于提前,
马特
上面提供的代码答案甚至不会编译。不错的主意,我想我的简单建议,我错过了一个报价,嘿,引用它给我,但如果你要这样做,你必须确定它会运行,而不会抛出一个简单的语法错误。 – 2008-11-17 15:09:39