One of the things to consider when an application
needs to be installed on several systems is how you will install it. If
you're installing it on a single system, the obvious choice is to
install it directly. Pop the CD in, run setup, and you're finished.
However, if you need to
install it on multiple systems, you'll probably want to automate the
installation. This allows you to deploy the installation over the
network. There are two primary issues to address when automating the
installation:
1. Identifying Deployment Concerns
When you decide that you want
to deploy applications to computers over the network, you'll need to
consider several other issues. By identifying your needs and concerns in
these areas, it'll be easier to decide on the deployment method.
The primary two choices you
have to deploy an application are Group Policy or System Center
Configuration Manager. SCCM provides additional capabilities with
scheduling and staggering deployments that aren't available to Group
Policy.
|
|
The deployment concerns are these:
1.1. Application Packages
Applications must be packaged as .msi
files in order to deploy them over the network using Group Policy or
System Center Configuration Manager. If the application isn't already
packaged as an .msi file, there are some methods you can use to package it.
You can also apply transforms (.mst) to .msi package files. A transform can be used to modify how the default installation is done for an .msi
package. As an example, the default installation of Word may install
the English dictionary. You may also want the Spanish dictionary
included. You could create a transform as an .mst file and deploy the package with this transform.
1.2. Network Considerations
The biggest consideration with
the network is available bandwidth. This is a comparison of the size of
the network pipe and how much bandwidth is used on your network.
For example, you could have a
100Mbs network infrastructure without much usage. This would give you
high available bandwidth. If you wanted to deploy applications over this
network, you would probably be able to do so without impacting its
performance.
On the other hand, you could
have a 1Gbs network with high usage. Even though the network starts
with a wider pipe, if it's already close to peak capacity, you may
impact the performance of the network by deploying various applications.
1.3. Scheduling Considerations
You can often overcome any
problems with a slow network by deploying the applications during
off-peak hours. In other words, the network could be at peak capacity
during working hours but have a lot of capacity during non-work hours.
You can also choose to
stagger the deployments. Instead of pushing out the application to 1,000
clients at the same time, you could deploy the application in phases.
SCCM allows you to schedule
and stagger the deployments. Group Policy doesn't have a scheduling
deployment choice. However, you can also stagger the deployment with
Group Policy by linking the Group Policy object to Organizational Units
one at a time. For example, you can link the GPO to the Sales OU on
Monday, link the GPO to the HR OU on Tuesday, and so on.
1.4. Client Requirements
When deploying applications
to clients, you can first audit the systems to ensure that they meet
prerequisites and minimum requirements.
Scripts using Windows
Management Instrumentation (WMI) can be used to identify the current
status of any system. You can check for available disk space, the amount
of memory, the version of the operating system, and much more. You can
use these results to identify which computers should receive the
applications.
Group Policy includes the
ability to use WMI filters with a GPO. As long as the requirements in
the WMI filter are met, the application will be deployed.
Similarly, SCCM allows systems to be inventoried to determine if they meet certain requirements. SCCM also uses WMI queries.
2. Choosing a Deployment Method
The two primary methods of
deploying software are Group Policy and SCCM. Group Policy is free and
can be used in any Windows domain hosting Windows 2000 servers or newer.
SCCM is a server product that must be purchased. However, SCCM offers
greater flexibility in scheduling the deployments.
Other less-used choices are as follows:
Scripts
If you can write a script to deploy the application, the script can be scheduled to run with Group Policy. The script could be configured to check to see if
the software is installed. If it is installed, the script will stop. If
it isn't installed, the script could install it.
Deploy
manually from a central
server It's also possible to store the software package on a central
server share. Users or administrators could then connect to the share
using the UNC path of \\ServerName\ShareName.
2.1. Group Policy
You can use Group
Policy to deploy applications. Group Policy can be used as long as your
network is hosting a domain.
When deploying applications, you'll deploy them by assigning or publishing.
Assigning
An application can be assigned to a user or to a computer. When
assigned to a computer, it is installed the next time the computer is
booted. When assigned to a user, it is available on the Start menu. The
first time the user selects it from the Start menu, it is installed.
Publishing
An application can be published only to a user, not to a computer. When
published, it is available to be installed by the user via the Control
Panel => Programs menu.
When an application is
assigned or published to users, it can also be installed when a user
attempts to open a file that requires the application (called document
invocation). In other words, a user may have Microsoft PowerPoint 2007
assigned, but it has never been installed. If the user receives a file
with the .pptx extension and double-clicks it to open it, Microsoft PowerPoint 2007 will then be installed.
2.2. System Center Configuration Manager
System Center Configuration Manager (SCCM)
is a server product that can be purchased. It can be used to install
software on computers and much more. For example, it can be also used to
deploy full images and deploy updates to clients.
NOTE
The primary tradeoff
between Group Policy and SCCM is cost. Group Policy is free. SCCM is a
server product that must be purchased. Also, because of the richness of
SCCM, it takes some time and training for administrators to get up to
speed on SCCM.
One of the significant benefits
of using SCCM is that you can schedule the deployments. As mentioned
before, this can be useful if the network infrastructure is close to
peak capacity. The amount of bandwidth needed to install some
applications can be extensive. If software is installed during peak
usage of the network, the installation could interfere with normal
operations.
With SCCM, you can schedule
the deployments to occur during off-peak times. It also allows you to
stagger the deployments so that they occur at different times.
Most of what you can do with
SCCM you can also do with available tools in Windows Server 2008 or
Windows Server 2008 R2. However, SCCM provides additional features for
each of these capabilities.
For example, Group Policy is a
built-in tool that can be used to deploy applications. SCCM gives
additional features such as scheduling and staggering deployments.
Windows Server Update
Services (WSUS) is a free Microsoft product that can be used to control
how updates are downloaded and deployed to clients. SCCM provides better
control of these updates and how the clients can be audited.
Windows Deployment Services (WDS)
is a free server role that can be added to capture and deploy full
operating system images to clients. SCCM can be used to improve these
deployments so that they are Zero Touch Installations (ZTI).
When evaluating the choice to add SCCM, it's important to realize that it does provide these extra benefits.