SCCMクライアントのプッシュインストールが失敗するケースの1つにBITSが入っていないというものがあります。 この場合ccmsetupのログに以下のように記録されます。
Failed to query BITS 2.5 interface with error 0x80004002 ccmsetup 2013/11/12 10:30:17 4660 (0x1234)
This operating system does not contain the correct version of BITS. BITS 2.5 or later is required. ccmsetup 2013/11/12 10:30:17 4660 (0x1234)
A Fallback Status Point has not been specified. Message with STATEID=’321′ will not be sent. ccmsetup 2013/11/12 10:30:17 4660 (0x1234)
CcmSetup failed with error code 0x80004002 ccmsetup 2013/11/12 10:30:17 5764 (0x1684)
SCCMではファイル転送にBITSを使いますので、SCCMクライアントインストールの前提条件としてBITS2.5が入っている必要があります。
このことは以下のtechnet記事にも書いてあります。
- Prerequisites for Windows Client Deployment in Configuration Manager http://technet.microsoft.com/en-us/library/gg682042.aspx
Most operating systems include BITS, but if they do not (for example, Windows Server 2003 R2 SP2), you must install BITS before you install the System Center 2012 Configuration Manager client.
sccmでクライアント管理をしたいのに、そのための前提条件として多くのクライントに事前にアプリケーションを配布しなくちゃいけないというのはちょっと厳しいですね・・・。
そこで、これを楽に行うための仕組みをすごく簡単に作ってみました。作戦は共有フォルダにBITSのインストーラーをおいておき、そこを使ってサイレントインストール~再起動をバッチで実行させてしまおうというものです。リモートでキックさせるのにはpsexecを使います。
まず、Windows Server 2003用BITS2.5のインストーラーのダウンロード。
- マイクロソフト公式ダウンロード センターから Windows Server 2003 用バックグラウンド インテリジェント転送サービス (BITS) 2.5 (KB923845) をダウンロード http://www.microsoft.com/ja-jp/download/confirmation.aspx?id=4933
ダウンロードしてみるとexeでした。msiじゃないんですね・・・。
/?でコマンドラインを確認してみます。
ふむふむ。再起動の制御オプションがあるので、バッチファイルを作るまでもなく、共有フォルダ上のこのexeを直接叩かせてしまって良さそうです。30秒警告画面を出して、再起動させるようにしちゃいます。
本当はちゃんんとエラー処理とか必要だと思いますが、手抜き実装としては以下で十分ですね。
\\server\share\WindowsServer2003-KB923845-x86-JPN.exe /warnrestart /log:c:\temp\bits_install.log
psexecで叩くには以下のようになります。
psexec \\対象コンピューター –u domain\administrator -p password \\server\share\WindowsServer2003-KB923845-x86-JPN.exe /passive /warnrestart /log:c:\temp\bits_install.log
対象サーバーが少なければコピペしてしまってもいいと思いますし、多ければ@fileオプションを使って対象サーバーに実行させると良いと思います。
あとは、これを実行するなり、バッチファイルに書いてタスクスケジューラーで希望の時間にスケジュール実行させるなり行うと幸せになれるはずです。
コメント