从vbscript中执行caspol

时间:2008-11-17 09:59:53

标签: vbscript wsh caspol

我想在自定义操作中的脚本中调用caspol 一个msi(安装项目)。我更喜欢标准的msi到ClickOnce, 因为使用标准的msi我可以安装驱动程序&关联 使用我们的应用程序的文件类型,而使用ClickOnce我不能。

当我从命令行执行caspol命令时,它成功了, 但是从vbscript中总是失败并出现错误“Fehler: Unbekannte Mitgliedschaftsbedingung - -url ..“ - 翻译为 “错误:未知的成员资格条件:-url”。进一步澄清:A 副本&生成的命令的粘贴在命令行上正常工作 直接在原始虚拟机的本地驱动器上,作为本地 管理员,作为工作组的一部分。

我有两个想法: 我不是vbscript国王,所以也许我错过了引用或者做了一些 其他类型的语法错误。 凯斯普尔认识到我是在一个剧本中运行它 因故意无意义的错误而停止。

就个人而言,我认为这只是一个愚蠢的语法错误。

这是我的剧本:

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

提前致谢,

马特

4 个答案:

答案 0 :(得分:0)

不,不是这样。即使     command = command& “”“” 在所有字符串连接结束时。

答案 1 :(得分:0)

复制&从你的答案粘贴到我的代码中:

"C:\WINDOWS\microsoft.net\framework\v2.0.50727\caspol.exe -pp off -m -ag 1 -url "file://mjlaptop/sbw2/*" FullTrust -name sbw2

\\mjlaptop\sbw2\setpolicy.vbs(32, 1) WshShell.Exec: Das System kann die angegebene Datei nicht finden.

它缺少报价。现在,添加一个右引号,正如我猜你想的那样:

"C:\WINDOWS\microsoft.net\framework\v2.0.50727\caspol.exe" -pp off -m -ag 1 -url "file://mjlaptop/sbw2/*" FullTrust -name sbw2

Microsoft (R) .NET Framework CasPol 2.0.50727.42
Copyright (c) Microsoft Corporation. Alle Rechte vorbehalten.

Fehler: Unbekannte Mitgliedschaftsbedingung - -url..

这是我原帖中给出的错误。你是对的:命令有效。命令有效不是问题。我可以将血腥回声复制并粘贴到命令窗口中,它将成功执行。我可以在你喜欢的地方加上尽可能多的引号,但我认为它仍然会抱怨“未知的会员条件”。

我会尝试在评论中回复。

答案 2 :(得分:0)

将命令中url的url格式更改为\\ mjlaptop \ sbw2 * 由于某种原因,格式化为“file:// ...”将无法正常工作。有或没有引号。

这个uid(约塞连)也属于我(Matt Jacobsen)。我不得不使用上述内容,因为声称已经停止维护。

答案 3 :(得分:0)

“C:\ WINDOWS \ microsoft.net \ framework \ v \ caspol”-pp off -m -ag 1 -url“file:// mjlaptop / sbw2 / *”FullTrust -name sbw2

Microsoft(R).NET Framework CasPol 2.0.50727.42 版权所有(c)Microsoft Corporation。 Alle Rechte vorbehalten。

Fehler:Unbekannte Mitgliedschaftsbedingung - -url ..

使用v而不是整个文件名允许代码在每个版本文件夹中搜索caspol。