When you need to install multiple applications or updates to the same group of computers, consider combining your deployments into one PDQ Deploy Installer.
Say you want to install Microsoft .NET Framework 3.5 SP1. Well, maybe its a good idea to install some critical .NET updates immediately following your deployment.
OK, let's get started:
I downloaded my .NET Updates from
In PDQ Deploy Pro 1.3 or later you have the option of adding multiple actions to your Installer. In the examples below, the first Action will be our main installation of .NET Framework 3.5 SP1.
If Action 1 completes successfully then PDQ Deploy Pro will automatically move to the next action in the sequence.
We have Actions 2 - 4 set to continue even if they fail.
The final action is of the type: Command. Here we simply run the Windows command Shutdown.exe (not necessarily available in all versions of Windows, just an FYI). Using this command (command must be accessible from the target system command shell) we can simply tell the target to shutdown to complete the deployment.
Below you will see the example of our new Installer.
Below you will see the final status of our deployment to a computer running Windows Server 2003.
Hey, keep an eye out for the PDQ Deploy Pro 1.4 beta. Coming in the next few days to a theatre near you.
Follow me on Twitter @ShaneCorellian
Thank you to everyone who is taking some time to test Beta 1 of PDQ Inventory. We have uncovered a handful of bugs and gotten some great suggestions, most of which will be implemented in Beta 2.
Today I want to go over a feature that many will find useful: Collection drill down. This feature allows for a natural way to nest collections so that the set of computers that are members of those collections get narrower as you open, or "drill down" into, them. An example works best to demonstrate how this works.
Let's start with a collection that contains all of the Windows 7 computers:
Now, you want to get a collection that has all of the 64-bit Windows 7 computers. You can do this simply by creating a collection within Windows 7 that filters 64-bit operating systems.
The key here is to make sure that "Drill down from parent collection" is checked. What this does is apply filters against the computers that are part of the parent collection. With the box unchecked then the filters are applied to all computers (this is the same if the computer is at the top of the collection hierarchy, regardless of how the checkbox is set).
Then drill down can continue by, for example, filtering on the service pack.
You then can end up with a whole set of collections allowing quick access to more and more specific filters.
This makes it easy to copy and paste collections from one parent to another and not have to make any changes to the filters, like I did here by making copies of the service pack collections. (Note: Copy and paste of collections is coming in Beta 2, it doesn't yet work in Beta 1).
If you've used AA Console you may notice that this is similar to Rollup Collection Folders, but that it works in the opposite direction. We decided, based on feedback from users and our own testing, that the drill down metaphor is more natural than rolling up. It also makes defining the filters simpler since they don't need to be duplicated between the child collections.
You can still get the functionality of rollup collections by having a parent collection refer to child collections in its filters. In fact, this is what PDQ Inventory does when it imports collection folders from AA Console. It's a bit more work, but there are always trade-offs with these types of decisions.
Again, thank you all for your help in testing Beta 1. We hope to have Beta 2 out in the next couple of days. Keep watching this space because we've got some big updates for PDQ Deploy Pro just over the horizon.
Do you really need a Java MST?
There was a bit of discussion after my earlier post about installing Java 1.6 update 25
. The question came up about TRANSFORMS with Java. Users have reported that using the provided sp1033.mst from Java (Oracle) was taking up to 5 mins longer to do an installation.
I took a look inside the sp1033.mst and there is very little that I would change (and by very little I mean nothing at all). Most of the changes come in the profile section, which can be set during installation with an MSI parameter (/SYSTRAY=0 /JAVAUPDATE=0, etc.). That being said, I'm not really sure what the value is to even calling the MST. It seems to me that only using the actual msi and data1.cab are just fine. The defaults from Java are installed, and you can overwrite quite abit with MSI parameters if you feel the need. I haven't seen any negative effects from only copying the data1.cab and MSI and using those for your installation.
If you find that you need to make some custom registry changes you can do so in a batch file or if you are using PDQ Deploy Pro, you can have multiple actions in your installers. These actions can be commands or other installers. Choose command. Here's an example of making a reg add/change with an action in PDQ Deploy Pro.
Action 1 is the installation (calling the MSI):
Action 2 is a reg change:
Unless you know what each column in the MST is, I would recommend against making changes. Unfortunately I've not been able to find any published info from Oracle on the subject of the JRE provided MST's.
One thing that I have discovered is that change is constant at Oracle. MSI profiles (parameters) are deprecated from earlier versions of Java (for instance IEXPLORER=1 MOZILLA=1). Registry paths are changed, so if you blanket use a reg value from an earlier installation script for Java you may create that key, but it won't be doing what you think it is.
Lesson? BE WARY of using parameters from earlier versions of Java updates. They have changed from update 22 to 23 and 24 to 25.
Lastly, I've learned that very few forums are buzzing about Java update 25 right now. I get the distinct impression that there are many sys admins who are simply waiting on pushing it out.
On the discussion that using the provided sp1033.mst is taking longer; that may well be the case though I wasn't able to replicate that behavior in our lab. My Java installations using PDQ Deploy consistently came in around 1 minute (sometimes faster). Still, if you're not changing any values in the MST I don't see a need to even include it during the push. Just be certain that your msi and data1.cab file are ready for pushing and you should be OK.
If you have experience with the Java 1.6 update 25 MST and you feel confident that it's valuable to make changes (that can't be made during installation via paramters) then PLEASE shoot us the MST and let us know what changes you made. We'd love to see what can be done to make this a clean install for folks.
UPDATE Jan 2013: This post is specific to Java 6. For Java 7 update info we have an updated blog post here.
Oracle has released Java 6 Update 25. To silently install to all your computers you'll need to do some extra steps:
- Download the "offline" version from the Java website
- Manually "start" the installation
- Extract the .MSI and necessary data files from the downloaded EXE
- Copy the extracted files from %LOCALAPPDATA%
- Cancel the manual installation
- Deploy Java to all your company computers
First things first, download the off-line version of Java. Be certain to download the offline version (see image below).
The next step is to "extract" the MSI and data files, which allows you to deploy silently vs. using the manual GUI installation. You extract the files by starting a manual installation.
Double click the EXE that you downloaded and the Java installation GUI appears. You will NOT progress past this opening screen, but for now KEEP this window open. The extraction has taken place and we need to grab the files.
In Windows navigate to the following path.
This should open a window in the AppData Local directory. Now go up a level to AppData and navigate into the LocalLow sub-directory. You should see a "Sun" directory. Copy that to another location (network share, server, etc.). Inside of this directory are the data files that you will need.
After you have copied the files to another source you can cancel the manual installation.
NOTE: The 32-bit version of Java 1.6 update 25 doesn't delete the Data1.cab file when you cancel the manual installation, but IT DOES delete the Data1.cab file when you run this step on the 64-bit version of the Java update. That's why we suggest you copy the files to another location before canceling the manual installation.
Now it's time to deploy Java 1.6 update 25 to your computers. I'm using our free software deployment tool PDQ Deploy. Navigate to the MSI that you extracted and right-click on it.
Select "Deploy with PDQ".
PDQ Deploy opens up a New Installer window. Give it a title and be certain to select the "Include Entire Directory" checkbox.
PDQ Deploy automatically populates everything else for you. You can now click OK and the Java installer will be created.
With your installer created you can now deploy to your computers. From PDQ Deploy, select your new Java 1.6 installer and click the Deploy Now button.
A window appears for you to enter which target computers will receive the installation. You have a multiple methods to enter targets:
- Manual entry (typing the computer name)
- Importing a text file
- Active Directory
- PDQ Inventory (if installed)
- AA Console (if installed)
Enter your target systems and click "Deploy Now" and your installation will begin. Once you've started it you can double click on the deployment to get a detailed view of the installation.
That's it. Let your installation complete and you'll be in business.
Here are a couple of additional items that may be of use to you. I'll blog about these in the coming days.
With PDQ Inventory (recently released to beta) you can determine which computers do not already have Java 1.6 update 25 installed. This is a fast way to deploy the update to only those systems that need it.
With PDQ Deploy Pro you can run multiple actions or commands in one installer. This is helpful for Java because you should install both the 32-bit and 64-bit versions on your 64-bit Vista and Windows 7 systems that have IE 8. With PDQ Deploy Pro you can do this in one installer.
Please let us know if you have any questions about installing Java or any other application using PDQ Deploy.
We are pleased to announce the availability of the beta for our first release of PDQ Inventory. You can now download the beta from here.
What is PDQ Inventory and why should you care? Well, PDQ Inventory is our companion to PDQ Deploy giving the ability to store detailed information about computers and to organize them in collections. This will be faimiliar if you've used AA Console, as it works on the same principle.
Once installed you can add computers to the database and they will be scanned for their inventory including (but not limited to):
- Computer - Model, Manufacturer, Serial Number
- Operating System - Version, Service Pack
- Installed Software
- Hardware - Printers, Disk Drives, Displays
- Environment Variables
This information can be viewed individually for computers or used to create computer collections. Collections allow for organizing computers based on their inventory using a set of filters. For example, a collection can be defined to only contain computers with a particular version of Adobe Flash or from a certain manufacturer. The sky's the limit.
PDQ Inventory uses the same architecture as PDQ Deploy which means that it's lean and mean. No agent is required on the computers to be scanned and there is no server needed, just install it and go. There is an additional requirement of .NET on the scanned computers, but we've settled on version 3.5 SP 1 which has been out for several years and should already be on most computers out there. If not, PDQ Inventory can optionally install it automatically before scanning.
Free and Pro Versions
Just like PDQ Deploy and PDQ Deploy Pro, Inventory will come in both a free and professional version. The beta released today is for the free version, we plan to have a beta for the pro version out in a few weeks. Keep in mind that this is version 1.0 and we have a number of features to add as time goes on. As always, we welcome your suggestions, so please feel free to post them in our forums.
PDQ Inventory Pro will come with a number of additional features on top of those in PDQ Inventory. Keep an eye out for the beta to get a taste of these new features.
Pre-defined and custom reports with output to spreadsheets and PDF as well as on screen viewing and printing.
The ability to scan for files, registry entries, WMI data, and store custom data.
Scans of computers can be set to happen automatically or on a set schedule. Scans can be broken down so that larger and slower scans (such as for file information) can happen less frequently.
Directly run various administration tools on computers such as Remote Desktop, VNC, Event Viewer, etc. You can even add your own.
You may notice that this functionality duplicates most of what's in AA Console. This is because PDQ Inventory Pro will replace AA Console (it can be thought of as AA Console Inventory version 2). All licensees of AA Console within their maintenance period will receive free upgrades to PDQ Inventory Pro when it is released. Combined, PDQ Inventory Pro and PDQ Deploy Pro will continue where AA Console left off and take it into the future.
PDQ Inventory will be 100% free to use and share and PDQ Inventory Pro will be priced at $249 per administrator, the same as PDQ Deploy Pro and AA Console. An administrator license allows a single user to use PDQ Inventory Pro on one or more computer no matter the size of the network or number of computers scanned.
PDQ Inventory integrates with PDQ Deploy allowing for access to either others' functionality within their respective interfaces. In order for this interaction to work with the beta you will need to download the latest releases of PDQ Deploy or PDQ Deploy Pro which we're releasing at the same time. These updates include some other small fixes and enhancements and are highly recommended.
As the beta progresses we'll keep you updated with new features and provide a number of tips and how-tos. And, as always, please let us know what you think (even if just to let us know how much we screwed up).
A Firefox silent install comes in two flavors
/INI=<your ini file>
The always helpful INI file allows for some minor changes to the default installation setting (which is what you get if you opt for the -ms switch).
Copy and paste the following into a text file and name it Firefox-4-Deploy.INI.
; StartMenuDirectoryName=Firefox - No longer supported in Firefox 4
Place the INI file in the same directory as your Firefox setup executable.
If you have PDQ Deploy installed, you can right click on the Firefox setup exe and select "Deploy with PDQ".
Give your installer a name (I used Firefox 4.0.1), be sure to check "Include Entire Directory", and then in the Parameters field, enter one of the following:
/INI=<full path to the INI>\Firefox-4-Deploy.INI
NOTE: Never mix the -ms, /S, or /INI parameters. (/S performs an uninstall of Firefox).
That's it. Save your installer and you're now ready to deploy. Firefox 4.0 is compatible with Windows 7, Vista, and even XP SP3. This same installer is also good with32 or 64 bit versions of Vista and Windows 7.
Note that the StartMenuDirectoryName option is no longer supported in Firefox 4.
Firefox has made it fairly easy to deploy silently to all of your computers, but I'd like to see a more robust line up of customizations for the INI file. The ability to make (or decline) default browser, accept or reject the auto import exisiting IE bookmarks, homepage, etc.
As demonstrated on this blog, Internet Explorer has made fantastic strides with regard to their IE customization wizard available from the Internet Explorer Administration Kit (IEAK).
If you have applications that you'd like us to demonstrate installing silently please let us know.
Install software silently with PDQ Deploy. Get your FREE copy today.
I was struck over this weekend by a couple of occurrences. First, I read through the below chart from Rackspace detailing the last 10 years of data storage. Second, I saw at my local office supply store a big "on sale" bin of Sandisk 4-GB USB flash drives for $7.50 (Australian, that's about $46.18 for you Americans :-). Both of these things got me to thinking about the milestones of storage that I've seen in my computing life.
The first USB flash drive that I bought was 512-MB for around $40. It was around 2001 or 2002. It was solidly built, though, and I still have it. It works great but it's just collecting dust these days. I now have a 1-TB portable USB disk which I carry around in my laptop bag. Not full, yet, but on the way.
Going further to the early 90s I worked for a graphics company that needed space to store all of the high resolution 3D renderings we were creating. So, they bought a few massive 5-GB drives. These were full height, full width drives and weighed a few pounds. To format them we had to go into debug mode in MSDOS and directly send a few command bytes to their address location. Once we got them running, though, we felt like we'd never be able to fill them up.
Going back as far as I can go to the original IBM PC in aboud 1984 was the 20 MB disk that my father bought. That seemed so capacious I thought I was in heaven. No more swapping floppies and listening to that grinding/buzzing sound. It's when I first learned about directories in DOS, something I never seemed to need for my little assiduously labeled plastic disk organizer that I got for Christmas.
It's at this point that I have to bow out and let some old PDP-11 operator win the "when I was your age" nerd pissing contest. But it never ceases to amaze me how much progress we've had over the last 30 years and it fills me with awe to think about where we'll be 30 years from now.
"1 terabyte? You couldn't even fit one dream recording on that, let alone store a digitized gourmet meal. Where did you keep your scanned pets?" I imagine this is what my grand kids will say when I tell stories around the hologram camp fire roasting space marshmallows.
It's annoyed me for years. Hack. Hacking. Hacker.
God, I hate those words.
I got my first Sys Admin job around the time Kevin Mitnick got caught and subsequently imprisoned. I thought, "wow, that has got to be what it's like working in Information Technology." I figured I was one job away from being immersed in one huge orgy of hacking, stealing Visa numbers, tracing phone calls, bringing government agencies to their knees and, of course, playing Tic-Tac-Toe with the WOPR. Well, that's what you get when the bulk of your computer experience comes from Jurassic Park, Sneakers and WarGames.
Adam mentioned the excellent Cracked article called 5 Things Hollywood Thinks Computers Can Do. In discussing Live Free or Die Hard, Cracked says:
"Hacking is to this movie what magic is in the Harry Potter stories: plot-hole spackle. All the gaping cracks in logic between scene A to scene C can be neatly smoothed over with the mystical power of Hack. The improbability reaches critical mass, though, when the bad guys hack into the natural-gas lines near a power plant and make them spontaneously explode under the streets."
Now I've worked around some pretty damn smart developers. There is no doubt that with the right security clearance and a general lack of ethics some of these guys could have wreaked havoc on the company. Still, this is light-years from what most people think of when they hear Hacker.
The term that grates on me like no other is that oft-heard, King-of-Poseurs line: Reg Hack. I still feel like I need to douche my ears when I hear it. "I fixed it with a reg hack. Don't ask me how, you don't wanna know".
No, I think I know. You opened up the Windows Registry with Regedit.exe navigated to a registry value that has been documented so much it's probably highlighted in your grandma's Bible and you changed a DWord value from 0 to 1.
Oh, damn... what are your demands O' Great One?! I am humbled that you know my name. What am I supposed to do when you keep reminding me that you performed a reg hack? What, give you my daughter? Commission a trophy?
These dorks need to know that there are two traits that they need in order to be like Dennis from Jurassic Park. They've got the abstinence one down pat but they just don't have the other: The actual intelligence needed to pull it off.
Adam, Shawn and I used to come up with other lame "hacks" that, to us, were as pathetic as Reg Hack:
- Word Hack. If you have the brain power to follow this one then you're well ahead of the game. When no one is looking, somehow, open a Microsoft Word document and change any occurrence of the word "and" to the word "fart". See? Word Hacks kick ass!
- Command Line Hack. Open up a command prompt on your Windows desktop (if you have to ask how well, then I'm afraid you're just not hacking material) and type in this gem of a hack and then hit Enter: echo "I'm a tool"
- PDQ Deploy Hack: The next time you distribute software force a reboot after the deployment is complete. Dude, You Da' Man!
- Basic Motor-Skills Hack. Walk in a straight line and then, suddenly, move to the left!
OK, I think you get the point.
Just get your job done. Don't act like that macro hack you created is going to stop the bloodshed in Misrata. Don't bore me about your Exchange hack to explain how you started a flame war from a service account. If you want to impress me how 'bout you rock a laundry hack and change that disgusting shirt once in a while?
Follow me on Twitter @ShaneCorellian
Photo by Molly DG
System administration has long been a magnet, attracting both talented and not-so talented people.
Here's a list on the latter.
7 signs that you've hired the wrong sys admin
7. Was sniffing glue behind his parents garage 2-weeks before getting his first help desk job.
6. Believes that token ring was something out of middle-earth.
5. Considers his old job running the Dominos Pizza ordering terminal as resume worthy.
4. Constantly bragging about his Novell certifications.
3. Uses the short A sound when pronouncing Java.
2. His bookshelf includes the 1995 Yellow Pages for websites book.
1. Proudly announces to the office that he has mastered the right-click.
In the past couple of weeks we've been working on some deployments that needed troubleshooting. One technique that we've found very useful was to see the output from the deployment command. This is mostly useful with batch and script files, but it can also help with EXE installers.
In the Parameters section of the installer add a redirect to file which you can then look through for errors:
> c:\out.txt 2&>1
This will create a text file on the c:\ drive of the target computer with all of the output from the command (the 2&>1 at the end combines the normal and the error output, if any, into the same file). This file will have the results from the command as you would see in the command window if you ran it manually.
For example, let's say you're troubleshooting a batch script that is copying some files like this:
copy \\server\share\config.xml %programfiles%\App\config.xml
You may notice in the output an error message about not being able to find a file. It could be either the source or the target, so you can add additional lines to the batch file to find out which file can't be found.
copy \\server\share\config.xml %programfiles%\App\config.xml
You would then be able to tell whether it's a permissions issue getting to the file server share or that the target directory doesn't exist on the computer.
Since we've found this to be useful we've added it as a task to put direct support for this kind of troubleshooting into a future version of PDQ Deploy. This will be particularly needed in PDQ Deploy Pro where an installer can perform multiple actions.
As always, please let us know how you're using the product and where you think something can be added or changed.
Michael Pietroforte of 4sysops fame has compiled a list of Windows 8 rumored features.
It's important for the system admin to stay on top of these rumors. Don't become infatuated with them, but know what they are. This is a fast way to get a birds eye view of possible application enhancements or compatibility issues with your existing apps.
It's nice to engage with the vendors of your favorite business apps to see what they are doing to be compatible out the gate with new Windows versions. It's also very important to know of any application pitfalls to avoid.
Michael has done a good job of compiling reputable sites and their rumors. It's worth taking a stroll to see what the chatter is about.
Photo by NatalieMaynor
One question that we've had a few times is how to create shortcuts to applications when deploying with PDQ Deploy. Typically this is either because the application's installer didn't create a shortcut or there is a need to create custom shortcuts with special parameters. We have, as a planned enhancement, the ability to create shortcuts directly within the application. But until then you can use the VBScript functionality in PDQ Deploy to run a short VBScript file that will do the heavy lifting.
Here's a simple example, it creates a shortcut on all user's desktops to the venerable Notepad application:
set shell = WScript.CreateObject("WScript.Shell" )
desktop = shell.SpecialFolders("AllUsersDesktop" )
set link = shell.CreateShortcut(desktop & "\My Notepad.lnk" )
link.TargetPath = "%SystemRoot%\notepad.exe"
link.WindowStyle = 1
link.IconLocation = "%SystemRoot%\notepad.exe"
link.Description = "Start Notepad"
link.WorkingDirectory = "%SystemRoot%"
Save this to a file name "notepad.vbs" and then select it as the installer file in PDQ Deploy and you're good to go. In PDQ Deploy Pro you can create it as a second package within an installer to have it follow right after another installation.
It's pretty straight forward how it works but there are a couple of things you'll need to know to customize it for your needs.
In order to make it easier to avoid hard coding paths to files you can use the SpecialFolders object which gives access to the actual paths of a number of the built-in folders. Some of these folders are available as environment variables but not all. The available folders are:
This property has 3 possible values:
1 = Normal window
3 = Maximized window
7 = Minimized window
To pass parameters to the application don't add them to the TargetPath property, instead use the Arguments property. For example, to use notepad to open a file called "Hello World.txt" add this line:
link.Arguments = "Hello World.txt"
A hot key can be added to a shortcut to allow quick keyboard access. Use "Ctrl+", "Alt+", or "Shift+" and a key. For example:
link.HotKey = "Ctrl+Alt+N"
That should be enough to get you going creating shortcuts. As always, please feel free to post any comments or questions here or in our forums and we'll do our best to help you get it working.