はじめに
前回に続き、PSAppDeployToolkitの使い方を解説します。
今回は主要Functionを解説してみようと思います。
なお、英語ですが、PSAppDeployToolkit使い方の詳細はPSAppDeployToolkit.pdfの中に詳細に記述されています。
利用可能な変数について
上記のPDFの中のToolkit Reference - Variablesに、PSAppDepolyToolkitで利用可能な変数の説明があります。
後々利用しますので、少しだけ紹介しておきます。
$dirFiles
Filesフォルダのパスです。
$dirSupportFiles
SupportFilesフォルダのパスです。
利用可能なFunctionの一覧
AppDeployToolkitフォルダの中の、AppDeployToolkitHelp.ps1を実行すると英語のヘルプ画面が、一覧表示されます。
PSAppDeployToolkit.pdfの中のToolkit Reference - Functionsのセクションにも同じ記述がありますね。
主要Function解説
個人的に、これは面白そうだな、使えそうだなと思ったものを解説してみます。
Copy-File
ファイルコピーです。一例として以下のような記述がのっています。
SupportFilesの下に保管したファイルをTempディレクトリの下にコピーする例ですね
Copy-File -Path "$dirSupportFiles\*.*" -Destination "$envTemp\tempfiles"
-Recurseオプションもあるので、再帰的にサブフォルダ下のファイルもコピーできます。
Execute-MSI
MSI形式のインストーラのインストール、アンインストールなどの行為を実行するものです。
以下のような例がのっています。今はなきFlash PlayerのインストールをTrasnformファイル付きで実行するものです。
Execute-MSI -Action 'Install' -Path 'Adobe_FlashPlayer_11.2.202.233_x64_EN.msi' -
Transform 'Adobe_FlashPlayer_11.2.202.233_x64_EN_01.mst' -Parameters '/QN'
アンインストールはMSIのproduct codeを利用して以下のように行います。
Execute-MSI -Action 'Uninstall' -Path '{26923b43-4d38-484f-9b9e-de460746276c}'
Execute-Process
主にexeファイル形式のインストーラを実行するためのものです。各種パラメータを指定して起動時の動作を変えます。
こちらの例では、setup.exeを/sをつけて実行、Hidden指定なので非表示で起動されます。
Execute-Process -Path "$dirFiles\Bin\setup.exe" -Parameters '/S' -WindowStyle 'Hidden'
実行ファイルがFilesフォルダ直下に保管されている場合には、-Pathの次にはファイル名のみでOKのようです。
また、-WorkingDirectoryを利用すると、実行時の作業ディレクトリを指定することもできます。
面白いオプションとして、-SecureParametersをTrueに指定すると、パラメータの情報をログ上に記載しないようにするそうです。センシティブな情報が含まれる場合には便利ですね。
PSAppDeployTooklkitでは、ログに関してもかなり有用な情報が出力されるので、別途説明したいと思います。
Exit-Script
終了にあたりクリーンアップを行いつつ、終了コードを返すことができます。
Exit-Script -ExitCode 1618
Get-FileVersion
指定したファイルのバージョン情報を取得します。
インストールしているアプリのバージョンを知りたい時に簡単にできますね。
Get-FileVersion -File "$envProgramFilesX86\Adobe\Reader 11.0\Reader\AcroRd32.exe"
Get-InstalledApplication
これも便利そうですね、インストール済アプリケーションを取得します。
名前、発行元、バージョン、アンインストールストリングなどを取り出すことができます。
指定する名前のところは、ワイルドカード表現も利用できるようなので、こういう感じの名前のアプリケーションを取得して、順番にアンインストールといったようなこともできそうですね。
Get-InstalledApplication -Name 'Adobe Flash'
Get-PendingReboot
セキュリティパッチの適用などでWindows自体が再起動待ちになっているかどうかを判定します。
この状態でアプリインストールしようとしてもうまくいかない事ありますね。事前にチェックして、再起動待ちなら、先に再起動して。。というメッセージ表示などが可能になりますね。
結構Functionありますね。続きはその2で。。