Change is Good

Sunday, January 31, 2010
Very soon I plan to make some changes to the EXPTA {blog} (hopefully for the better). 

I'll be moving this blog from my own hosted server to "the cloud," hosted by Google, to increase response time.  I'll also make some rather dramatic changes to the blog's layout.

I started this blog primarily for myself, as a form of "long term memory."  I come across so many gotchas and things that are good to know in my line of work that I sometimes can't remember all the details.  It helps to document them and keep them in a place where I can access them anywhere anytime.  As time went on, I found that a lot of other IT pros were looking for the same information I was.  So rather than just jot down little notes to myself, I decided to fully document my findings here to help others.  At the time of this writing, I've had over 400,000 visitors (thanks, Mom!), so I seem to be doing something right.

Since I started this blog in April 2007, screen resolutions have changed and widescreen displays are more prevelant.  To that end, I've been tweaking a fluid template that automatically adjusts to your screen resolution.  Hopefully, you'll find this layout easier to read than the single thin column of the current blog layout.  Look for it in the next day or so.

Read more ...

Tech-Ed North America 2010 – Pre-Conference Seminars Now Available

Friday, January 29, 2010
Get even more from Tech-Ed 2010 when you register for a Pre-Conference Seminar. Each full-day workshop offers in-depth study on a particular topic, which has been specifically developed to address the most relevant needs of today’s technology experts.

For an additional investment of $400 you receive dedicated class time on a specific subject with a noted industry expert. Select from one of these day-long workshops:

Visit the Tech-Ed website to see full descriptions of each seminar.
Read more ...

What's on Your iPhone?

Friday, January 22, 2010
I love my iPhone.  It's the most productive, time wasting, fun device I've ever had.  As more of my friends and collegues have also gotten iPhones, I'm frequently asked what apps I use.  Here's what's on my iPhone today.  All are free, unless I noted it. The notable ones are:

Screen 1: (Info Apps)
• Google – Mobile Google with voice searching and other goodies
• Bing – Same as Mobile Google, but has better picture searching
• Dragon Search – A voice searching app
• Newsy – Great little “top stories” news app
• SF News – Local news
• AP Mobile – Associated Press
• White House – Great app with lots of good info
• Stitcher – An audio new aggregator. Listen to radio shows and NPR broadcasts
• BargainBin – Lists free and reduced priced apps

Screen 2: (Utilities)
• Shazam – “Listens” to any song playing on the radio and tells you who it is
• PS Mobile – PaintShop Mobile, let’s you alter your photos
• Pandora – Internet Radio
• Dragon Dictation – Awesome voice to text app. Dictate emails to your iPhone!
• Wikihood – Tells you interesting things about your current location
• Mark the Spot – Let AT&T know about problem areas where you don’t have good signal
• iBART – Great Bay Area Rapid Transit app

Screen 3: (Shopping)
• Shop Nearby – Uses to find anything from nearby stores or online
• CraigsPro – Pretty good craigslist app
• RedLaser – $1.99 (paid for itself over and over). Scan barcodes on items and it will show you the lowest price for it online
• Cheap Gas! – Shows you gas stations nearby and their prices. Includes augmented reality.
• KAYAK – Travel search engine
• WootWatch – Woot!

Screen 4: (Things to Do)
• Yelp – Great app that tells you all sorts of info about what’s around you. Includes augmented reality.
• AroundMe – A lot like Yelp. I think I like this one better.
• OpenTable – Make restaurant reservations
• Flixter – Great app for looking up movies nearby
• PhoneFlicks – Netflix queue management
• Concerts – Tells you about local concerts. Also alerts you when one of the artists on your iPhone is playing nearby.
• EventsFinder – Find local events, fairs, etc.
• Broadcaster – Stream video from your iPhone to a free website
• Planets – Astronomy app
• Bump – Share contacts with other iPhone users running Bump by “bumping” your iPhones together
• TripCase and Worldmate – Travel management apps. Keeps track of flights, hotels, rental cars, etc.

