BFT名古屋 TECH BLOG

日々の業務で得た知識を所属するエンジニアたちがアウトプットしていきます。

【Citrix】WorkspaceApp導入どこまで自動化できる?

こんにちは! BFT名古屋支店 亀井(仮名)です!

今回は、前回導入したCitrixWorkspaceAppのインストールをできる限り自動化してみました。

↓前回の記事はこちら↓
bftnagoya.hateblo.jp


はじめに

まず、クライアント端末でCitrixWorkspaceAppを利用するためには以下の作業が必要となります。
 1. MicrosoftEdgeWebView2Runtimeのインストール
 2. WorkspaceAppのインストール
 3. レジストリの変更
 4. OSの再起動

前回の構築記事内ではこれらを全て手動で行いましたが、今回はコマンドを使って実行することで自動化を目指します。


1. 事前準備

まずはインストールの準備をします。
今回利用するインストーラ、および端末情報は以下の通り。
インストーラ
 ・MicrosoftEdgeWebView2RuntimeInstallerX64.exe(バージョン1.3.157.61)
 ・CitrixWorkspaceApp.exe(バージョン21.9.0)
★端末情報
 ・windows10 Enterprise Evaluation 64bit

これらの資材をインストールしたい端末に配置します。
今回はCドライブ直下に「work」フォルダを作成し、その中に配置することとします。

2. MicrosoftEdgeWebView2Runtimeのインストール

コマンドプロンプトを管理者権限で起動し、先ほど資材を配置したパスまで移動します。

cd C:\work  


以下のようにインストーラを指定することでインストールが開始します。

.\MicrosoftEdgeWebView2RuntimeInstallerX64.exe /install  



インストール画面を表示させたくない場合には、「/silent」オプションを付ければ見えないところでインストールしてくれます。

.\MicrosoftEdgeWebView2RuntimeInstallerX64.exe /silent /install  

これにより、まずはMicrosoftEdgeWebView2Runtimeのインストール用バッチができました。

@echo off
echo MicrosoftEdgeWebView2Runtimeのインストールを開始します。
.\MicrosoftEdgeWebView2RuntimeInstallerX64.exe /silent /install

3. WorkspaceAppのインストール

WorkspaceAppも同様、インストーラを指定します。

.\CitrixWorkspaceApp.exe  


ただし、WorkspaceAppの場合は起動後に手動で「開始」ボタン等を押す必要があります。

そんな時はこちらも「/silent」オプションを付けることで、自動化が可能となります。

.\CitrixWorkspaceApp.exe /silent  

WorkspaceAppインストール用のバッチができました。

@echo off
echo WorkspaceAppのインストールを開始します。
.\CitrixWorkspaceApp.exe /silent

4. レジストリの変更

レジストリの変更は以下のコマンドを使うことで変更できます。
reg add "(変更したいキーのパス)" /v (キー名) /t (種類) /d (変更する値) /f

これを今回の場合に当てはめると、以下のようになります。

reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Citrix\AuthManager" /v "ConnectionSecurityMode" /t "REG_SZ" /d "Any" /f  

reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Citrix\Dazzle" /v "AllowAddStore" /t "REG_SZ" /d "A" /f  

reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Citrix\Dazzle" /v "AllowSavePwd" /t "REG_SZ" /d "A" /f  

コマンドプロンプト上から「この操作を正しく終了しました」という表示を消したい場合には、最後に「>nul」を書いてあげればOK。

reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Citrix\AuthManager" /v "ConnectionSecurityMode" /t "REG_SZ" /d "Any" /f  >nul  

レジストリ変更バッチは以下のようになりました。

@echo off
echo レジストリの変更を開始します。
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Citrix\AuthManager" /v "ConnectionSecurityMode" /t "REG_SZ" /d "Any" /f >nul
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Citrix\Dazzle" /v "AllowAddStore" /t "REG_SZ" /d "A" /f >nul
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Citrix\Dazzle" /v "AllowSavePwd" /t "REG_SZ" /d "A" /f >nul

5. OSの再起動

再起動は以下のコマンドで実行できます。

shutdown /r /t 0  

コマンドを実行すると問答無用で再起動されちゃうので、一旦確認を入れるようなバッチにしてみましょう。

@echo off  
set /p selected="再起動しますか?(はい:y いいえ:n)"  
if /i "%selected%"=="y" call :yes  
echo インストール完了には再起動が必要です。  
echo 後ほど手動で再起動してください。  
pause  
exit  
  
:yes  
shutdown /r /t 0  
exit  

実行すると再起動してよいか確認されるようになりました。


拒否すれば再起動されません。

まとめ

ここまでの各コンポーネントのインストールから再起動までをまとめたバッチの一例が以下の通りです。

@rem MicrosoftEdgeWebView2Runtimeのインストール  
@echo off  
echo MicrosoftEdgeWebView2Runtimeのインストールを開始します。  
.\MicrosoftEdgeWebView2RuntimeInstallerX64.exe /silent /install  
    
@rem WorkspaceAppのインストール  
@echo off  
echo WorkspaceAppのインストールを開始します。  
.\CitrixWorkspaceApp.exe /silent  
  
@rem レジストリの変更  
@echo off  
echo レジストリの変更を開始します。  
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Citrix\AuthManager" /v "ConnectionSecurityMode" /t "REG_SZ" /d "Any" /f >nul  
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Citrix\Dazzle" /v "AllowAddStore" /t "REG_SZ" /d "A" /f >nul  
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Citrix\Dazzle" /v "AllowSavePwd" /t "REG_SZ" /d "A" /f >nul  
  
@rem OSの再起動  
@echo off  
set /p selected="再起動しますか?(はい:y いいえ:n)"  
if /i "%selected%"=="y" call :yes  
echo インストール完了には再起動が必要です。  
echo 後ほど手動で再起動してください。  
pause  
exit  
  
:yes  
shutdown /r /t 0  
exit  

作成したバッチを、各インストーラが配置されているのと同じフォルダ内に配置し、管理者権限で起動します。
バッチを実行した画面がこちら。

再起動後、各コンポーネントのインストールとレジストリの変更が完了しています。


また、WorkspaceAppが正しくインストールされており、初期設定画面が表示されることも確認できました。


いかがだったでしょうか。
コマンドを利用することで、WorkspaceAppを利用するために必要な手順を全て自動化することができました。
これらの内容をベースに各環境や要件に合わせながら微調整することで、自動的にWorkspaceApp導入が実行できるバッチが作成できると思います。

それでは今回はここまで!