« MSI, PKG’s and Adobe Installer Needs | Main | Experience Design Perspective for Installers »

Cool Tips for Deploying Creative Suite 4 - SMS 2003/SCCM 2007

I would like to introduce a new segment on the blog, dedicated to the latest and greatest methods for deploying your Creative Suite software. Please look for future tips covering all aspects of deployment and updating.

My name is Chris Hohman and I have been a Product Manager with Adobe for the last 2.5yrs. Working on improvements to the enterprise deployment experience since I began, I am now fully indoctrinated into the land of OOBE. It was speaking with customers like you that inspired the creation of the Adobe Creative Suites 4 Deployment Toolkit (CSDT). Hey it is a start, and there will be more to come.

Let me also introduce the CSDT if you are not familiar with it. The CSDT is an efficient, easy-to-use, and reliable application that configures Adobe Creative Suite 4’s installers for silent deployment. It’s Adobe AIR-based (Adobe Integrated Runtime) interface allows you to create a remotely deployable install package without laboriously hand-editing configuration files. More information can be found at http://www.adobe.com/aboutadobe/openoptions/cs/deployment_toolkit.html

Setting up multiple distribution points using Microsoft SMS 2003 /SCCM 2007 and the Adobe CS4 Deployment Toolkit

On a recent customer visit, our team was able to address an issue relevant to many of you that set up multiple distribution points spanning across more than one server.

Here’s what you need to know:

Microsoft SMS/SCCM provides the ability to deploy from a common shared file. Here are the details straight from the MS website, “At installation, SMS assigns the distribution point role to the site server. You can create additional distribution points to reduce the load on the site server and provide access to all client computers in your site. If software distribution in your SMS system includes multiple sites, specify a distribution point in each site to ensure access by client computers and to distribute the load.”
“If you use the common SMS package shared folder on distribution points, when the first package is sent to a distribution point, the distribution point is given the share name \\computername\SMSPKGdriveletter$ on the NTFS drive that contains the most available space.”

The CSDT requires an absolute path to the source install location in the AdobeUberInstaller.XML and AdobeUberUninstaller.XML files and this causes problems with the share location.
Load distribution can be achieved by changing the UNC install location path of the UberInstaller to the local parent directory of each DP server.

This is accomplished as follows:
1. Use the CSDT to create a package normally.
2. Open the AdobeUberInstaller.xml in an editor and replace the UNC parameters with a “/.” to indicate that it needs to refer to the parent drive of the server. Please note that the usual value of the "InstallerLocation" parameter is taken from the same "Media Path" which you selected in the first screen of the CS Deployment Toolkit.
3. Repeat for the AdobeUberUninstaller.xml.
4. On the source server, place the full adobe installer including all payloads and extensions along with the two modified XML files and the two executables created by the CSDT.
5. Use this source location to set up the SMS/SCCM packages
6. Repeat this process across all servers used for load balancing

This process can help you set up SMS using the CSDT. It has worked for two customers and counting. If you know of an alternative way to accomplish this same task, please share.

Feedback is always appreciated.

Cheers until next time.

Chris
chohman@adobe.com

Comments

Why not use Microsoft best practise... So we don't have to change every uberinstaller.XML file on every server!! in our case it's 35 servers, and remember we have to do it every time there is an update to the files !!

Mr. Fix-IT wrote:" Why not use Microsoft best practise... So we don't have to change every uberinstaller.XML file on every server!! in our case it's 35 servers, and remember we have to do it every time there is an update to the files !!"

Mr. Fixit, Can you elaborate? This proposal eliminates the need to change the XML file on every server. You create it once, and the copy to every server on your network. And using a common folder for distributing is an MS best practice. Thanks, Chris

