Deploying Adobe Reader via Group Policy

Here's another deployment process, this time for Adobe Reader.

Adobe updates typically come downloaded as an exe file. To get a deployable msi, Adobe requires you apply for a distribution license here. Once you have that license you can download the msi files. For Adobe Reader, you can then use the Adobe Customization Wizard to create a mst that changes options, disables autoupdate, etc. Download it here.
If you don't want to create your own, here’s a link to my mst.

One issue with this process is that the msi they give you for download is the base version of the current release (for example 9.4, not 9.4.4 with all the security updates) To get your installation msi up to date, it requires a couple more steps:
1. You can get the base 9.4 msi here: ftp://ftp.adobe.com/pub/adobe/reader/win/9.x/9.4.0/en_US/
2. Download the latest 9.4 MSP patch files from here (currently 9.4.4): ftp://ftp.adobe.com/pub/adobe/reader/win/9.x/9.4.4/misc/. *You actually need each incremental patch file to get the base msi up to date, so download the 9.4.3 and 9.4.2 files as well. (You don’t need 9.4.1)*
3. Create a network installation point for Reader by running the following from a command prompt:
msiexec /a AdbeRdr940_en_US.msi
Follow the prompts and specify a directory that you will use as your installation source in Group Policy.
4. Once it has been created, put the patch files in the same directory.
5. Open up a command prompt, then navigate to that directory.
6. Run the following commands one after the other:
msiexec /p AdbeRdrUpd942_all_incr.msp /a AdbeRdr940_en_US.msi /qb
msiexec /p AdbeRdrUpd943_all_incr.msp /a AdbeRdr940_en_US.msi /qb
msiexec /p AdbeRdrUpd944_all_incr.msp /a AdbeRdr940_en_US.msi /qb
You can then delete the patch files. Copy the transform you created with the customization wizard to this network installation folder and deploy.

Deploying Java Runtime via Group Policy

Posted this to the Ohio TechCoords listserv today and thought it would be a good one to document here.

I’ve taken a lot of info from appdeploy.com to make a nice mst file which does a bunch of things, including disabling update check, removing the system tray icon, uninstalling old versions upon installation, and add some registry settings that help resolve an issue which used to cause the installation to hang at log on. I’ve uploaded it here if anyone would like to use it.

To get the msi file from the latest Java Runtime, do the following:
1. Download the Offline Java SE Runtime Environment 6 Update # file here. The file should be named something like jre-6u24-windows-i586-s.exe.
2. Double-click on the EXE to begin the installation.
3. When the "Welcome" screen appears, DO NOT click next.
For XP browse to: C:\Documents and Settings\[username]\Application Data\Sun\Java\jre1.6.0_24\. Copy the entire folder to your network installation source directory.
For Vista/7 browse to: C:\Users\%username%\AppData\LocalLow\Sun\Sava\jre1.6.0_24\. Copy the entire folder to your network installation source directory.
4. Put the mst from above in this folder and deploy with Group Policy.

Task Management When Roaming the Halls

It happens every time I venture down the hallway to take care of something - someone flags me down - "Mike, I've been meaning to ask you....." We talk, I say that it's no problem, I'll take care of it. Then I keep walking. Someone else flags me down. After two more stops, I finally reach my original destination and work on that issue. Thirty minutes after I talked to the first person to stop me, I've completely forgotten that we talked.

When I got my Android phone last year, I had hoped that I'd find a good solution for task management and reminders on the go. It's taken a while to get there, but I think I've finally found something that will make sure I get these things done. And it's really simpler than I've been trying to make it all along.

I've tried a bunch of different apps to try and solve this problem. First were a number of "sticky note" applications that attach a note to my home screen on the phone. They always seemed sort of clunky, and the main issue I had with most of these came up - unless I remembered to look at the note when I got back to my desk, then put it on my task list, the item was destined to be left there until the next time I went into it for another task.

Finally I found an app that is doing the trick - Email Me. It's pretty simple - after setting up some defaults, a simple tap of a shortcut brings up a message with a pre-populated subject (Note to Self in my case). I type in a body and hit send.

