GPO を介していくつかのアプリケーションをクライアントに展開したいと考えています。インストール パッケージは .msi ではなく .exe であるため、通常の「コンピュータの構成\ポリシー\ソフトウェアの設定\ソフトウェアのインストール」ポリシーを使用して配布することはできません。
したがって、「コンピューターの構成\ポリシー\Windows の設定\スクリプト\スタートアップ」の下にあるスタートアップ スクリプトを使用することを考えました。ただし、ソフトウェアは起動ごとにインストールするのではなく、1 回だけインストールする必要があります。したがって、結果をテキスト ファイルに記録し、起動時に読み取り、ファイルが存在する場合はインストールしないようにする必要があると考えました。現時点では、非常に基本的なスクリプトは次のようになります。
IF EXIST "c:\vcredist_2010_x86.txt" GOTO END
IF EXIST "c:\vcredist_2010_x64.txt" GOTO END
:32-bit
if exist %SystemRoot%\SysWOW64 goto 64-bit
\\servername\sharename\C++Redist\2010\vcredist_2010_x86.exe /passive /norestart
echo "Microsoft Visual C++ 2010 Redistributable - x86" > "c:\vcredist_2010_x86.txt"
goto END
:64-bit
\\servername\sharename\C++Redist\2010\vcredist_2010_x64.exe /passive /norestart
echo "Microsoft Visual C++ 2010 Redistributable - x64" > "c:\vcredist_2010_x64.txt"
:END
問題なく動作しますが、少し改良したいと思います。テキスト ファイルを 1 つだけ (つまり、c:\software-dist.txt) に書き込み、インストールごとに関連する行 (ソフトウェア名) をこのファイルに追加するとよいでしょう。起動時に、スクリプトは行が存在するかどうかを確認する必要があります。存在する場合はインストールせず、存在しない場合はソフトウェアをインストールします。