Screen 5: (Games, Fun)
• 3D Aqua Lite – Virtual fishtank
• Zippo Lighter – Great for concerts!
• Lightsaber – Fun!
• Physics Free – Fun physics game
• Unblock Free – Challenging game
• Jungle Crash – Airplane game
• TriDefense – $1.99. Strategy game
• WildWest – Pinball game
• R.Racing GTI – Racing game. Absolutely awesome graphics
• iPirate - $1.99 (free version, too). Shoot ships with your canons.
• MiniSquadron – Another airplane game
• CtC (Crush the Castle) - $1.99 (free version, too). Really fun game where you crush castles with a trebuchet

BTW, you may wonder how I got these screenshots from my iPhone.  Hold the sleep (power) button down and then press the round home button.  Cheers!
Read more ...

How to Configure Change Password for OWA 2003/2007/2010 Mixed Environments

Thursday, January 21, 2010
The Change Password feature in OWA will break when you reconfigure the environment to use Exchange 2007 or Exchange 2010 CAS servers as front-end servers for Exchange 2003 mailbox servers.  This is because the the CAS server don't have the necessary ASP pages installed that OWA 2003 links to.

telnetPORT25 wrote a great article explaining the step-by-step process, along with screenshots, to fix this problem.  I'm listing the high-level steps here (mainly to act as my long-term memory).
  • Logon to the Exchange 2007/2010 CAS server
  • Copy the %SystemRoot%\System32\inetsrv\iisadmpwd folder and files from the OWA 2003 FE server to the CAS server's %SystemRoot%\System32\inetsrv folder
  • Open IIS Manager and add a new Virtual Directory off the Default Web Site named IISADMPWD with a physical path of %SystemRoot%\System32\inetsrv\iisadmpwd
  • Right-click the new IISADMPWD virtual directory and select Convert to Application
  • Select the MSExchangeOWAAppPool
  • Restart IIS (iisreset /noforce or select the server in IIS Manager and click Restart)
Read more ...

The TechEd 2010 Count Down Gadget

Tuesday, January 19, 2010
Are you going to TechEd 2010 North America?  Can't wait to visit New Orleans with all your fellow IT Pros?  Well, get your geek on with the TechEd 2010 Count Down Gadget for Windows 7 and Windows Vista!

Just download the gadget from any Windows 7 or Vista computer and double-click it to add it to your Windows Sidebar.  But hey, you're an IT Pro.  You already knew that.

Update: The TechEd 2010 Count Down Gadget has been accepted and approved for distribution through the Windows Gallery.

Special thanks goes to Oliver Green with  He did all the smart stuff.  I just changed the graphics.
Read more ...

How to Fix Internet Explorer Cannot Download FileName from WebServer

Tuesday, January 19, 2010
You may find that when you create a link to a file from your web server that Internet Explorer cannot download or open the file.  When the user clicks the link, Internet Explorer returns the generic 404 error, as shown:

They also may receive an error stating, "Internet Explorer cannot download filename.ext from  Internet Explorer was not able to open this Internet site.  The requested site is either unavailable or cannot be found. Please try again later."

This happens when IIS doesn't understand the file extension and associated content type of the file.  Examples of such file extensions are .reg or .gadget.  To fix this problem you must add the extension and MIME type to IIS.

Here's how you do it in IIS 7.0 (Windows Server 2008) and IIS 7.5 (Windows Server 2008 R2):
  • Open Internet Information Services (IIS) Manager
  • Expand servername > Sites > Default Web Site
  • Select the website you want to configure, or select Default Web Site if you want to configure all websites on the server
  • Double-click MIME Types in the IIS section of the center pane
  • Click Add in the Actions pane
  • Enter the extension you wish to add, including the . prefix (i.e., .reg or .gadget)
  • Enter the MIME type (i.e., text/plain for .reg files or application/x-windows-gadget for .gadget files)
  • Click OK
The changes go into effect immediately - there's no need to restart IIS.

For a quick reference of MIME types, see MIME Type Detection in Internet Explorer.
Read more ...

Exchange 2010 DAG Replication Port

Tuesday, January 19, 2010
Michel de Rooij, a Dutch technology consultant, posted a nice concise article about the port used by Exchange 2010 for DAG replication.
"... the port used for DAG log shipping and seeding, which is 64327 by default. Looking back at Exchange 2007 this is good; the port is static and DAGs use regular TCP, where CCR/SCR in Exchange 2007 uses 445 for log shipping (over SMB) and a dynamic port for seeding. And if it’s two things some network people hate it’s SMB and dynamic ports. On the other hand, 64327 in the dynamic range defined by IANA; according to IANA dynamic ports cannot be registered (claimed).

