从vbscript中执行caspol

从vbscript中执行caspol,vbscript,wsh,caspol,Vbscript,Wsh,Caspol,我想从中的自定义操作中的脚本中调用caspol msi安装项目。我更喜欢标准msi而不是ClickOnce, 因为有了标准的msi,我可以安装驱动程序&关联 文件类型与我们的应用程序,而与ClickOnce我不能 当我从命令行执行caspol命令时,它会成功, 但在vbscript中,它总是失败,并出现错误Fehler: Unbekannet Mitgliedschaftsbedingng--url..-也就是说 错误:未知的成员条件:-url。进一步澄清:A 复制和粘贴生成的命令在命令行上运行

我想从中的自定义操作中的脚本中调用caspol msi安装项目。我更喜欢标准msi而不是ClickOnce, 因为有了标准的msi,我可以安装驱动程序&关联 文件类型与我们的应用程序,而与ClickOnce我不能

当我从命令行执行caspol命令时,它会成功, 但在vbscript中,它总是失败,并出现错误Fehler: Unbekannet Mitgliedschaftsbedingng--url..-也就是说 错误:未知的成员条件:-url。进一步澄清:A 复制和粘贴生成的命令在命令行上运行良好 直接在virgin虚拟机的本地驱动器上,如本地 管理员,作为工作组的一部分

我有两个想法: 1.我不是vbscript之王,所以我可能错过了一些引语或是做了一些 其他类型的语法错误。 2.Caspol意识到我在脚本中运行它 以故意的无意义的错误停止

我个人认为这只是一个愚蠢的语法错误

这是我的剧本:

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
提前感谢,


马特

不,不是这样。即使 命令=命令&
在所有字符串连接的末尾。

将答案复制并粘贴到我的代码中:

"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..
这是我在原始帖子中给出的错误。你说得对:命令是有效的。命令是否有效不是问题所在。我可以将血腥回声复制并粘贴到命令窗口中,它将成功执行。我可以在那里贴上你喜欢的任意多的引号,我想它仍然会抱怨未知的会员条件


我将尝试在评论中回复。

将命令中url的url格式更改为\\mjlaptop\sbw2* 出于某种原因,格式化为file://... 不行。带引号或不带引号


这个尤萨林也是我的马特·雅各布森。由于claimid已停止维护,我不得不使用上面的命令。

C:\WINDOWS\microsoft.net\framework\v\caspol-pp off-m-ag 1-urlfile://mjlaptop/sbw2/*FullTrust-名称sbw2

Microsoft R.NET Framework CasPol 2.0.50727.42 微软公司版权所有。好的

Fehler:Unbekannet Mitgliedschaftsbedingng--url


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

上面提供的代码答案甚至无法编译。接受我的简单建议是个好主意,我错过了一个引语,然后,嘿,把它引回给我,但是如果你要这样做,你必须确保它不会抛出一个简单的语法错误。我在这里接受我自己的答案。澄清一下,我俩都是Cpt。尤萨林和马特·雅各布森。如果你认为有必要的话,尽管抱怨吧。也许你也应该为发现这一点而投上一票?托马拉克,你走对了方向。自从我自己找到解决方案后,我还没有尝试过你的语法……是的!caspol必须接受url的两种格式,但出于某种原因,唯一可以通过vbs工作的格式是网络共享表单。不过,我以前在一个客户站点上与caspol一起使用这种形式的url时遇到了一些问题。