キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 
cancel
2110
閲覧回数
0
いいね!
1
返信

AnyConnectの事前展開インストーラ(msiファイル)でのコマンド指定について

athirano1
Level 1
Level 1

こんにちは

ASA5540+OS 9.1系+AnyConnect 3.1系でエンドユーザーにAnyConnectによるVPNサービスを提供している者です。
使用している機能は以下の通りです。
・AnyConnectは本体(SSL-VPN機能)+SBLプラグインを使用しています。
・Clientless SSL-VPN機能は使用していません。

クライアント機器について
・クライアントはWindows7, 8, 10のパソコンです。
・ユーザーには、AnyConnectの事前展開インストーラ(msiファイル)+数種類のClientProfile(xmlファイル)+自作のVBscriptを自己解凍型の圧縮ファイルにしたものをユーザー向けインストーラとして配布しています。
起動の時にPCの情報に基づいて、適切なClientProfileをPCにコピーするようにしています。
自作のVBscriptから、msiファイルを実行する時は、AnyConnect管理者ガイドの「AnyConnectの事前展開」を参考にして以下のコマンドを実行しています。
msiexec /package anyconnect-win-ver-pre-deploy-k9.msi /norestart /passive /lvx* [logファイル名]

再インストール/バージョンアップする時は、Windowsのコントロールパネルの「プログラムと機能」から、現状のものをアンインストールしてもらった後に、同一バージョン/新バージョンのユーザー向けインストーラを実行するようにガイドしています。

ただ、ユーザーの数が多く(日本各地と海外で1000人以上)、またPCスキルがあまり高くないため、インストール/アンインストール作業を周知・徹底することが意外に大変です。

 

-------------------------------------------------------------------------------
現在は、上記のような環境で運用していますが、
ASA5545X+OS 9.6系+AnyConnect 4.4系への移行を現在、計画中です。

クライアント側のバージョンアップは、現状と同じように、ユーザー向けインストーラを配布することで対応予定です。
その際に、ユーザー向けインストーラ(AnyConnect4.4対応)を実行するだけで、インストール済みのAnyConnect3.1を安全に上書きインストールできるようにしたいと思います。

msiexecは修復オプションがありますが、これはAnyConnectのインストーラ(msi)でも利用可能と考えてよいでしょうか。
修復オプションのうち、aオプションを使うと、既にインストールされているバージョンに関わらず全てのファイルをインストールするとのことなので、これで3.1系→4.4系へのバージョンアップ、4.4系での上書きインストールの両方に対応できるのではと考えています。

3.1系での上書きインストールのときに、修復のaオプションを使用したことがあるのですが、問題なく動くようでした。
3.1系→4.4系のバージョンアップでは試したことはありません。

----------------------------------------------------------
■補足1
msiexecのhelpからの抜粋
修復オプション
  /f[p|e|c|m|s|o|d|a|u|v] <Product.msi | 製品コード>
  製品を修復します。
  p - ファイルが見つからない場合のみ
  o - ファイルが見つからない、または古いバージョンがインストールされている場合 (既定)
  e - ファイルが見つからない、同じバージョンまたは古いバージョンがインストールされている場合
  d - ファイルが見つからない、または違うバージョンがインストールされている場合
  c - ファイルが見つからない、またはチェックサムと計算された値が一致しない場合
  a - すべてのファイルをインストールする
  u - すべてのユーザー固有の必須レジストリ エントリ (既定)
  m - すべてコンピューター固有の必須レジストリ エントリ
  s - すべての既存のショートカット (既定)
  v - ソースから実行して、パッケージをローカルに再キャッシュする


-------------------------------------------------------------------------------
■補足2
自作のプログラムでレジストリーをサーチして、インストール済みのバージョンのものをアンインストールするという方法もありますが、Windows7, 8.1, 10とそれぞれの32bit版と64bit版とあるため、プログラムが複雑になる/テストの手間がかかるといった問題があるため、これは避けたいです。


■補足3
クライアント側のバージョンアップとしては、上記以外に以下の方法がありますが、いずれも実現が難しいです。
1.新しいASAにAnyConnectでアクセス → サーバー側のバージョンの方が新しいときに、クライアントソフトを強制的にバージョンアップできる機能を使用
2.新しいASAにブラウザでアクセス→新しいAnyConnectをダウンロード・インストール
3.資産管理ソフトからインストールパッケージ(msiファイル)を(ユーザーに意識させずに)ダウンロードさせる
4.PCをキッティングセンターなどに一旦回収して、担当者がバージョンアップ
5.情報システム担当者がリモート接続して作業を行う

1は、1000を越えるユーザーが、朝、一気にアクセスしてきたときのASAの負荷が心配(テストも困難)
2は、PCやブラウザの環境設定に依存する部分が多く、うまくいかないことが多い
3~5は、予算や運用上の手間の問題のため不可


よろしくお願いします。

1 件の受理された解決策

受理された解決策

athirano1
Level 1
Level 1

こんにちは、投稿したathirano1です。

実際に試してみましたところ、

msiexecの修復オプションは、同一バージョンのみで利用可能でした。(当たり前といえば、当たり前ですが)

バージョンが異なると、「バージョンが異なり使用できません」という内容のメッセージが出ました。

 

結局、自作プログラムを追加することで、コントロールパネル→「アプリケーションの追加と削除」で旧バージョンをアンインストールするオペレーションと同じ動作をするようにしました。

 

元の投稿で解決策を見る

1件の返信1

athirano1
Level 1
Level 1

こんにちは、投稿したathirano1です。

実際に試してみましたところ、

msiexecの修復オプションは、同一バージョンのみで利用可能でした。(当たり前といえば、当たり前ですが)

バージョンが異なると、「バージョンが異なり使用できません」という内容のメッセージが出ました。

 

結局、自作プログラムを追加することで、コントロールパネル→「アプリケーションの追加と削除」で旧バージョンをアンインストールするオペレーションと同じ動作をするようにしました。