Skip to content

Posts from the ‘Windows’ Category


Ran Out of Registry Space on Windows 7

The Problem

I was attempting to upgrade a few workstations at work from Esri’s ArcGIS 9.3 to 10.0. The workstations are running Windows 7 32-bit on Dell OptiPlex 790s, and are otherwise pretty basic setups.

After uninstalling ArcGIS 9.3, I proceeded to install 10.0. Just towards the end of the MSI install — the “publishing product information” phase — the install would completely halt and lock up. Even after leaving the installer for an additional hour didn’t show any change. I manually ended the installation process, and attempted the install again (after letting the MSI installer repair the failed installation) with the exact same result. Huh?

Skip ahead to a few hours later after much troubleshooting and retrieving/analyzing of logs, I had learned that the MSI installation was failing with error 1935. From Microsoft:

This problem occurs because of a registry handles leak. The leak causes an out of resource exception. Therefore, the installation fails.

Okay, well, I can’t say that I’m surprised. For anyone who has ever installed/uninstalled an Esri ArcGIS product and watched the installer spend 10 minutes writing to the registry, you’ll know what I’m talking about.

It turns out that the Windows registry has a size limit, and because of the leak that is occurring during the installation, the ceiling of that size limit is being hit. The solution, although not classy, is to increase the size limit of the registry.

The Solution

So the Windows registry has a size limit, but how to increase the size of it? In pure Windows fashion, from within the registry itself:

  1. Open the Registry Editor (regedit.exe).
  2. Browse to: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control. Here lies a value called RegistrySizeLimit. The default value is: 5d00000 (97517568).
  3. Change the value to ffffffff (4294967295).
  4. Restart Windows.

Peeking Inside Windows Image Files (WIMs)

As everyone’s well aware, creating unattended scripts for Windows is really useful, and any time spent upfront making answer file easily pays for itself in the long wrong (even if the only thing it does is fill in the product key for you). When building answer files for operating system such as Windows 7 and Windows Server 2008, you need to write in the name of the image (from the WIM file) you want the installer to use. In some cases this is pretty straight forward, but in other cases an image file can actually have many images in it. For example, Server 2008 R2 has all of these images in its install.wim file: Read moreRead more


Disable Windows Server 2008 MSTSC Beeping

I recently was setting up a Windows Server 2008 box for a user. Once the box was up and running, I decided to do all of the configuration from the client’s office via MSTSC (standing in a cold server room twiddling my thumbs versus sitting in comfort at a desk). This was all great, except that for all of the dialog boxes popping up in the session came through as that annoying BEEP as a sound card isn’t installed on the server.

Nothing is more annoying (and makes you sound more incompetent) than that beep. Low and behold, a simple way to turn it off: On your local machine (it’s playing the beep, after all), run net stop beep from the command prompt. (To permanently disable it, run sc config beep start=disabled).


Cannot Open the Outlook Window?

I’m speaking to my mother who’s all frantic that her Outlook won’t launch. Okay, no biggie I assume. I ask if there’s an error message, which there is:

What the deuce? I get it, a lot is going on behind the scenes with Office/Outlook, but that’s kind of odd. When I actually get my hands on her laptop, just as she said, said error message is displayed, an empty Outlook window appears for a second, just before closing. Hmm. In the back of my head I’m thinking good thing we installed Windows 7 recently with its idiot proof backup setup, this could get ugly.

After trying the usual diagnostic measures and tests, I was pointed to Microsoft knowledge base article #252304, which basically walks you through deleting a registry key (or even have the Microsoft’s “Fix It” do it for you). After some hesitation and thinking back to when I was young and naive (if Microsoft says to do it, I should!) I backed up the registry keys and then deleted them. Result? Wow! Outlook opens, but with no profile or account information… not quite the fix I was looking for. Restored the previously backed-up registry keys and went back to the drawing board.

That’s when I remembered. Outlook has a whole slew of console switches that can be used (safe mode, etc.). Guess which one did the trick? “/resetnavpane“. I have no idea how the navigation pane would have got messed up, or how fixing it would then allow Outlook to launch, or what else gets reset with that switch, but the reset worked. Something to consider trying to before nuking your registry and being forced to set up all of your mother’s email accounts and their settings all over again.


Remove Adobe Drive CS4 Context Menu Item

