выполнить caspol из vbscript - PullRequest
0 голосов
/ 17 ноября 2008

Я бы хотел вызвать caspol из скрипта внутри пользовательского действия в MSI (проект установки). Я бы предпочел стандартную MSI для ClickOnce, потому что со стандартным MSI я могу установить драйверы и ассоциировать типы файлов с нашим приложением, тогда как с ClickOnce я не могу.

Когда я выполняю команду caspol из командной строки, она успешно выполняется, но изнутри vbscript он всегда завершается ошибкой "Fehler: Unbekannte Mitgliedschaftsbedingung - -url .. "- что переводится как Msgstr "Ошибка: неизвестное условие членства: -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

Заранее спасибо,

Мэтт

Ответы [ 4 ]

0 голосов
/ 22 января 2014

Файл C: \ WINDOWS \ microsoft.net \ framework \ v \ caspol "-pp off -m -ag 1 -url": // mjlaptop / sbw2 / * "FullTrust -name sbw2

Microsoft (R) .NET Framework CasPol 2.0.50727.42 Авторские права (c) Корпорация Microsoft. Alle Rechte vorbehalten.

Fehler: Unbekannte Mitgliedschaftsbedingung - -url ..

Использование v вместо полного имени файла позволяет коду искать caspol в каждой папке версии.

0 голосов
/ 17 ноября 2008

Скопируйте и вставьте ваш ответ в мой код:

"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..

Это ошибка, как указано в моем оригинальном сообщении. Вы правы: команда действительна. То, что команда действительна, не проблема. Я могу скопировать и вставить кровавое эхо в командное окно, и оно выполнится успешно. Я могу вставить туда столько цитат, сколько вы пожелаете, и я думаю, что он все равно будет жаловаться на «неизвестное условие членства».

Я постараюсь сделать свои ответы в комментариях.

0 голосов
/ 17 ноября 2008

Измените форматирование URL-адреса в команде на \\ mjlaptop \ sbw2 * по какой-то причине, отформатированный как "file: // ..." не будет работать. С или без кавычек.

Этот uid (yossarian) тоже принадлежит мне (Matt Jacobsen). Я должен был использовать вышеупомянутое, потому что требуемый был отключен для обслуживания.

0 голосов
/ 17 ноября 2008

Нет, это не так. Даже с команда = команда & "" "" в конце всей этой конкатенации строк.

...