Можно ли подавить приглашение MS Access "Security Warning" без подписания проекта?

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

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

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

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

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

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

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

2 ответа

Решение

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

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

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

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

Другие вопросы по тегам