@ step 6 you write that we have to repeat on every server used for load balancing. I haven’t tried to deploy CS4 yet because we have had some minor troubles regarding the deployment of cs3. I got a little scared because that When making the install package you have to type in a source directory, and that's where I thought that when typing in the source smspkge$ folder on our main server it wanted to install from that server every time even when we have a number of sites with SCCM installed on them. Is it me that got this wrong in the first place?? when changing the unc path in this case "\\mainserver\sms\distribution\smspkge$" to if I read it right "./." then it will read the source files from the individual server like our sub distributions points.

Mr. Fix-IT

Yes, by using this procedure you can create a common share on your network and the Uberinstaller will always look in the parent directory of whatever server you are on. This has worked well for a few customer to date. Thanks, Chris

Will we be seeing any guides like this in the future for Microsoft's App-V system (formerly known as Softgrid)?

Nick posted "Will we be seeing any guides like this in the future for Microsoft's App-V system (formerly known as Softgrid)?"

Hi Nick, Adobe does not officially support virtualization as a deployment method. Performance has been a big issue with our imaging and video applications. Do you currently run terminal services with any Adobe products? Thanks, Chris Hohman

What are we supposed to do when InstallerLocation is relative? Does it support relative locations?

eg: users downloading it over our intranet web, then run from their desktop. Putting it on an SMB share in some scenarios is not an option. The path is going to be along the lines of:

c:\Docs&Settings\username\Desktop\CS4AppName\

"username" could be anything. They might also download it to a temp directory or My Documents or something. It should really accept non-hardcoded paths.

The reason this is a problem is that CS4 does not honor the old application.xml.overrides, otherwise I'd just whack in a single file which has the number in there. But as it is, I have to choose between either divulging the serial number to our users, or trying to hack up some way for AdobeUberInstaller.exe to find the install files. And at the moment, option #1 is winning, especially since UberInstaller.xml is just plain text and the serial is sitting right there.

Reply to XTG "What are we supposed to do when InstallerLocation is relative? Does it support relative locations?"

It sounds like you are asking for a pull scenario where you can post the installation package and then install across the network from that source to any given location? SMS should manage this as part of the deployment package. SMS can be set up as a user initiated installation.

As you noted, the xml files are not encrypted. So if you do have to post the installation files for all clients to access, I would be explicit with your end users about terms of use. In the future, we do plan on encrypting these files, and or completely removing them from the installation process.

Thanks, Chris Hohman

I would just like to add that I was able to Sequence CS4 into Microsoft's Application Virtualization system and had it deployed out and usable for testing (which it has generated now complaints on so far) in less than a day. And it was made available across our 2400 lab machines and class computers with a simple permissions change. I normally loath both Adobe and Microsoft Products, but CS4 impressed me with this, and App-V really does a good job (most of the time, there are edge cases).

To Nick Peelman,

Thanks for the comments. I would be very interested in hearing more about how our products run in App-v and what method you used to sequence CS4. Thanks, Chris Hohman (chohman@adobe.com)

I just used ".." worked for me. Took me AGES for work it out. I'm using SMS 2003 SP3, running the .exe directly from the Distribution Point. Uninstall also works. Adobe still have some work to do with it's CSDT. But it's a start.

Chris
Thanks for that, but I have one other issue that is stopping it installing from SCCM.

After installing a number of apps it then gets to the AdobeAIRInstaller.exe and prompts the user with a “Open File – Security Warning” asking the user to Run or Cancel. If I run the program without Allowing the users to interact with this program it will just hang and never complete the install.

I know I can remove the Air and Media player from the install but I was hoping to keep them in.

Have you come across this before?

Jo

I'm chiming in late on this one with several responses. I was finally getting too much pressure to not deploy the CS4 products and had to attack them.

App-V/SoftGrid - This is possible, but very tricky due to the FlexLM license stuff. During sequencing, you will need to have the flexlm service on the local machine and the xml in the virtual package. Then the service will work ok. Otherwise, the virtualized services will step on toes and all apps will crash. This was the case starting with CS3. The other problem you'll run into is the file sizes. Since CS4's product went on an eating binge, you won't find an install less than a gig even for something as simple as Dreamweaver!

