1

背景:私の同僚の1人が、MSSQLデータベースのフロントエンドとしてMSAccess2003ランタイムを使用するためにVBAで記述されたプロジェクトを持っています。これは、Server2008R2ボックスのターミナルセッションで操作する複数のユーザーが使用する内部プロジェクトです。

問題: Accessプロジェクトを開くたびに、ユーザーにセキュリティ警告が表示されます。

このファイルには、コンピュータに害を及ぼすことを目的としたコードが含まれている場合、安全ではない可能性があります。

キャンセルまたは開くオプションがあります。ユーザーは、このプロンプトをスキップできるようにしたいと考えています。

Accessのフルバージョンがインストールされていないため、ユーザーは個々のセキュリティレベルを変更できず、VBAプロジェクトはselfcert.exe証明書で署名できません。(とにかく複数のユーザーに対して機能するかどうかはわかりませんか?)

理想的な修正: Access Runtimeのセキュリティ設定を変更するGPOまたはレジストリキーがあることを望んでいますが、他の提案を受け入れることができます。Accessのフルバージョンのライセンスと承認されたCAからの証明書を購入することで問題を解決できると確信していますが、このプロジェクトには予算がありません。

更新:このプロジェクトをまとめた人がAccess 2003でそれを行い、Access2007/2010ランタイムの再テストを望まないことを確認しました。そのため、2003ランタイムで立ち往生しています。

4

2 に答える 2

2

非常に遅い答えですが、誰かを助けるかもしれません。これを行う方法があります。Access アプリ用のシェルを作成しました (元々はアプリケーションを自動更新するためだけでした)。この間に、Access 2003 セキュリティ (および Remou の信頼できる場所を使用した 2007 など) を完全に回避できることがわかりました。

レジストリで SecurityLevel を設定し、コマンドラインから mdb を実行して、レジストリをリセットします。ルート: HKCU; サブキー: SOFTWARE\Microsoft\Office\11.0\Access\Security; 値の種類: dword; 値の名前: レベル; 値データ: 1; チェック: IsAccInstalled('11.0'); フラグ: dontcreatekey レベル 1 = 低、アクションなし。2 = (デフォルト) 中、プロンプト。3 = 高、拒否?

mdb を開く前に、COM 経由で SecurityLevel を設定して、COM で mdb を実行することもできます。ただし、COM は実行時に機能しません (必要に応じて、独自のコマンドラインを使用して後で OS プロセスを特定することはできません)。

于 2013-03-28T02:53:40.443 に答える
-1

いいえと言うだけでこれに答えると、実際にプロジェクトに署名せずに Access 2003 Runtime のセキュリティ警告を回避する方法はないようです。

于 2011-11-13T01:20:56.237 に答える