How to become an SMS2003 pusher.

Using SMS2003 and pushing the client to the desktop/laptop seems to be causing a little confusion for some of you. So I thought I’d move away from performance/ scalability discussions for a moment and attempt to outline this process.

The Push Process

Essentially here’s what happens on the site server once it gets “told” to push the client to a machine:

  1. The Client Configuration Manager (CCM) on the Site server receives notification (via a CCR -> client configuration request) to connect to a client/machine. More on CCRs shortly.
  2. CCM then connects to the client machines’ Admin$ share and installs ccmsetup.exe as a service (transferring a ~250 kb file in the process) that tells the machine to connect to the any MP in the site.
    1. You can find the list of MPs it will use in the \bin\i386 directory of the site server in a file called mobileclient.tcf. This file is used by CCM to define the parameters for ccmsetup.exe and is periodically updated by the site server.

    2. The client machine connects to the MP and download and executes the client.msi, from the \\<MP>\SMSClient\i386 directory.

Obviously that’s a fairly simplified version of the process. For a more detailed flowchart of the process download the SMS2003 Troubleshooting Flowcharts, and check out AdvCliPushInsWiz.pdf.

Client Push Installation requires that the Server service is started on the client computers, that file sharing is enabled, and that the ADMIN$ share exists. The site server also needs an administrative account to access the client; this is specified using the Accounts tab in the “Client Push Installation” Properties dialog box.

Push Initiation

The trick here is getting the nearest server, to connect to the client.

There are two main ways to initiate client push either:

  • Using discovery methods to find machines within the site’s boundaries AND having Client Push Installation enabled on the site.
  • Using the Client Push Installation Wizard against a machine or collection (Client Push Installation configuration is automatically used by the Client Push Installation Wizard even if Client Push Installation is not enabled).

Here’s the downside, by default we use the server that we’re connected to, via the Admin UI, to initiate the installation. This is clearly not desirable when the client is located in a down-level site that spans a WAN from the site. The design assumed that the client would always be installed from a local primary site location or logon scripts would be used for client installation. Obviously a number of you have seen the benefits of having discovery automatically install the client on a newly discovered machine.

For Primary Sites this issue is easily “worked around” (told you I was a consultant!), by running focused AD discovery on each primary site you wish to push clients from, to discovery the clients within the local boundaries of the site server (thus getting assigned to this local site).

To push clients from secondary sites, it’s a little more difficult, basically it requires the use of publicly available tools (not endorsed or recommended by me, please test to ensure they meet your own needs: for example: CCRMan 2004 ). These essentially create and drop CCRs into the of the desired site server based on pre-populated text files. The server will then initiate the client push using the process outlined above. Alternatively you could use the SMS 2003 SDK to create your own ccr generator.

When pushing from a site, regardless of whether it is a primary or secondary site, it’s important to ensure you have at least 1 MP. The site will use its’ local mobileclient.tcf file to identify the MPs the client can download client.msi from. If the site fails to have a MP deployed, this file will be incomplete and client push will fail.

In addition, remember Advanced Clients cannot be assigned to secondary sites, but will use the Proxy MP located at the secondary site. This is important when creating the ccr files.

Client push from the primary site will still be required where the secondary site does not have a Proxy MP.

Remember, if you are going to do this, ensure “client push installation” is enabled and configured correctly prior to creating CCRs on a site.


Using the same Client Push Installation dialog box you can configure it to install to any combination of the following:
* Servers (other than domain controllers)
* Workstations
* Domain controllers

As well as client machines on child sites (by clearing the Include only clients assigned to this site check box). This is only available within the Client Push Wizard and only if the client is not assigned to a site. The server you are running on will still perform the push.

If you do not do this, you can install SMS client software only on resources that are assigned to the site that the SMS Administrator console is connected to. This ensures that active clients are not replaced with an SMS client that is not assigned to any site.


Link to for full explaination of ccmsetup.exe command switches and other installation methods.