ネットワーク共有ドライブにある .Net 4.0 exe のキャッシュされたコピーを使用する Windows クライアント

ネットワーク共有ドライブにある .Net 4.0 exe のキャッシュされたコピーを使用する Windows クライアント

.Net 4.0実行ファイル(マイプログ.exe) および関連する dll は、XCopy を使用してネットワーク共有に展開されます。MyProg.exe とその dll はすべて署名されていません。

複数のユーザーが同じバージョンのプログラムを使用できるように、またプログラムの更新を容易にするために、ネットワーク共有にインストールしています。これは、これまで何年もの間、多くのお客様にとってうまく機能してきました。

最近の顧客の場合、Windows Server 2012 仮想マシン上のフォルダーがネットワーク フォルダーとして共有されています。ユーザーは別のターミナル サーバー (Windows Server 2012) からプログラムを実行します。

更新したときマイプログ.exe(バージョン1.0からバージョン2.0へ)ターミナルサーバーは再起動されるまで新しい実行ファイルを実行しません。そのexeファイルが利用できなくなってもバージョン1.0を読み込み続けます。キャッシュされたバージョンを実行しているようです。MyProg.exe V1.0

  1. 私が試した手順:
    1. プログラムのすべてのインスタンスを閉じる
    2. 新しいものをコピーするマイプログ.exeフォルダにコピーしてファイルを上書きします(exeバージョンを1.0から2.0に更新しました)
    3. バージョン2.0を確認するマイプログ.exeファイルサーバーとターミナルサーバーの両方のプロパティ>>詳細ページから
    4. 確認するMyProg.exe V2.0ショートカットファイルを使用してファイルサーバーから実行すると実行されます(ターゲット:\\Server\MyProg\MyProg.exe
    5. 同じショートカットファイルを実行します(ターゲット:\\Server\MyProg\MyProg.exe)ターミナルサーバーからMyProg.exe V1.0始まる
    6. 名前を変更\\サーバー\MyProg\\サーバ\マイプログ1そのフォルダーが存在しないため、ターミナル サーバーがショートカットを実行できないことを確認します。
    7. 新しいショートカットファイルを作成します(ターゲット:\\Server\MyProg1\MyProg.exe)を確認し、MyProg.exe V2.0クライアント上で実行される
    8. フォルダの名前を変更する\\サーバー\MyProg1戻る\\サーバー\MyProg元のショートカットファイルを実行すると、読み込みが続行されますMyProg.exe V1.0ターミナル サーバーが再起動されるまで。
    9. ターミナルサーバーでオフラインファイルが無効になっていることを確認しました
    10. プログラムがターミナル サーバー上で実行されている場合、MyProg.exe 実行可能ファイルを上書きできないことを確認しました。

実行可能ファイルが存在しないにもかかわらず、古いバージョンの実行ファイルが実行される理由をトラブルシューティングするには、他に何を確認すればよいでしょうか?

答え1

Microsoft テクニカル サポート チームに問い合わせました。SMB のこれらの設定が原因である可能性があるとのことでした。これらの設定を変更し、次の更新時には注意を怠らないようにします。

http://technet.microsoft.com/en-us/library/ff686200(v=WS.10).aspx

上記リンクの設定は機能しませんでした。
問題解決に役立つ詳細情報:クライアントコンピュータはWindowsターミナルサーバーです

この点については、このナレッジベースの記事でさらに詳しく説明しています。
https://support.microsoft.com/kb/2536487

Windows Server 2008 または Windows Server 2008 R2 で別のユーザーがリモート デスクトップ セッションからログオフすると、アプリケーションがクラッシュしたり、応答しなくなったりすることがあります。

症状:

マップされたドライブからアプリケーションを実行している場合、別のユーザーがログオフすると、ユーザー (または複数のユーザー) に対してアプリケーションが応答しなくなったりクラッシュしたりすることがあります。例:

  1. 1 つのサーバーはファイル サーバーであり、もう 1 つのサーバーはリモート セッション ホスト サーバー (ターミナル サーバー) です。
  2. ファイル サーバー上のフォルダーは、RDS サーバーに接続するリモート ユーザーが使用できるようにマップされます。
  3. マップされた共有上のアプリケーションが複数のユーザーによって起動されます。
  4. 1 人のユーザーがログオフすると、アプリケーションの他のユーザーでアプリケーションがクラッシュしたり、応答しなくなったりする問題が発生します。

具体的には、バージョンに応じて、アプリケーションの最初のユーザーまたは最後のユーザーがログオフしたときにこの動作が発生します。Windows Server 2008 では、最初のユーザーがログオフしたときにこの問題が発生し、Windows Server 2008 R2 では、最後のユーザーがログオフしたときにこの問題が発生します。

原因:

これは、リダイレクタが問題のバイナリの FCB (ファイル コントロール ブロック) を処理する方法が原因で発生します。Windows Server 2008 では、FCB は最初にファイルを開いたユーザーが所有し、この FCB は後続のユーザーが使用します。最初のユーザーがログオフすると、FCB は孤立し、アプリケーションの後続のユーザーがクラッシュしたり、応答しなくなったりします。Windows Server 2008 R2 では、FCB はファイルを開いた最後のユーザーが所有し、最後のユーザーがログオフすると、以前のユーザーに問題が発生します。

回避策:

アプリケーションをネットワーク共有ではなくターミナルサーバーにローカルにインストールする

関連情報