In regards to teh relative path, i'm shocked and astounded that Adobe could take something so simple like Windows Installer and screw it up to what we see before us today.

"AdobeUberInstaller". Cute, funny at first, then you realize exactly how true it is.

1) Why is there a need for almost 50,000 files? The extracted installation for Web Premium CS4 is over 47,000 files!
2) Why does the path have to be absolute? Let's leave SCCM out of hte picture for the moment and look at any organized organization. I maintain an internal software share for our administrators to access and do installations of software. We have the drive mapped as I:. The user's don't have this. I also have a relatively simple naming convention for things so all well and good. If you hard code the path, change the server name, rename a folder, it's going to fail. And heaven forbid that the UberInstaller actually TELL you its failing. My dev server was one folder and I was testing it from another machine that wasn't mapped to that exact same path and I'd double click and get nothing. It took me an hour or monitoring and looking to see what was failing until somewhere I found the log file in the user's temp folder. It just says "installer does not exist at the specified path. Why not tell me what that path is in the log file? Why not pop a message? Oh wait, I know why it's not popping, with the introduction of CS3 installations, the control that administrators have went to almost nil. It's either non automated, or fully silent with very few options. I also support a number of field sites who have their own servers. They're different names and are subject to change. I can't have 20 applications suddenly no longer install because of a server name change. The installations that I provide to everyone are custom and automated and the first thought that comes to mind is to have my installer write the absolute path to the XML prior to kick off, but that only works if they have write access to the installation files which most folks don’t.
3) While I'm on my roll, why can't the installers uninstall the prior version? What makes Acrobat so special that only it is automatically upgraded? The amount of additional code I have to add to my installations to look for previous versions and then remove is crazy. I know that some folks might want both and that's fine, but give me the option to remove prior versions!
4) Go back to MSI that doesn’t get broken if I modify it. I make a change to the MSI tables that prevent the installation from being carried out unless a "secret decoder handshake" is presented on the command line in order to prevent unauthorized installs. Acrobat 9 breaks if I modify the MSI in this way.
5) The bottom line is that I write these custom installations to a) ensure consistency, b) prevent unauthorized installs by requiring my install to be run which enforces corporate standards and generates emails upon completion c) prevent the need to disseminate serial numbers to anyone but my database and d) provide a method to deploy the application quickly and easily. CS3 went backwards about 5 years in my eyes on the installer. So much for progress!

I knew there would be more… Continuing on with my list of issues.

5) Why does Adobe think that they're so important to not bother to put the icons into a group? I don't have a problem if there's just 1 icon from an application install, but Flash CS4 loads up EIGHT icons onto the start menu that aren't in a group. Oh, there is an Adobe group that's created, but it only contains the Adobe Media Player icon.

6) Has anyone else ever notices that an uninstall of a CS3 product takes longer than the install? I've seen uninstalls take 2 hours to complete.

7) Speaking of uninstalls, why does the install pollute the registry under the Uninstall section? HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall . I just installed Flash CS4 and Add/Remove programs shows Adobe Air, Flash CS4, Flash Player 10 Active X, Flash Player 10 Plugin and Media Player. That in and of itself isn't too bad, but have you ever looked under the hood into the registry? Try doing a query in SMS for software in add/remove programs and then you'll see that while only 5 items show up, there are 35 (THIRTY FIVE) additional items in the add/remove. And this is just for flash! Why does "Adobe WinSoft Linguistics Plugin" need to be in add/remove at all, let alone a "SystemComponent" ?!?!?!

Chris,
I have an other question for AdobeUberInstaller.exe.
Does exist a command for a reapair function with the AdobeUberInstaller.exe?

