はじめに
日本の企業にとって切っても切り離せないツールがMicrosoft Officeだと思います。一般的にはPCのマスタ作成時にOfficeソフトをインストールした状態で展開することが多いかと思います。ただしOffice2016までに実施できていた方法はOffice2019以降およびOffice365版である、Apps for Enterprise/Apps for Business(旧ProPlus)では利用できなくなりました。今回はインストールのカスタマイズと展開例について記載していきます。
前提条件
PCはActive Directory のメンバーに参加していることを前提とします。また、利用者は貸与パソコンの管理者権限を持っていないことを前提として、バックグランドインストールを実行します。配布およびカスタマイズに利用するツールは下記の通りです。
- インストーラーカスタマイズ:Office 展開ツール (ODT)
- 配布方法:Active Directoryのグループポリシー
- 配布対象のPCがActive Directoryドメインに参加している
- インストール実行時はActive Directoryおよび配布ポイントにアクセスできるネットワークに接続されている
- Office2019はボリュームライセンス版である
前のバージョンからの移行にあたり互換性チェックを行うOffice準備ツールキットが提供されていましたが、残念ながら24年3月末で提供が終了しました。現在ではツールのダウンロードができない状況です。VBAの互換性チェックにかなり使えていたので残念です。
展開方法(例)
Officeの展開手法はいくつか考えられます。利用者の手を煩わせるパターンは展開のハードルが高かったりもしますので、Active Directoryや資産管理サーバーの配布機能を利用することで比較的簡単に展開することが可能です。
配布ポイントの準備
ここで準備いただくのは、Active Directoryドメインに参加しDomain ComputersメンバーになっているサーバまたはPCでファイル共有できるものをご用意いただきます。ご用意いただいたファイルサーバ(PC) の共有フォルダの権限は下記の通り設定してください。
設定場所 | 対象 | 権限 |
---|---|---|
NTFS | Domain Computers | フルコントロール |
共有 | Domain Computers | フルコントロール |
ご用意いただくフォルダ構成は下記の通りです。一応ログまで管理する想定になっています。配布ポイントを複数にする場合は、同じフォルダ構成で作成してください。
Office展開ツールのダウンロードとインストール
Office展開ツールのダウンロードはMicrosftのサイトからダウンロードしてください。自己解凍方式のexeファイルがダウンロードされるはずですので、そのままダブルクリックで展開しましょう。展開するだけで何かをインストールするものではありません。下記の形で配置しておきます。デフォルトで作成されるサンプルのconfiguration-xxxxxxxは利用しませんので削除していただいても問題ありません。
カスタマイズ用XMLファイルの作成
ここで作成するXMLファイルによって、インストールするアプリケーション、配布ポイントの場所、ログの出力場所、アップデート間隔およびアップデート場所の設定を行います。XMLファイルを直接編集しながら設定していただいても良いですが、最近はこんな便利なものがMicrosftから提供されています。下記はMicrosoft社のサイトから出力した設定ファイルのサンプルです。
<Configuration ID="49850e6a-bb31-4bc4-affd-e5d69e54cd27"> <Info Description="" /> <Add OfficeClientEdition="32" Channel="SemiAnnual" SourcePath="\\share\office" AllowCdnFallback="TRUE"> <Product ID="O365ProPlusRetail"> <Language ID="ja-jp" /> <ExcludeApp ID="Groove" /> <ExcludeApp ID="Lync" /> <ExcludeApp ID="OneDrive" /> <ExcludeApp ID="Publisher" /> <ExcludeApp ID="Bing" /> </Product> </Add> <Property Name="SharedComputerLicensing" Value="0" /> <Property Name="SCLCacheOverride" Value="0" /> <Property Name="AUTOACTIVATE" Value="0" /> <Property Name="FORCEAPPSHUTDOWN" Value="FALSE" /> <Property Name="DeviceBasedLicensing" Value="0" /> <Updates Enabled="TRUE" UpdatePath="\\share\office" /> <AppSettings> <Setup Name="Company" Value="Engineer-Base" /> <User Key="software\microsoft\office\16.0\excel\options" Name="defaultformat" Value="51" Type="REG_DWORD" App="excel16" Id="L_SaveExcelfilesas" /> <User Key="software\microsoft\office\16.0\powerpoint\options" Name="defaultformat" Value="27" Type="REG_DWORD" App="ppt16" Id="L_SavePowerPointfilesas" /> <User Key="software\microsoft\office\16.0\word\options" Name="defaultformat" Value="" Type="REG_SZ" App="word16" Id="L_SaveWordfilesas" /> </AppSettings> <Display Level="None" AcceptEULA="FALSE" /> </Configuration>
このツールをご利用いただくことでXMLファイルの直接編集を避けることができ、簡単に設定ファイルを作成していただけます。ツールの詳細はこちらをご確認ください。
ツールの標準では%temp%にログ出力されますのでそちらをご確認ください。
Officeインストーラーのダウンロード
ダウンロードは展開前に1度していただければ問題ありませんが、Officeのアップデートをインターネットに出さずにローカルで実行させたい場合に備えて、batファイルで作成します。これによりWindowsのタスクスケジューラに定期実行タスクとして登録してアップデートファイルの自動取得も実現します。batファイルはDownloadフォルダ内に配置することを前提としてます。設定用のXMLファイルはinstallフォルダ内に配置されていることを前提としています。
cd %~dp0 ..\setup.exe /download "..\install\install_OfficeApp.xml"
batファイルとして保存していただき、管理者権限で実行していただければ、インストールファイルが\\share\officeにダウンロードされるかと思います。
配布用プログラムのコーディング
続いて展開のプログラムを書いていきましょう。細かいチェックを入れるかどうかによって難易度は変わります。単純にインストールだけができれば良いパターンは下記になります。batファイルはInstallフォルダに配置していることを前提としています。
\\share\office\setup.exe /configure \\share\office\install\install_OfficeApp.xml
事前にCドライブの空き容量をチェックしたうえでインストールをさせてみます。まずは、bat側の処理を記載します。Windowsの標準ではPowershellスクリプトの実行が許可されていません。常にスクリプトが実行できる状態はMicrosoftとして推奨していないからこと許可されていない認識です。このbatスクリプトでは今回のOfficeインストール処理を実行するときだけPowershellスクリプトを許可し、実行が完了した際は元のスクリプト実行権限に戻す処理を書いています。
%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -ExecutionPolicy Bypass \\share\office\install\install.ps1
続いてはPowershell側のコードは下記になります。Cドライブが10GB以上開いていなければログを出力して処理を中止します。ログには、実行日時と実行コンピュータ名を出力させます。
#初期設定 $logFile = "\\share\office\log\DiskCheck_" + (Get-Date -Format "yyyyMMdd") + ".log" $hostName = hostname if((Get-PSDrive -Name C).Free -gt 10737418240) { \\share\office\setup.exe /configure \\share\office\install\install_OfficeApp.xml } else { "[ERR] " + (Get-Date) + " " + $hostName + " Disk Free Space is Not" | Out-File $logFile -append }
グループポリシーの作成と割り当て
Officeアプリケーションの展開は、パソコンの管理者権限が必要になりますので、スタートアップスクリプトにスクリプトをセットして実行させます。2通りのやり方を記載してますが、どちらのパターンでもbatファイルを設定していただければ問題ありません。Active Directoryでの設定方法は割愛しますが下記はよくご確認の上設定していただけますようお願いいたします。
・Default Domain Polucyでは設定しない
・ドメインルートに作成したポリシーを割り当てしない
・個別OUを作成の上、作成したOUへポリシー適用を推奨
・少ない台数で良くテストしてから全体へ展開を推奨
まとめ
ここまで設定したうえで、対象のPCを再起動していただくと利用者の操作なしでOfficeソフトが展開されるかと思います。Office展開ツールはログの仕様上コンピュータ1台に対して1ファイル出来上がってしまいます。再三になりますが、展開は良くテストしてから行ってください。グループポリシーを安易に設定すると予期せぬ動作を起こす場合があります。そのあたりの責任は負いかねますのでよろしくお願いいたします。