2011-02-03 17 views
-1

Windows 7では、タイトルに記載されているCOMponentsは、デフォルトでは "killbit"がCOMPAT_EVIL_DONT_LOAD(MSDN)に設定されているようです。 {>が< CLSID} \は、デフォルトでその値に設定されているように見えるHKLM \ SW \ IE \ ActiveXの互換性\その互換性フラグで、次のとおりです。components mscomctl.ocx、mscomct2.ocx、mswinsck.ocx:プログラムでキルビットを設定する

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{B09DE715-87C1-11D1-8BE3-0000F8754DA1}] 
"Compatibility Flags"=dword:00000400 

私は設定値を0に設定してください(つまり、Nirsoft's ActiveX Compatibility ManagerはCOMコンポーネントを「アクティブ化」するときに機能します)、すべて正常に動作します。

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{B09DE715-87C1-11D1-8BE3-0000F8754DA1}] 
"Compatibility Flags"=dword:00000000 

しかし、これは1つのワークステーション用の単なるGUIソリューションです。私たちのソフトウェアをデプロイするには、私たちのソフトウェアに同梱の安全で安定した手順(スクリプトまたはツール)が必要です。キルビットを0に設定するか、レジストリエントリを削除するだけです。必要なことがなければ何もしません。好ましくは、解決策は、ファイル名またはファイルのリストの上を単に渡され、それ自体で必要なものはすべて実行される。

これは大きな疑問が始まるポイントである:COMオブジェクトについて

  • を、レジストリがCLSIDによって、ないOCXファイル名によって照会される(つまり、WindowsレジストリでのInprocServer32エントリです)も(VersionIndependent)によってHKLM \ \ソフトウェアクラス\ \ CLSID {<CLSID>} \)をPROGID。 ocxファイルまたは少なくともProgIDラディカルに関連するCLSIDを照会する方法、つまりバッチ/(PowerShell)スクリプト/ツール/何を知っていますか?
  • 私はCLSIDがWindows 2000では最大7であることを理解していますか?
  • SlayOCX.vbsは、SlayOCX.vbshereに記載されているようなグループポリシーと呼ばれる低レベルのアプローチのようですが、ネットワーク全体のソリューションとして機能する可能性があります。しかし、それはvbsで、一部の環境ではオフになっています。さらに、私はこのスクリプトでチェックするべきCLSIDのかなりのリストで終わるでしょう。例えばラップされる。バッチでは、記述された方法で顧客の管理者によって展開されるのではなく、レジストリなどのログオンスクリプトやrunonceキーによって展開される可能性があります。だから何を提案しますか?私は最初の情報的な質問を不必要にする解決策(ツール、新しいグループポリシー、私はまだわからない、より洗練されたスクリプト、システムとセキュリティ構成の問題に依存しない...)を好む。
+1

サードパーティ製コンポーネントの依存関係を取り除く。信頼できる配布のためのベストプラクティスです。そして、はい、それはツリービューコントロールを意味しませんが、ツリービューの機能はネイティブAccessコントロールで複製できます。それはちょうど不気味ではありません。そして、はい、私は、Accessには、これらの年の後にネイティブツリービューがないというのはばかげていると思います。 –

答えて

0

CLSID Registry Scanner (COM/ActiveX)

は自分の質問に私の答えです。それは今のところ働いています、それは今私にとって重要です。プログラムを書き直したり、少なくとも改装したり、独立して修復したり、古い帽子を取り除いたりする方が良いのではないならば、議論は間違いです。私が予算を決めるのではないので、やっかいだろう。

0

あなたはセキュリティ上の脆弱性にあなたのクライアントを意識的にさらしたいのですか?私は弁護士ではありませんが、...

this postによれば、上記のファイルは「サポートされているランタイムファイルであり、アプリケーションと共に配布する」であり、最新のバージョンに更新するだけです。

もう一つの柱は、(おそらく古い更新のために、まだそれはあなたが始める必要があります)に必要な手順について詳しく説明します。Clickety

+0

あなたはちょうど私のポストに非常に荒い一見を持っていた、aeeh? – mupan

+0

どのようにそうですか?私が理解しているように、ソフトウェアやインストールを変更せずにキルビットをリセットしようとしています。 (たぶん私は安全が賢者のためのものだと考えている人と大雑把な*日を過ごしたことがあります) – peterchen

+0

記事に記載されている図書館は悪意のあるとは言われませんが、悪用されるか、キルビットを設定するかどうか。 mscomctl.ocxはWindows 7に同梱されていますが、私の理解ではWindowsはそれが最新のものである責任があります。私はソフトウェアでmxcomct2.ocxとmswinsck.ocxの最新バージョンをテストします。あなたのヒントをありがとう。おそらくsys libが影響を受けるので、これは解決策ではない可能性があります。私はあなたに投票しないかもしれませんが、あなたの "答え"( - >コメント)が私によって投票されたと感じてください。 – mupan

0

これらのOCXのほとんどの用途では、ツリービューの置換コードまたはAPI呼び出しを除きます。どうやら、数年前からツリービューのために利用可能なAPIコードがいくつかありました。これらのOCXはすべて、何とかAPI呼び出しのラッパーです。

はmswinsckは少しトリッキーですと私はそのいずれかのURLを持っていない私のウェブサイト

Calendar Tips pageを参照してください。しかし、私はVBAで非常にうまく動作することが判明VB6のコードがあると確信しています。

ブログ投稿 - An older version of MSCOMM32.OCX has had the "kill bit" flag set.あなたはこの1つを言及しませんが。

+0

これは私の質問に対する答えです。面白いコメントですが、それを知っていただければ幸いです。私はすでにあなたの意見に同意するかどうかは関係ありませんが、私の仕事は現在の解決策を働かせることです。 – mupan

+1

私の意見では、すべての可能性のあるMicrosoft OCXの依存関係を削除する余分な時間を費やすことは、この問題が再び発生しないため、最良の解決策です。ソフトウェアのインストールは簡単です。 –

関連する問題