Можно ли подавить предупреждение системы безопасности доступа MS без подписи проекта?

Предыстория: у одного из моих коллег есть проект, написанный на VBA, чтобы использовать среду выполнения MS Access 2003 в качестве интерфейса для базы данных MSSQL. Это внутренний проект, используемый несколькими пользователями, работающими в терминальных сессиях на сервере Server 2008 R2.

Проблема: каждый раз, когда открывается проект Access, пользователи получают предупреждение системы безопасности:

Этот файл может быть небезопасным, если он содержит код, предназначенный для нанесения вреда вашему компьютеру.

У них есть возможность отменить или открыть. Пользователи хотели бы иметь возможность пропустить это приглашение.

Поскольку полная версия Access не установлена, пользователи не могут изменять свои индивидуальные уровни безопасности, а проект VBA не может быть подписан сертификатами selfcert.exe. (Я не уверен, что это сработает для нескольких пользователей?).

Идеальное исправление. Я надеюсь, что есть объект групповой политики или раздел реестра, который изменяет параметры безопасности для Access Runtime, но я открыт для других предложений. Я уверен, что проблему можно решить, купив лицензию на полную версию Access и сертификат в утвержденном ЦС, но у этого проекта нет на это бюджета.

Обновление: подтвердили, что разработчик этого проекта сделал это в Access 2003 и не хочет повторно тестировать среду выполнения Access 2007/2010. Итак, мы застряли в среде выполнения 2003 года.


person Farray    schedule 16.02.2011    source источник


Ответы (2)


Очень поздний ответ, но это может кому-то помочь. Есть способ сделать это. Я создал оболочку для своих приложений Access (изначально только для автоматического обновления моих приложений), и во время этого обнаружил, что вы можете полностью обойти безопасность Access 2003 (и 2007 и т. Д. С помощью надежных расположений Remou).

Установите SecurityLevel в реестре, запустите mdb через командную строку, сбросьте реестр. Корень: HKCU; Подраздел: ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ \ Microsoft \ Office \ 11.0 \ Access \ Security; ValueType: dword; ValueName: Уровень; ValueData: 1; Проверить: IsAccInstalled ('11 .0 '); Флаги: dontcreatekey Уровень 1 = Низкий, Нет действий; 2 = (по умолчанию) средний, подсказка; 3 = высокий, отрицательный?

Вы также можете запустить свой mdb с помощью COM, установив SecurityLevel через COM перед открытием mdb. Однако COM не будет работать во время выполнения (и вы не сможете идентифицировать процесс ОС позже с помощью уникальной командной строки, как мне нужно)

person RockResolve    schedule 28.03.2013

Отвечая на этот вопрос, просто чтобы сказать, что нет, похоже, нет способа избежать предупреждения безопасности для Access 2003 Runtime без фактической подписи проекта.

person Farray    schedule 13.11.2011
comment
Подписывать проект не нужно. если вы установите низкий уровень безопасности макросов, вы не получите предупреждение. Вам просто нужно установить это значение реестра: Root: HKLM; Subkey: Software \ Microsoft \ Office \ 11.0 \ Access \ Security; ValueType: dword; ValueName: Уровень; ValueData: 1 - person Albert D. Kallal; 19.09.2015