If you are like me and prefer a minimalist and clean Windows installation, you may be quite annoyed that Adobe Photoshop CS4 will automatically install and create a context menu item for Adobe Drive CS4, regardless if you choose not to install Adobe Drive. This is especially annoying because

  1. It’s created even if you don’t install Adobe Drive
  2. You’re not prompted or asked if the menu item should be created
  3. There’s no easy way of removing it.

From what I’ve found, there are two ways of going about removing it:

  1. Actually install Adobe Drive CS4, and then uninstall it. This seems to remove the menu item.
  2. For the more hard core, delete these two registry keys:
    • HKEY_CLASSES_ROOT\AllFilesystemObjects\shellex\ContextMenuHandlers\ {C95FFEAE-A32E-4122-A5C4-49B5BFB69795}
    • HKEY_CLASSES_ROOT\Directory\Background\shellex\ContextMenuHandlers\ {C95FFEAE-A32E-4122-A5C4-49B5BFB69795}

Use Netsh to Change TCP/IP Settings from the Command Prompt

Netsh is a tool that allows you to change TCP/IP settings from the command prompt. You can even make changes to remote workstations that you have access to. Once you learn the basics of scripting with netsh, it’s effortless to make changes (especially when compared to using the GUI and endless windows and dialogs). Netsh has been available in all versions of Windows since the Windows 2000 days.

The things you can do with netsh are pretty extensive, and there’s no way that I can sum them all up here in a simple post. What I will attempt to do though is make mention of a few examples of netsh’s usage, and add more examples in the future. For anything more extensive, the accompanying documentation is fairly decent and can be viewed by using the /? switch.

View TCP/IP Settings

netsh interface ip show config

Set IP Address

Set a static IP of, with a subnet of and default gateway of

netsh interface ip set address name="Local Area Connection"

Obtain IP Address via DHCP

netsh interface ip set address "Local Area Connection" dhcp

Set DNS Server Address

netsh interface ip set dns "Local Area Connection" static

Dynamically Obtain DNS Settings

netsh interface ip set dns "Local Area Connection" dhcp

Remote Desktop Connection with Network Level Authentication in XP

It was my understanding that the Remote Desktop Protocol in Windows XP was never going to support Network Level Authentication. Well low and behold, with XP Service Pack 3 you can use the CredSSP Security Service Provider to enable it. The only problem is that in Windows XP, CredSSP is turned off by default.

Turn on CredSSP

  1. Within the Registry Editor, navigate to the HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa subkey.
  2. Modify the Security Packages value by adding tspkg to the list of packages.
  3. Navigate to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders.
  4. Modify the SecurityProviders value by adding credssp.dll to the list of providers.
  5. Restart your computer.

RDP NLA Supported

Sources: Microsoft KB article 951608: Description of the Credential Security Service Provider (CredSSP) in Windows XP Service Pack 3


SSH on Windows Server 2008

Even in this day in age with hightened security throughout it, Windows Server 2008 still lacks a native SSH server. Luckily though, with open source tools such freeSSHd, we can still get the end result. FreeSSHd even has a built-in SFTP server which makes accessing your remote file securely, surprisingly easy.

Install FreeSSHd

Download and install freeSSHd from The install is pretty straight forward: Run the installer and accept all of the default options. The only exception is to opt to run the SSH server as a service when you are asked.

Add Firewall Rule

A new inbound rule needs to be added to the Windows Firewall in order to allow TCP SSH traffic in on port 22. This can be done either from the Windows Firewall with Advanced Security snap-in or the command line with netsh. The snap-in has a wizard that works great and will walk you through step by step. I prefer the command line with netsh if it’s going to be straight forward with nothing fancy:

netsh advfirewall firewall add rule name="SSH" dir=in action=allow
protocol=TCP localport=22

Configure freeSSHd

To configure the freeSSHd server, run the freeSSHd application (either desktop or Start menu shortcuts) as administrator. Not running with administrator rights will result in your changes not being saved.

A tray icon will appear, which will allow you to open the freeSSHd settings dialog. Essentially, it’s just a GUI that makes changes to the FreeSSHDService.ini file (C:\Program Files\FreeSSHDService).

Create a user account for yourself. I didn’t have much luck getting NT authentication working as the authorization mode. I think it may have something to do with UAC being turned on on Server 2008. Selecting Password stored as SHA1 hash worked great though.

Once you’ve created your user accounts, among changing other settings, close the dialog to save the changes. To put the changes into effect though, you’ll need to restart the freesshdservice:

net stop freesshdservice
net start freesshdservice

That’s it. You should be all set and ready to test your connection with Putty or some other SSH client.