Fortunately, the port can be changed when required. To change the port for a DAG use the Set-DatabaseAvailabilityGroup cmdlet with the ReplicationPort parameter like this, where can be any number between 1 and 65535:

Set-DatabaseAvailabilityGroup -Identity DAGID -ReplicationPort

Note that Exchange will not adjust the Windows Firewall rules accordingly, so you need to create a firewall exception on each DAG member to make replication work. Even better, you should do this before changing the DAG port to prevent interrupting the replication longer than necessary."

For a full list of the ports used by Exchange 2010, see the Exchange Network Port Reference.
Read more ...

How to Enable Reverse DNS Lookup in IIS

Tuesday, January 5, 2010

This article explains how to enable reverse Domain Name System (DNS) lookup for all versions of Internet Information Services (IIS).

When reverse DNS lookups are enabled on the web server, the IP address of each web client that connects to the IIS server is resolved to a DNS name, and the DNS name instead of the web client IP address is placed in the IIS log files.  Enabling reverse DNS also affects what CGI and ISAPI extensions see as a value of the Remote_Host variable.

Microsoft KB article 297795 gives a step-by-step demonstration how to enable RDNS for IIS4, IIS5 and IIS6, but all you need to do is run the following in a command prompt from the ADScripts folder:

For IIS4 run:
adsutil set w3svc/EnableReverseDNS TRUE
For IIS5 and IIS6 run:
cscript adsutil.vbs set /wesvc/EnableReverseDNS "TRUE"
In IIS7, you must install the IP and Domain Restrictions role service for the Web Server (IIS) role.  You can do this in Server Manager or from the command line using the following command:
ServerManagerCMD -install Web-IP-Security
In Windows Server 2008 R2, the ServerManagerCMD.exe program is deprecated and has been replaced with the ServerManager Powershell cmdlets.  The following two cmdlets are used to install the IP and Domain Restrictions role service:
Import-Module ServerManager
Add-WindowsFeature Web-IP-Security
Now that the role service is installed, you can configure reverse DNS lookups, as follows:
  • Open Internet Information Services (IIS) Manager.
  • Navigate to the Server Name in the Connections pane.  If you only want to enable reverse lookups on a particular website, navigate to that website.
  • Double-click IP Address and Domain Restrictions in the center pane and click Edit Feature Settings in the Actions pane.
  • Put a checkmark in Enable domain name restrictions and click OK.
You will see the following warning:
Restricting access by domain name requires a DNS reverse lookup on each connection. This is a very expensive operation and will dramatically affect server performance. Are you sure you want to enable restrictions based on domains?
Clicking Yes will enable reverse lookups for all clients connecting to the web server.  I have not noticed any more than a 1-2% increase in CPU performance and the websites are just as performant as before.

Each of these changes go into effect immediately.  There is no need to restart IIS.
Read more ...

How to Create a Boot VHD Step By Step

Friday, January 1, 2010
Windows 7 and Windows Server 2008 R2 allow you to create a bootable VHD (virtual hard disk) with its own operating system (also called Native Boot).  This is really useful when you need to run another operating system or platform on the same hardware.
Note: Native Boot is limited to the following operating systems: Windows 7 Enterprise (x86 or x64), Windows 7 Ultimate (x86 or x64), and Windows Server 2008 R2.
For example, my Dell workstation normally runs Windows 7 Ultimate x64.  I wanted to update the BIOS from Dell's support site, but the BIOS installer won't run in x64 operating systems.  I also wanted to update the firmware on my Parrot Minikit Slim bluetooth car kit, but the USB driver for the P5+ USB Stage1 device is only available for x86 computers.

In previous versions of Windows, the solution would be to make a dual-boot system.  The problem with this is that you and Windows will need to contend with similarly named folders (i.e., \Windows and \Program Files).  A bootable VHD is a discreet virtual disk that contains it's own OS.  The single VHD file can reside on your normal disk drive (for example, C: or D:), or even a USB drive.  The VHD will contain its own file structure, but you can still access the physical drives, folders and devices on the parent computer.

