0

msi (セットアップ プロジェクト) のカスタム アクション内のスクリプト内から caspol を呼び出したいと思います。標準の msi を使用すると、ドライバーをインストールしてファイルタイプをアプリケーションに関連付けることができますが、ClickOnce ではできないためです。

コマンド ラインから caspol コマンドを実行すると成功しますが、vbscript 内からは常に「Fehler: Unbekannte Mitgliedschaftsbedingung - -url..」というエラーで失敗します。これは「エラー: 不明なメンバーシップ条件: -url」と解釈されます。さらに明確にするために: 生成されたコマンドのコピー & ペーストは、ローカル管理者として、ワークグループの一部として、バージン仮想マシンのローカル ドライブに直接コマンド ラインで正常に機能します。

私には 2 つの考えがあります。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

前もって感謝します、

マット

4

4 に答える 4

0

コマンドのurlのurlフォーマットを何らかの理由で\\mjlaptop\ sbw2 *に変更します。「file://...」としてフォーマットすると機能しません。引用符の有無にかかわらず。

このuid(yossarian)も私(Matt Jacobsen)のものです。メンテナンスのためにclaimidがダウンしていたので、上記を使用する必要がありました。

于 2008-11-17T15:35:20.637 に答える
0

いいえ、そうではありません。すべての文字列連結の最後にcommand=command&""""がある場合でも。

于 2008-11-17T10:24:19.873 に答える
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 Copyright (c) Microsoft Corporation. Alle Rechte vorbehalten.

Fehler: Unbekannte Mitgliedschaftsbedingung - -url..

ファイル名全体の代わりに v を使用すると、コードはすべてのバージョン フォルダーで caspol を検索できます。

于 2014-01-21T22:28:29.820 に答える
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..

それは私の元の投稿で与えられたエラーです。その通りです。コマンドは有効です。コマンドが有効であることは問題ではありません。血まみれのエコーをコピーしてコマンド ウィンドウに貼り付けると、正常に実行されます。そこに好きなだけ引用符を付けることができますが、それでも「不明なメンバーシップ条件」について文句を言うと思います.

コメントで返事をしようと思います。

于 2008-11-17T15:04:27.330 に答える