Windowsドメイン環境でクライアントにアプリを追加する方法

いろいろ手法が書かれていたのでまとめ


トレンドマイクロ:リモートインストールを使用したインストール

・クライアントのWindowsファイアウォール設定で「ファイルとプリンタの共有」を有効にする
・レジストリを変更してUAC無効化(再起動必須)
・Remote Registryサービス有効化


キヤノンIT:「クライアント用プログラムのインストール方法について

【 方法3 】 グループポリシーオブジェクト(GPO)やログオンスクリプトを利用して各クライアント端末にリモートインストールする
【 方法4 】 各クライアント端末にプッシュインストールする
それぞれ、手法が解説されているが、結局はGUIを使用しているため流用はできない。
後者の「Windowsプッシュ」を使っている、というのだけ情報の起点として。


グループポリシーを使ってドメインに所属するコンピュータにGoogle Chromeをインストールする2つの方法

msiファイルを使ってGPOで配布する手法とインストールexeファイルをスタートアップで直接指定して実行するという大変大雑把な手法が解説されている。
後者は毎回実行されることになるので推奨しない。


Active Directoryのグループポリシーを利用したUnifierクライアントのインストール

こちらはスタートアップではなく、シャットダウンにインストール用のバッチファイルを入れてインストールする手法。
バッチファイル内でインストール済みか判定させているので毎回インストールが実行されることは避けられる。

rem --------------------------------------------------------
rem Unierサイレントインストール
rem 対象OS:Windows10(x86、x64)
rem --------------------------------------------------------

rem coejobsvc.exeが存在していたらインストール済みと判断し処理を抜ける
if exist "%PROOT%\0200\bin\coejobsvc.exe" exit

rem 下記パスを環境に合わせて変更する
set COPYFR="\\192.168.221.245\temp\Media_V540\Unifier"

set WORKDIR="%temp%\unifier"
set LOG=UnifierInst.log

rem インストール用フォルダ
if not exist %WORKDIR% mkdir %WORKDIR%
md %WORKDIR%
cd /d %WORKDIR%

echo --- 開始 %date% %time% > %LOG% 2>&1

rem 変数チェック
if "%PROCESSOR_ARCHITECTURE%" == "" (
	echo "■環境変数 %%PROCESSOR_ARCHITECTURE%% が空です。" >> %LOG% 2>&1
	exit
)

rem OSチェック %_osver% に Win10、Win8、Win7 をセット
call :ChkOsVer

if "%_osver%" == "" (
	echo "■ERR:OSバージョンの取得ができません。" >> %LOG% 2>&1
	exit

) else if "%_osver%" NEQ "Win10" (
	echo "■ERR:OSバージョン「%_osver%」はUnifierインストール対象外のOSです。" >> %LOG% 2>&1
	exit
)

if "%PROCESSOR_ARCHITECTURE%" == "x86" (
	if "%PROCESSOR_ARCHITEW6432%" == "AMD64" (

		echo "32bit process on 64bit OS - WOW64 : " %_osver% >> %LOG% 2>&1

		if "%_osver%" == "Win10" (
			echo "■Win10(x64) モジュールコピー " %COPYFR% %WORKDIR% >> %LOG% 2>&1
			xcopy %COPYFR% %WORKDIR% /E /H /Y >> %LOG% 2>&1
		)

	) else (
        echo "32bit process on 32bit OS : " %_osver% >> %LOG% 2>&1

		if "%_osver%" == "Win10" (
			echo "■Win10(x86) モジュールコピー " %COPYFR% %WORKDIR% >> %LOG% 2>&1
			xcopy %COPYFR% %WORKDIR% /E /H /Y >> %LOG% 2>&1
		)
	)

) else (

    echo "64bit process on 64bit OS : " %_osver% >> %LOG% 2>&1

	if "%_osver%" == "Win10" (
		echo "■Win10(x64) モジュールコピー " %COPYFR% %WORKDIR% >> %LOG% 2>&1
		xcopy %COPYFR% %WORKDIR% /E /H /Y >> %LOG% 2>&1
	)
)


rem Unifierインストール
start /w SilentInst.cmd


echo --- 終了 %date% %time% >> %LOG% 2>&1



rem -----------------------------------------
rem OSバージョンチェック
rem -----------------------------------------
:ChkOsVer

	For /f "tokens=2 delims=[]" %%G in ('ver') Do (set _version=%%G) 
	For /f "tokens=2,3,4 delims=. " %%G in ('echo %_version%') Do (set _major=%%G& set _minor=%%H& set _build=%%I) 

	rem echo _version=%_version%
	rem echo _major=%_major%
	rem echo _minor=%_minor%
	rem echo _build=%_build%

	if "%_major%"=="6" (
		rem Windows 7
		if "%_minor%"=="1" (set _osver=Win7)
		rem Windows 8
		if "%_minor%"=="2" (set _osver=Win8)
		rem Windows 8.1
		if "%_minor%"=="3" (set _osver=Win8)
	)

	if "%_major%"=="10" (
		rem Windows 10
		if "%_minor%"=="0" (set _osver=Win10)
	)


exit /b