The walkthrough I'm documenting here will create a bootable VHD file that runs Windows 7 Enterprise x86.  Let's get started.

 Creating the VHD Drive
  • First, start up and login to the parent operating system (in my case, Windows 7 Ultimate x64).
  • Open Computer Management in Administrative Tools
  • Expand Storage and click Disk Management. You will see your normal physical drives.
  • Right-click Disk Management and select Create VHD
  • Enter the file path and name, size, and format for the VHD as show below:
  • Here, I'm creating a 20GB dynamically expanding VHD named D:\Win7x86.vhd.  A dynamic disk will start off very small (~42KB) and will grow as data is written to it, up to the maximum size specified (20GB).  Microsoft has made huge improvements in the performance of dynamic VHDs in Windows 7 and Windows Server 2008 R2, so they perform nearly the same as fixed size disks.
  • Click OK to create and mount the VHD volume.  The new disk will be listed in the bottom pane of the Disk Management console as an Unknown Disk.
  • Right-click the Unknown Disk and select Initialize Disk, as shown here:
  • Click OK to initialize the disk with an MBR partition.
  • Now right-click the Unallocated disk and create a New Simple Volume.  The New Simple Volume Wizard will run.  Assign the new volume as drive X:, give it the volume name, Win7x86, and quick format it with the NTFS file system.  The new volume will be displayed in Disk Management and the D:\Win7x86.vhd file will grow to about 77MB.
You now have a new 20GB virtual hard disk, drive X:  Next, we will prepare the disk to install Windows 7 Enterprise x86.

Preparing the VHD for the New Operating System
  • First, you need to download and install the Windows Automated Installation Kit (WAIK) for Windows 7 from Microsoft.  Be aware that this is a 1.7GB ISO and can take some time to download.  Burn the ISO to a DVD or mount it using virtual CD-ROM software like UltraISO, PowerISO, etc., and then install WAIK.
  • Open a CMD prompt as Administrator and change to the %SystemDrive%\Program Files\Windows AIK\Tools\ folder.  In my case, this is C:\Program Files\Windows AIK\Tools\amd64.
  • Mount the Windows 7 Enterprise Edition x86 media.  In my case, this is on the DVD drive E:
  • Run the following command to prepare drive X: for the new operating system:

imagex /apply E:\sources\install.wim 1 X:\
  • Imagex will apply the Windows 7 binaries to the VHD drive X:  The 1 specifies that the operating system is Enterprise Edition.  The application will begin, as shown below:
  • Imagex application normally takes about 7-8 minutes, despite what the progress bar shows.  When it completes, you will see several new folders on drive X:
  • Now you need to detach the VHD disk.  In Disk Management, right-click the VHD disk and select Detach VHD, as shown below:
  • You will notice that the D:\Win7x86.vhd file has grown to about 5.5GB.
We now have a VHD with the Windows 7 Enterprise x86 files installed on it.  We need to configure the computer so that it can boot to the VHD and complete the installation of Windows 7.

Adding the VHD to the Boot Menu
  •  Open an elevated CMD prompt and enter the following command:

bcdedit /copy {current} /d "Windows 7 Enterprise x86"
  • This will return the GUID of the Loader Object that you will use to replace in the following commands:
bcdedit /set device vhd=[driveletter:]\vhdpath\vhdfilename

bcdedit /set osdevice vhd=[driveletter:]\vhdpath\vhdfilename

bcdedit /set detectHAL on

The detectHAL command is used to force Windows to auto-detect the hardware abstraction layer. The commands I used are shown below:

Completing the Installation

Now we are ready to boot from the VHD. When you restart the computer you will see a new entry in the boot menu for Windows 7 Enterprise x86, along with the default Windows 7 or Windows Server 2008 R2 option.

Restart the computer and select the new Windows 7 Enterprise x86 option to complete the installation of Windows 7. The first time the new OS starts, the install process will install needed device drivers and restart the computer. The second time your start the OS, miniprep process will walk you through configuring the user name, password, computer name, and the network settings.

Congratulations! You have completed the boot to VHD process.
Read more ...