This is a condensed troubleshooter that addresses some common issues that we see with client-side software distribution. It doesn't include all of the possible situations you may run into but if you're new to the product and looking for someplace to start, this may be the ticket.
To troubleshoot a problem on the client side receiving and installing a distributed software package you will need:
- Client logs - located in %windir%\system32\ccm\logs
- Management Point logs - The management point logs are either in <Drive>:\SMS_CCM, or if the advanced client was on the site server before it became an MP, they will be in %WINDIR%\System32\CCM\Logs with the advanced Client logs. The log file names begin with MP_ .
- Tools: (available in the SMS 2003 Toolkit 2):
- CliSpy or PolicySpy
- How to force an advertisement to re-run: The easiest method to re-run an advertisement on Advanced Clients is to use the context menu of the Advertisement in the SMS Admin Console (right click the Advertisement, select All Tasks and ‘Rerun’ ). When you do this, an additional mandatory assignment is created with the current date and time as schedule. An advertisement with an additional assignment is run on all clients that receive it, whether they ran it before or not. Only if the advertisement is expired will it not run. If you want only the clients that never executed the program before to run it, create a new advertisement with a mandatory assignment in the future. The clients will check against their execution history and if they find they ran the program successfully before, they will ignore the advertisement.
- How to refresh policy on the client:
On the client machine, open Control Panel
Open the Systems Management applet
Click the Actions tab and select "Machine Policy Retrieval & Evaluation Cycle."
Click "Initiate Action."
Is the client getting the advertisement policy?
- Check the ccmexec.log for the advertisementID.
- If the advertisementID is not in the ccmexec.log, check the ccmexec.log for errors communicating with the Management Point.
- If the ccmexec.log shows errors communicating with the MP, follow basic connectivity tests such as pinging the MP by IP address, pinging the MP by hostname and telnetting to port 80 on the MP. If these all succeed, also verify that the Default Web Site in IIS on the MP is bound to port 80.
- If the ccmexec.log indicates the client can communicate with the MP, check the Management Point to see if the policy exists there using MPGetPolicy.exe.
- If the policy is not on the MP, ensure communications from the site server to the Management Point.
Is the client able to Locate a Distribution Point?
Evaluate the LocationServices.log to determine which management points we are using.
Evaluate the CCMExec.log and policy logs to make sure the client is connecting successfully to the management point.
Evaluate the CAS log to determine if the content location is being returned correctly.
Ensure roaming boundaries are configured correctly and do not overlap with boundaries from the home site of the client.
Ensure the package has actually been staged to at least one distribution point to which the client has access.
Ensure the distribution point servers are online.
Ensure the command line for the package is correct.
Is the client able to access content on the Distribution Point?
- Verify the computer account has access to the share by checking the NTFS permissions on the SMSPKG<driveletter>$ share as well as the individual package folders inside. These permissions may be set explicitly or through group membership.
- If configured, verify the network access account has appropriate permissions, either through explicitly adding the account or membership in appropriate groups that already are granted rights.
- Verify appropriate credentials by logging on as either the network access account or computer account and attempting to access the distribution point share. Users may logon in the context of the computer account by opening a command prompt under that context using the AT command and attempting connections from there.
Open a command prompt and type
AT <TIME> /INTERACTIVE cmd
Where <TIME> is a future time. At the scheduled time, a second command window will open in the context of the local system account. Use this window to connect to the DP share by getting a directory listing of the path to the package found in the execmgr.log.
I'm planning on posting more advanced troubleshooting tips in the future but hopefully this will get you started. If you have any suggestions for troubleshooting topics please let us know.
J.C. Hornbeck | Manageability Knowledge Engineer