Получение ошибки Scripting.FileSystemObect из локального VBscript в IE8 - PullRequest
0 голосов
/ 08 июля 2011

Я сейчас работаю над ноутбуками, которые идут в полицейских машинах. Они запускают приложение под названием IMobile, которое является расширением нашей системы САПР и позволяет им выполнять поиск транспортных средств, получать дополнительную информацию о вызове и т. Д.

Приложение IMobile представляет собой наложение IE и использует файлы htm, находящиеся на локальном ноутбуке. Мы добавили несколько простых VBScripts, которые выполняют различные задачи. Некоторые общие функции, которые требуются для этих задач, находятся в VBscript с именем PoliceFunctions.vbs, который включен в тот же каталог, что и все другие сценарии. Этот метод отлично работал в предыдущих версиях IE и Windows, однако мы получаем ошибки сценариев в Windows 7 с IE8, в частности, «компонент ActiveX не может создать объект:« Scripting.FileSystemObject »» и ссылается на скрипт функций, упомянутый выше .

Если я установлю в настройках IE разрешение на запуск элементов управления ActiveX, не помеченных как безопасные, сценарий будет работать нормально, однако я не хочу открывать большую дыру в безопасности. Я попытался добавить localhost и каталог в список надежных сайтов безрезультатно. Я попытался перерегистрировать SCRRUN.dll, как упоминалось в другом посте, а также wscript -regserver. И я изменил настройки IE, чтобы разрешить локальное активное содержимое без успеха.

У кого-нибудь есть какие-либо идеи о том, как я могу разрешить запускать этот сценарий, не открывая большую дыру в безопасности или не заставляя конечного пользователя раздражать, что его настройки IE приведут к апоколипу?

Ответы [ 3 ]

0 голосов
/ 08 июля 2011

http://blogs.msdn.com/b/ieinternals/archive/2011/03/23/understanding-local-machine-zone-lockdown-restricted-this-webpage-from-running-scripts-or-activex-controls.aspx длинный, но объясняет, как IE использует зоны безопасности для принятия решений о доверии.

Действие URL в этом случае представляет интерес:

1201 Initialize and script ActiveX controls not marked as safe(URLACTION_ACTIVEX_OVERRIDE_OBJECT_SAFETY)

Настройка по умолчаниюдля этого URLДействие в зоне локального компьютера - Подсказка , а во всех остальных зонах - Отключить .Только если вы измените этот параметр на Включить , вы пропустите приглашение.Вы не можете использовать панель управления Интернетом для настройки параметров безопасности для зоны локального компьютера, поскольку в этом пользовательском интерфейсе отображаются только остальные четыре зоны.Чтобы изменить параметр для зоны «Локальный компьютер», вы можете отредактировать раздел реестра:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0

Измените значение для записи 1201 с 1 на 0

0 голосов
/ 08 июля 2011

Поскольку приложение «использует файлы htm, которые находятся на локальном ноутбуке», вы можете попробовать переключиться на приложение .hta.Для быстрого теста просто переименуйте * .html в .hta;если это «работает», добавьте подходящий тег hta: application. Для начала

0 голосов
/ 08 июля 2011

Написать ActiveX, реализовать IObejctSafety и обернуть в него методы FSO.Обратите внимание, что это ложь о безопасности сценариев ActiveX, но она лучше, чем открытая для каждого небезопасного ActiveX.

...