none
プログラムのアンインストール時の「認識できない発行元」について RRS feed

  • 質問

  • VisualStudio2005のセットアッププロジェクトを使用して、msiファイルを作成し、作成したmsiファイルにsigntoolを使用して、デジタル署名を行っています。

     

    このmsiファイルを使用して、Vistaにプログラムをインストールする場合は、ユーザーアカウント制御は期待するメッセージが表示されるのですが、アンインストールする場合、ユーザーアカウント制御は「認識できない発行元」と表示されます。

     

    デジタル署名をしているにも係わらず、この「認識できない発行元」が表示されるのは、変ですので、このメッセージが表示されない方法等ありましたら、よろしくお願いします。

     

     

    2007年8月27日 2:11

回答

  •  戻り橋 さんからの引用

    VisualStudio2005のセットアッププロジェクトを使用して、msiファイルを作成し、作成したmsiファイルにsigntoolを使用して、デジタル署名を行っています。

     

    このmsiファイルを使用して、Vistaにプログラムをインストールする場合は、ユーザーアカウント制御は期待するメッセージが表示されるのですが、アンインストールする場合、ユーザーアカウント制御は「認識できない発行元」と表示されます。

     

    デジタル署名をしているにも係わらず、この「認識できない発行元」が表示されるのは、変ですので、このメッセージが表示されない方法等ありましたら、よろしくお願いします。

    現状の Vista という点でいえば、仕様です。

     

    msi でインストールすると、もともとのmsi ではなく、コンパネから呼び出すのに必要な情報だけを保持したローカルキャッシュを作成します。

    単純なコピーではないため、結果として再署名する必要があり、現時点でこれを機械的に行う方法はないので、結論からすれば、対処不可という状態です。

     

    Vista の初期バージョン(今後のSPでどうなるかはわかりません)での対策としては、署名をつけた実行ファイルをキックする形でインストール情報を構成するという以外の方法はありません。

     

    VS2005 や Office2007 などはこのような形式をとっており、これらは署名のついた「exe」を昇格起動する格好をとっているため、結果として正しい署名がなされた状況で立ち上がるという格好になっています。

     

    ですが、多くの msi を直接実行するタイプのものでは、たとえ MS 製であろうとも署名なしで呼び出される状態となっています。

     

    実際、うちのソフトもこの問題については、マニュアルフォローにとどまっており、署名がなされた状態で表示されるようにするなどの対応は行っていません。

     

    UACの仕組みを考慮すると、仮に署名が付いた(とみなせる)状態で出てくるとしたら、それはもともとのmsiの作成元の署名ではなく、OSの署名(ファイルダイアログなどでの操作で出てくるものと同様)になるのではないかと。

     

    それなら、互換性を維持したまま署名がついたような状態で出せますので...

     

    2007年8月27日 9:13

すべての返信

  •  戻り橋 さんからの引用

    VisualStudio2005のセットアッププロジェクトを使用して、msiファイルを作成し、作成したmsiファイルにsigntoolを使用して、デジタル署名を行っています。

     

    このmsiファイルを使用して、Vistaにプログラムをインストールする場合は、ユーザーアカウント制御は期待するメッセージが表示されるのですが、アンインストールする場合、ユーザーアカウント制御は「認識できない発行元」と表示されます。

     

    デジタル署名をしているにも係わらず、この「認識できない発行元」が表示されるのは、変ですので、このメッセージが表示されない方法等ありましたら、よろしくお願いします。

    現状の Vista という点でいえば、仕様です。

     

    msi でインストールすると、もともとのmsi ではなく、コンパネから呼び出すのに必要な情報だけを保持したローカルキャッシュを作成します。

    単純なコピーではないため、結果として再署名する必要があり、現時点でこれを機械的に行う方法はないので、結論からすれば、対処不可という状態です。

     

    Vista の初期バージョン(今後のSPでどうなるかはわかりません)での対策としては、署名をつけた実行ファイルをキックする形でインストール情報を構成するという以外の方法はありません。

     

    VS2005 や Office2007 などはこのような形式をとっており、これらは署名のついた「exe」を昇格起動する格好をとっているため、結果として正しい署名がなされた状況で立ち上がるという格好になっています。

     

    ですが、多くの msi を直接実行するタイプのものでは、たとえ MS 製であろうとも署名なしで呼び出される状態となっています。

     

    実際、うちのソフトもこの問題については、マニュアルフォローにとどまっており、署名がなされた状態で表示されるようにするなどの対応は行っていません。

     

    UACの仕組みを考慮すると、仮に署名が付いた(とみなせる)状態で出てくるとしたら、それはもともとのmsiの作成元の署名ではなく、OSの署名(ファイルダイアログなどでの操作で出てくるものと同様)になるのではないかと。

     

    それなら、互換性を維持したまま署名がついたような状態で出せますので...

     

    2007年8月27日 9:13
  • 早速の回答ありがとうございます。

     

    現状のVistaでは、単純に作ったmsiは、すべて署名なしになってしまうのですね。

    私が作成しているソフトも、マニュアルに記載する対応になりそうです。

     

    本当に詳しい説明ありがとうございます。

    これからもよろしくお願いします。

     

    2007年8月27日 11:17