Software Distribution Common Practices

Some common software distribution tasks with SMS:

  • Distributing packages to a single user or computer

  • Stopping an advertisement in an emergency

  • Re-running an advertisement

  • Running an advertised program on a regular basis on clients

  • Using Windows Installer-based applications with SMS

  • Running an advertised program in the user context but with administrative credentials

  • Running an advertised program within a time window

  • Running an advertised program without any user intervention

  • Estimating how long a package transfer will take

  • Expanding the target of advertisements

Distributing packages to a single user or computer

Sometimes it is necessary to distribute a package to a single computer. For example, this might be useful if a user is having problems with an application and reinstalling the application will help. A solution to this problem is to create a new collection that contains the user or a specific computer, and then create an advertisement of a program for the relevant package for that collection. However, that is somewhat time consuming and can result in the proliferation of many collections.

A better approach is to create a permanent collection and advertisement for the purpose of reinstalling the application. Then when a user requests a package reinstallation, you have to add the user or a specific computer to the collection. You do not have to create a collection or advertisement. The users or computers already in the collection will not receive the package again, because they received it when they requested it. Only the user just added to the collection will receive the package.

Stopping an advertisement in an emergency

If you receive reports that an advertisement is causing problems on user computers, the most effective way to stop the advertisement is to use the techniques discussed in the "Disabling or Rerunning Advertisements" section earlier in this chapter.

If the advertisement is not an assigned advertisement, and must be initiated by the users, you can also send e-mail or similar broadcasts to the users to advise them to not run the advertised program.

Rerunning an advertisement

If you make changes to a package or program after its advertisements have been run on some clients, you can send an e-mail message to the relevant users to rerun the program. If the advertisement was an assigned advertisement without the option for the users to run the advertisement, you can add a new assignment to the advertisement. The option to rerun an advertisement applies if the advertisement was assigned to run at a scheduled time, instead of on an event (such as logoff). The new assignment will force the advertisement to run again on all the clients in the advertisement's collection.

If you must rerun an advertised program on clients where it failed, you can create a new advertisement to target the same clients or users again. The advertised program will not run again on those clients that successfully ran the program using the first advertisement.

Note

  • If you delete an advertisement for a package and program, or allow it to expire, and then create a new advertisement for the same package and program, the new advertisement will not run on clients that ran the previous advertisement.

Advertisements with assignments other than As soon as possible, Logon, or Logoff can be rerun on all clients by right-clicking the advertisement, selecting All Tasks, and then clicking Rerun Advertisement. This creates a new assignment with the current time for the advertisement.

Running an advertised program on a regular basis on clients

To run an advertised program on a regular basis on clients, create an assignment for the advertisement with a recurrence pattern as the schedule.

You might also want to update the distribution points on a regular basis with updated source files. You can do this from the Data Source tab of the Package Properties dialog box.

Using Windows Installer-based applications with SMS

Windows Installer-based applications maintain a list of sources for the package. If the applications require additional components or replacement copies of files, they can automatically find the original source of the package. The source list includes the location that the application was installed from, which for SMS will be the distribution point. If you remove a distribution point or provide additional distribution points, you might want to add distribution points to the list of sources for the applications.

You can use the following options to add additional resources to the source list:

  • Source list entries can be written directly into the Windows Installer package when the package is created.

  • Source list entries can be specified on the command line by using the SOURCELIST property. This list is appended to the end of each user's existing source list for the application.

  • SMS has a character limit of 255 characters for the command line. If the command line with the source list exceeds this value, use a transform to specify the SOURCELIST property.

  • Source list entries can be added at installation time by applying a Windows Installer transform. The transform includes the SOURCELIST property value set to the list of source paths.

You can modify source lists after the application is installed by applying a transform. You cannot modify the source list values after installation if the client is using Windows Installer 1.0.

Advanced Clients verify that .msi packages are Windows Installer packages before attempting to run them. If not, a message is displayed on the client indicating that the file is not a valid Windows Installer package.

