it-swarm-ja.com

特定のWindows10イメージ上のInternetExplorer 11が「MicrosoftDataand Time Picker Control 6.0(SP6)」ActiveXコントロールをブロックしているのはなぜですか?

お客様は、仮想Windowsワークステーション(VDI)をWindows7からWindows10x64にアップグレードしています。彼らは、Internet Explorerで実行され、引き続き「Microsoft Data and Time Picker Control 6.0(SP6)」(32ビットActiveXコントロール)を使用する、Webクライアントを備えたワークフロー製品である古いアプリケーションを使用しています。

Mscomct2.ocxがC:\ Windows\SysWOW64ディレクトリにコピーされ、「属する.

問題は、このコントロールが新しいWindows 10x64イメージのInternetExplorer(x86)に表示されないことです。実際、コントロールにはプレースホルダーが表示され、ブロックされます(互換表示のIE)。

IE with blocked control

ツール/アドオンの管理では、リストにコントロール名が表示されます。項目をダブルクリックすると、「詳細情報」が表示され、「ブロック数」が17で、「使用数」が0になります。

"More information" about Microsoft Data and Time Picker Control 6.0 (SP6)

さて、コントロールはどういうわけかブロックされています。テストセットアップの詳細については、以下を参照してください。

では、コントロールをHTMLネイティブのものに置き換えてみませんか?コントロールを置き換えるには、ワークフローテンプレートを再公開し、すべてのワークフローインスタンスを変更する必要があります...

さて、お客様のWindows10イメージのVMコピー)で、これはピッカーコントロールを表示するためのWebページです。

    <html>
    <head>
    <title>DTPicker_Test</title>
    </head>
    <body bgcolor="#FFFFFF">
    function DocWrite(strHTML)
    {
    document.write(strHTML);
    }
    </script>

    <b>clsid:20DD1B9E-87C4-11D1-8BE3-0000F8754DA1</b>

    <script language="javascript">
    DocWrite("<object   classid=\"clsid:20DD1B9E-87C4-11D1-8BE3-0000F8754DA1\"  name=\"DTPicker\"   ID=\"DTPicker\" tabindex=\"1\"  accesskey=\"\"  mayscript=\"true\"  onload=\"DTPicker_InitProps()\" style=\"        position:absolute;      left:10;        top:100;        width:300;      height:100;     z-index:0;      color:#000000;      font-family:Arial;      font-style:normal;      font-weight:bold;       font-size:10pt; \"> <param name=\"MousePointer\" value=\"0\">   <param name=\"Enabled\" value=\"1\">    <param name=\"OLEDropMode\" value=\"0\">    <param name=\"CalendarBackColor\" value=\"-2147483643\">    <param name=\"CalendarForeColor\" value=\"-2147483630\">    <param name=\"CalendarTitleBackColor\" value=\"-2147483633\">   <param name=\"CalendarTitleForeColor\" value=\"-2147483630\">   <param name=\"CalendarTrailingForeColor\" value=\"-2147483631\">    <param name=\"CheckBox\" value=\"0\">   <param name=\"CustomFormat\" value=\"\">    <param name=\"Format\" value=\"1\"> <param name=\"UpDown\" value=\"0\"> <param name=\"MaxDate\" value=\"2958465\">  <param name=\"MinDate\" value=\"41640\"></object>");
    </script>

    <script language="javascript">
    function DTPicker_InitProps()
    {
    alert("init");
    }
    </script>

    </body>
    </html>

自分のWindows10 x64ラップトップで、OCXをC:\ Windows\SysWOW64にコピーして登録し、Internet Explorerでまったく同じページを開くと、コントロールが表示されます。

では、なぜ顧客のWindows10イメージのInternetExplorerがこのコントロールをブロックしているのですか?ページゾーンはインターネットです。ゾーンのカスタムセキュリティレベルで、すべての「ActiveXコントロールとプラグイン」関連アイテムを次のように変更しました。

  • アイテムに「有効」と「無効」オプションがある場合は、「有効」を設定します
  • アイテムに「有効」、「無効」、「プロンプト」がある場合は、「プロンプト」を設定します
  • 「ActiveXフィルタリングを許可する」が「無効にする」に設定されている
  • 「ActiveXコントロールでマルウェア対策ソフトウェアを実行する」が「無効にする」に設定されている

Internet Explorerにページをロードすると、「ActiveXコントロールやプラグインなどのソフトウェアの実行を許可しますか?」というメッセージが表示され、[はい]と答えられます。しかし、コントロールはまだ表示されません。コントロールはブロックされています。

誰かがWin10イメージまたは解決策をチェックするためのアイデアを持っていますか?

同僚のティム:私はこの問題について尊敬する同僚のビクターと協力しています。そして、さらに重要な発見の1つは、この特定のActiveXコントロール「mscomct2.ocx」がMS Office 365(x86)で完全に機能していることです(「開発者タブ」->「コントロール」セクション->「ActiveXコントロール」から開始できます- -> 'その他のコントロール'-> 'Microsoft Data and Time Picker Control 6.0(SP6)')IE x86。奇妙なことですか?

More Controls' selection screen in Office x86

Underlying VBA Reference

Control neatly running in Office x86

IEのActiveXコンポーネントに対してVersionAuditLogも有効にしましたが、コントロールをブロックしていないと表示されます。

VersionAuditLog

ここで立ち往生しているので、これをさらにトラブルシューティングする方法についての提案をありがとう。

編集同僚のTimの貢献を追加しました。

1

私自身の質問に答えます。非常に焦点を絞った共謀者と大量の排除と協力した後、私たちは犯人を見つけました:ActiveXライセンスレジストリキー

次のレジストリキーにより、InternetExplorerの日付と時刻のピッカーが有効になるようです。

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Licenses\4F86BADF-9F77-11d1-B1B7-0000F8753F5D] "" = "iplpwpnippopupiivjrioppisjsjlpiiokuj"

どうやって見つけたの? Visual Studio 2019 Community Editionをワークロード(「ASP.NetおよびWeb開発」)とともにインストールすると、コントロールが機能し始めることに以前気づきました。取り外すと動作しなくなります。インストールする個々のVSコンポーネントの選択と選択解除に何度も試行錯誤を繰り返した後、Nugetパッケージマネージャーが違いを生むように見えました。インストールされたDLLを削除しても、うまくいきませんでした。新しくインストールされたレジストリキーを削除しました。

参考:その他のMicrosoft Common Controls ActiveXライセンスレジストリキー: https://github.com/yangshengcheng/bhm/blob/master/policy/msgforward/vb6controls.reg

1