「エクセルぴったり印刷」をWindows ServerのActive Directory機能を使用してActive Directoryドメインに参加しているPCに自動でインストールする方法を説明いたします。
「エクセルぴったり印刷」をインストールするには、管理者権限が必要になるためスタートアップスクリプトでのインストールが必須となります。
Active Directoryの設定方法
- 「エクセルぴったり印刷」のCD-ROM内のPinPrintフォルダをファイルサーバーなどの共有フォルダにコピーします。
コピー先のフォルダはログインを聞かれずにアクセスできるフォルダにしてください。 - サンプルを参考にしてインストール用batファイルを作成します。
作成したファイルはネットワーク上に保存してください。 - Active Directoryサーバーのグループポリシーオブジェクトを開きます。
グループポリシー画面左側のツリーで[コンピュータの構成]->[Windows の設定]->[スクリプト(スタートアップ/シャットダウン)]と選択し、画面右側のスタートアップをダブルクリックします。
スタートアップのプロパティ画面が表示されますので、追加ボタンをクリックしてください。スクリプトの追加画面が表示されます。参照ボタンを押し、2で作成したbatファイルを選択してください。
(必ずネットワーク上のパスを指定してください。)
スクリプトのパラメータは何も指定しないでください。 - OKボタンを押してスクリプトの追加画面とスタートアップのプロパティ画面を閉じてください。
Active Directoryの設定について
スタートアップスクリプトを同期して実行に設定してある場合は、「スクリプトの実行時間の上限を設定する」の設定を変更する必要があります。
「スクリプトの実行時間の上限を設定する」を、有効にして3600(秒)以上に指定してください。
この設定は、Microsoft .Net Framework のインストールが必要な場合にインストールに時間がかかってしまうため、デフォルトの設定(600秒)だと、インストール時間がスタートアップスクリプトの上限時間を超えてしまう可能性があるため変更が必要となります。
注意:スタートアップスクリプトはステージング環境で十分にテストしてから、運用環境に展開してください。
インストール用サンプル
以下は、「エクセルぴったり印刷 for 2007」をインストールするbatファイルの内容です。
インストールを行うにはPinPrintフォルダ内のPinPrint2007Setup.exeを実行します。
エクセルぴったり印刷はインストーラファイルに引数を指定して実行することによって、サイレントインストールを行うことができます。
インストーラファイルに指定できる引数は、下表の【インストール時 引数】を参照してください。
【インストール時 引数】
/SILENT | インストール進捗画面だけが表示されます。 |
/VERYSILENT | インストール進捗画面が表示されません。インストール中に画面が何も表示されなくなります。 |
/SUPPRESSMSGBOXES | メッセージボックスが表示されなくなります。 /SILENTや/VERYSILENTと組み合わせて使用した場合に効果があります。 |
/LOG | インストールの詳細を記したログファイルをユーザーのTEMPディレクトリに作成します。 ログファイルは現在の日付に基づいたユニークな名前で作成されます。 (既存のファイルに上書きしたり、追記することはありません) |
/LOG="ファイル名" | 固定したパス/ファイル名をログファイル名に指定します。ログファイル名以外は/LOGと同じ機能です。 指定した名前のファイルが既に存在している場合は上書きされます。 ファイルを作成できない場合、セットアップ・プログラムはエラーメッセージを表示して終了します。 |
/NORESTART | 再起動が必要な場合でも、再起動しないようにします。 |
/COMPANY="会社名" | エクセルぴったり印刷のコーポレートライセンス版、年間ライセンス版のインストール時に入力する会社名を指定します。 指定しない場合は、OSインストール時に設定した会社名が使用されますが、指定してインストールするようにして下さい。 |
サンプルではインストールの引数は、
/VERYSILENT /NORESTART /SUPPRESSMSGBOXES /LOG /COMPANY
を指定しています。
(インストール進捗画面を表示しない、再起動しない、メッセージボックスを表示しない、ログファイルの出力、会社名)
※引数は適宜修正してください。
ログファイル名に、インストールするバージョンとコンピューター名、インストール日時を設定してサーバー上にログを保存するようにしています。
インストーラの戻り値は、ERRORLEVELに格納されています。
ERRORLEVELの値をチェックして、インストールが正常に終了されたかを判定します。
(※インストール直後にERRORLEVELの値をチェックしてください。
インストール後に別の処理を行うと、ERRORLEVELの値が上書きされ正常にチェックを行えなくなります。)
ERRORLEVELが1の場合は、既に最新版がインストール済みなどのインストールしないで終了した状態なので、インストールログを削除しています。
インストーラからの戻り値とその理由は、下表の【インストーラの戻り値】を参照してください。
【インストーラの戻り値】
0 | セットアップ・プログラムは実行されて無事に完了しました。 |
1 | 初期化に失敗したときに発生します。 インストールされていないExcelのバージョンの「エクセルぴったり印刷」をインストールした場合や、既に最新版の「エクセルぴったり印刷」がインストールされている場合、または、batファイルからコーポレートライセンス版、年間ライセンス版をインストールした時に会社名が決定できない場合などに発生します。 |
2 | インストールを開始する前にインストールがキャンセルされた場合に発生します。 「インストールを開始します。続行しますか?」で「いいえ」を選択した場合などに発生します。 |
3 | 次のインストール過程へ移る準備をしている最中に致命的なエラーが発生しました。 メモリやWindowsのリソースが不足したなどといった極めて異常な時にしかこれは起こりません。 |
4 | 実際のインストール過程で、致命的なエラーが発生しました。 |
5 | インストール中にキャンセルした場合や、「中止、再試行、無視」のメッセージボックスで[中止] を選択した場合に発生します。 |
rem *----------------------------------------------------------------------- ログファイル名設定 -----*
rem ----- コンピューター名を取得します />-------------------------
set pcnm=%computername%
rem ----- 現在の日付を取得します -----------------------------
set logd=%date:~-10,4%%date:~-5,2%%date:~-2,2%
rem ----- 現在の時間を取得します -----------------------------
set time2=%time: =0%
set logt=%time2:~0,2%%time2:~3,2%%time2:~6,2%
rem ----- ログを保存するパスとログファイル名を設定します -----
set lognm=\\<サーバー名>\PinPrint2007-%pcnm%-%logd%%logt%.log
rem *----------------------------------------------------------------------- PinPrint2007 -----*
rem ----- インストールを実行します
\\<サーバー名>\PinPrint\PinPrint2007Setup.exe /VERYSILENT /NORESTART /SUPPRESSMSGBOXES /LOG=%lognm% /COMPANY="会社名"
rem ----- インストールが正常終了したかをチェックします。
if %ERRORLEVEL% == 0 goto END
goto FAILED2007
rem ----- インストールに失敗していた時
:FAILED2007
rem ----- 戻り値が1の場合はログファイルを削除
if %ERRORLEVEL% == 1 DEL %lognm%
goto END
:END
アンインストール用サンプル
以下は、「エクセルぴったり印刷 for 2007」をアンインストールするbatファイルの内容です。
インストール時と同様にアンインストール用に作成したbatファイルをスタートアップスクリプトに登録することで、自動でアンインストールが行われます。
アンインストールするには、インストールしたフォルダ内のuninst000.exeを実行します。
uninst000.exeに引数を指定して、サイレントアンインストールを行うことができます。
指定できる引数は、下表の【アンインストール時 引数】を参照してください。
【アンインストール時 引数】
/SILENT | ユーザーにアンインストール開始の確認をしないでアンインストールが開始されます。 アンインストールの進行状況を示すウィンドウが表示されます。 使用されていない共有ファイルは確認せずに削除されます。 重大なエラーが発生した場合は画面に表示されます。 アンインストールが終了したことを示すメッセージも表示されません。 |
/VERYSILENT | ユーザーにアンインストール開始の確認をしないでアンインストールが開始されます。 アンインストールの進行状況を示すウィンドウも表示されません。 使用されていない共有ファイルは確認せずに削除されます。 重大なエラーが発生した場合は画面に表示されます。 アンインストールが終了したことを示すメッセージも表示されません。 |
/SUPPRESSMSGBOXES | メッセージボックスが表示されなくなります /SILENTや/VERYSILENTと組み合わせて使用した場合に効果があります。 |
/LOG | アンインストールの詳細を記したログファイルをユーザーのTEMPディレクトリに作成します。 ログファイルは現在の日付に基づいたユニークな名前で作成されます。 (既存のファイルに上書きしたり、追記することはありません) |
/LOG="ファイル名" | 固定したパス/ファイル名をログファイル名に指定します。ログファイル名以外は/LOGと同じ機能です。 指定した名前のファイルが既に存在している場合は上書きされます。 ファイルを作成できない場合、セットアップ・プログラムはエラーメッセージを表示して終了します。 |
/NORESTART | 再起動が必要な場合でも、再起動を行いません。 |
サンプルではアンインストールの引数は、
/VERYSILENT /NORESTART /SUPPRESSMSGBOXES /LOG
を指定しています。
(アンインストール進捗画面を表示しない、再起動しない、メッセージボックスを表示しない、ログファイルの出力)
アンインストール時の引数は適宜修正してください。
インストール時と同様に、ログファイル名にはアンインストールするバージョンとコンピューター名、インストール日時を設定して サーバー上にログを保存するようにしています。
86ビット版OSと64ビット版OSではデフォルトでインストールされるパスが異なるので、どちらのOSにも対応できるようにしています。1つのOSで十分な時は不要な方を削除してください。
まず最初に、x86用の[Program Files]内のuninst000.exeを実行し、失敗した場合に、x64用の[Program Files(x86)]内のuninst000.exeを実行します。
uninst000.exeが見つからない場合はアンインストール処理が実行されないのでログファイルは出力されません。
rem *----------------------------------------------------------------------- ログファイル名設定 -----*
rem ----- コンピューター名を取得します -----------------------
set pcnm=%computername%
rem ----- 現在の日付を取得します -----------------------------
set logd=%date:~-10,4%%date:~-5,2%%date:~-2,2%
rem ----- 現在の時間を取得します -----------------------------
set time2=%time: =0%
set logt=%time2:~0,2%%time2:~3,2%%time2:~6,2%
rem ----- ログを保存するパスとログファイル名を設定します -----
set lognm=\\<サーバー名>\uninst-
PinPrint2007-%pcnm%-%logd%%logt%.log
rem ----- x86用のアンインストールを実行します。
%ProgramFiles%\SoftAdvance\PinPrint\PinPrint2007\unins000.exe /VERYSILENT /NORESTART /SUPPRESSMSGBOXES /LOG=%lognm%
rem ----- アンインストールが正常終了したかをチェックします。 -----
if %ERRORLEVEL% == 0 goto END
rem ----- x64用のアンインストールを実行します。
%ProgramFiles(x86)%\SoftAdvance\PinPrint\PinPrint2007\unins000.exe /VERYSILENT /NORESTART /SUPPRESSMSGBOXES /LOG=%lognm%
rem ----- アンインストールが正常終了したかをチェックします。 -----
if %ERRORLEVEL% == 0 goto END
goto FAILED2007
:FAILED2007
rem エラー処理
goto END
:END