Back at my desk, an Outlook filter sees this subject, creates a task based of the e-mail body, and it's ready for me to resolve when I get back.

Adding a computer using a GUID using RSAT on Windows 7

The RSAT (Remote Server Administration Toolkit) for Windows 7 is a great tool for managing all of the services running on our network. One thing that's bugged me for a while, however, is the inability to add a new computer account to the server using a GUID for imaging. By default, the remote install tab is missing when you look at a computer object, and when creating a new object you don't get the opportunity to type one in. So instead of doing my management from my custom mmc, I have to remote connect to the server, fire up the AD mmc there, and add the account - not a huge deal, but just annoying.

I decided to root around for a solution today and found one. I'm assuming you've already installed the RSAT on your machine and have enabled the Deployment Services tools in the Windows Features dialog.
1. Copy the following file from the server to the exact same spot on your machine (the server must have the same architecture (32 or 64 bit) as your machine):
%systemroot%\system32\imadmui.dll
2. From an elevated command prompt on your machine, run the following:
regsvr32 imadmui.dll

That's it! You'll now see the remote install tab in your mmc and be able to create computer accounts with a GUID.

Tracking Email sent through a Joomla contact form

| 1 comments

Our school website uses Joomla 1.5, a great free CMS platform. We recently had a student use the contact form on the site to send a fake e-mail to a teacher. To my surprise, none of the e-mail information was logged on the site. Joomla relays the mail using our exchange server, so the message tracking there showed nothing but a message sent by the web server. After some searching, I found a little change that can be made that adds the sender's IP address directly into the body of the e-mail.

At line 157 of joomla\components\com_contact\controller.php, change the subject line from

$body = $prefix."\n".$name.' <'.$email.'>'."\r\n\r\n".stripslashes($body);

to

$body = $prefix."\n".$name.' ('.getenv('REMOTE_ADDR').' - '.gethostbyaddr(getenv('REMOTE_ADDR')).')' ."\r\n\r\n".stripslashes($body);

We can then track them down if they are a user in the school.

Windows 7 - Deploying Printers via Group Policy Preferences

I've begun testing Windows 7 deployment on our network and came across a new setting which effects deploying printers using Group Policy Preferences. The setting is under Computer Configuration --> Policies --> Administrative Templates --> Printers. It is named "Extend Point and Print connection to search Windows update."

If for some reason you don't have a Windows 7 driver on your server or in the image, you can enable this setting to allow the client machine to pull a driver down from Windows Update. This combined with disabling the security prompts under the "Point and Print Restrictions" will allow seamless installation of deployed printers for all users on the network.

Supress the network location prompt on an unattended installation

In Windows Vista and 7 when doing an unattended installation, there is a bug in the process in which the network location specified in the unattended xml file does not get applied. Here's how to supress that dialog.

The easiest way to do this is by adding a RunSynchronousCommand to RunSynchronous section in the x86_Microsoft-Windows-Deployment_neutral block in the specialize phase of your unattend.xml file.

To stop the Network Locator Prompt from appearing add a fourth RunSynchronous command to RunSynchronous block (specialize) with the following details:

  • In the Description field, enter something to identify the task - like "DisableNetworkLocationPrompt".
  • In the Order field enter 4 (if you are editing the BDD 2007 created unattend.xml file) or 1 if it is your first RunSynchronous command.
  • In the Path field enter the command line (as one complete line) - reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\CurrentVersion\NetworkList\Signatures\FirstNetwork" /v Category /t REG_DWORD /d 00000001 /f
  • In the WillReboot field enter Never
When this command runs as part of the build or deploy process, the Network Location Prompt will be suppressed.

Edit: After trying a few things on Windows 7, I found that the above didn't work. It may work on Vista, but not 7. Here's the fix that worked for 7:
In the Path field enter this command line instead: reg add "HKLM\SYSTEM\CurrentControlSet\Control\Network\NewNetworkWindowOff /f"