Windows Installer packages can have .exe extensions. However, you must use the .msi version of such Windows Installer packages if you want to take advantage of the Windows Installer elevated rights.

For more information about using Windows Installer packages, see the Windows Installer documentation.

Running an advertised program in the user context but with administrator rights

In some cases, you might run an advertised program with administrative credentials but in the user's context, even if the user does not have administrative credentials. This is the case if the setup must perform tasks that require administrative credentials, but it must also perform tasks that can be done in the user's context, such as adding icons to the user's desktop.

Running advertised programs with administrative credentials but in the user's context can be done automatically if the advertised program is a Windows Installer script (.msi file). In addition, the advertised program must be set as requiring administrative credentials and to require user input.

If the advertised program is not a Windows Installer program, installation can be split into two phases that can then be coordinated by using the dependent program feature. The first phase installation program would run under the SMS administrative. The second phase installation program would run under the logged-on user security context to update shortcuts for the logged-on user profile and user-specific registry settings.

Running an advertised program without the users being notified

To run an advertised program without any user intervention, the following criteria must be met:

  • The program must be set to run hidden.

  • The program must be set to not require any user interaction.

  • The program must be set to suppress program notifications.

For more information, see the "Create a New Program" section earlier in this chapter. In addition, the program can be designed to not require any user input.

Estimating how long a package transfer will take

Transferring large packages from site to site, from the site server to a distribution point, or from a distribution point to client, can take a lot of time. This is especially true if the network link is slow, or if the link is already very busy, so that the effective available bandwidth is small. In such cases, it is important for you to estimate how long the package transfer will take. Such estimates will allow you to address two issues:

  • You can decide when to start troubleshooting transfers that have not completed.

  • You can determine whether a transfer can be accomplished overnight or requires a weekend.

Table 5.7 Approximate Bandwidth for Typical Slow Network Links

Available bandwidth

128 Kbps

28.8 Kbps

9.6 Kbps

Bits/Sec

131,072

29,941

9,830

Bytes/Sec

16,384

3,686

1,229

Bytes/Hour

58,982,400

13,271,040

4,423,680

Using the previous estimates, the following distribution latencies apply.

Table 5.8 Estimated Time to Transfer Packages Over Slow Network Links

Package size

128 Kbps

28.8 Kbps

9.6 Kbps

1 MB

0 D 0:01.04

0 D 0:04.44

0 D 0:14.13

5 MB

0 D 0:05.20

0 D 0:23.42

0 D 1:11.07

10 MB

0 D 0:10.40

0 D 0:47.24

0 D 2:22.13

20 MB

0 D 0:21.20

0 D 1:34.49

0 D 4:44.27

100 MB

0 D 1:46.40

0 D 7:54.04

0 D 23:42.13

400 MB

0 D 7:06.40

1 D 7:36.18

1 D 22:48.53

Using software distribution on computers with terminal services

For clients with Windows Terminal Services (Remote Administration mode or Application Server mode) enabled, software distribution icons and messages are limited to the console session. On clients that are remote controlled using Remote Assistance, Remote Desktop or SMS Remote Control, software distribution icons function regularly. Software Distribution functionality to site systems that have Windows Terminal Services enabled is limited.

On an SMS client, if a package requests a restart, the SMS Advertised Programs Client Agent sends a warning message to users logged on to the system, even if the package was run as a background process. This warning message is not displayed on an SMS client running on Windows 2000 Terminal Services. You should include the Windows 2000 Terminal Services MSG command in any package that reboots clients and is sent to a client running Terminal Services. A package will reboot the system if you have configured the package's program Properties dialog box to set After Running to either SMS Restarts System or Program Restarts System.

Expanding the target of advertisements

Advertisements target computers using collections. All the resources within the collection receive the advertisement. If you want more resources to be targeted by the advertisement, you can adjust the collection. You can add additional queries to the collection or additional individual resources.

For More Information

Did you find this information useful? Please send your suggestions and comments about the documentation to smsdocs@microsoft.com.