Я бы хотел вызвать 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
Заранее спасибо,
Мэтт