Hi Chris
After our telephone conference I know that you are the tech guru @ Adobe regarding deployment of CS4 through SCCM :) Problem: When installing more than one package and wanting to uninstall them again on your system using sccm we are having minor troubles uninstalling. It seems like the AdobeUberUninstaller starts and reads the uberuninstaller.xml from the distribution point when using “ ..\ “ file but it doesn't uninstall the programs. The strangest thing is that when we install the package "design premium" or the full package "master collection" what to do? You can’t use msiexec.exe /x command, as the uninstaller wants to use the setup.exe on distribution point. But when using setup.exe I know that you can use different switches but that doesn't seem to work either. Can you guys point me into the correct direction. As we are on a tight schedule regarding the deployment of CS 4... All packages of Adobe installs as they should but We can’t uninstall them again, unless doing it from add/remove programs with an admin account(No users are local admins)

Best regards
//Martin

Martin, Did you ever get this problem resolved? If no, please email me directly chohman@adobe.com.

Thanks,
Chris

I use domain based DFS(\\domain.internal\install\) shares for all of our installs to eliminate problems with the path changes if a server is replaced. This way there is a consistant path across all of our sites. Using SMS you create the package and specify that it does not have any source files, and in the program you create for the package you just provide the path for the AdobUberInstaller or whatever software you have to deploy. I still have the problem with the AIR installation, it just hangs in the background until you kill the process. After that the install finished without a problem. I'll be removing this from the package.

I do agree that having a setup launch a million msi files, all creating entries in the Uninstall section, is fairly annoying and adds to a very leangthy install and uninstall process.

In SMS I use a chained install approach as well. I create a batch file that cleans up the icons that get created all over the place and have a requirement that when this program is run it has to run the actuall install first. I advertise the cleanup batch file to all the clients, which will then install the product and then run the batch file to tidy up all the icons.

My only other complaint is why Acrobat cannot be activated with all of the other billion installs that happens with the suite?

I haven't had much luck deploying this with SCCM. It works if I manually run it but if I do SCCM, we only get a few components (bridge, etc) to show up. Looking at the installer log, its looping with "Checking bootstrapper progress". Any tips?

Ian, we are posting some updated documentation with more details about this process. I will post the URL for these docs as soon as they are available. Chris

There is another maddening issue with the CS4 installers - they use two different temp folder paths! In some places, they look for %TMP%, and in others, they want %TEMP%! If you have these pointing to different locations, you may get very strange results.

Ok, I figured out a reliable way to deploy CS4 using SCCM, bit different from the solution here. http://myitforum.com/cs2/blogs/jconnor/archive/2009/10/01/deploying-adobe-cs4-via-sccm.aspx

Comment there if you have any problems.

thank you so much !
i m just feeling lucky after reading this article,
thats great ! I wish u all the Best!!!
BULK SMS SERVICES

Really that was an helpful article for deploying the creative sms suite and sscm using adobe i was using systems management server for receive sms gateway from microsoft from last 2 years but didnt thinked about this thanks again for the information.

Does anyone know how to prevent CS4 from installing the Adobe Flash Player ActiveX and Plugin during installation? Reason I ask is because we have a later version already deployed to our workstations. When we load CS4 it drops down an older version which breaks our current version and the version installed with CS4. I've been trying to solve this problem since CS3. Anyone have any idea what configuration file I can edit to stop the Flash Player ActiveX and Plugin from being installed?

Thanks

Craig

Adobe Flash Pro CS4 requires that the Flash Player components are installed, so from the retail installer there is no way to prohibit installation. From the Enterprise Deployment Toolkit it should be possible to remove this payload and successfully deploy; but, there is no guarantee that the Flash Pro product will behave properly.

That said, the Flash Player installer should actually check to see what version is on the system and not install if a newer version is already on the system. What you describe seems like a bug in the Flash Player installer. If you install the Flash Player installer through other means (i.e. download from adobe.com and install) do you have the same problem?

It may be better for us to communicate via email since I don't get notification when comments on this thread are posted.

Thanks,
--Eric
ewilde@adobe.com

Post a comment

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)