Friday, November 20, 2009

Installing Windows XP in a VMWare ESXi environment, no hard disks found error

If you attempt to install Windows XP in an VMWare ESXi environment (at least v3.0-3.5), don't be surprised if you get an error about no hard disks available. This is because you need to manually install SCSI drivers for the VMWare disks. Luckily VMWare provides a floppy image for this purpose and it's free to download. Simply mount the image as a virtual floppy, then press F6 when the Windows install screen tells you to "Press F6 if you need to install third-party SCSI drivers" at the beginning of the install. Press S when prompted to specify the drivers and you should see VMWare SCSI driver as the only option. Press Enter and then proceed with the install.

Here's a link to the VMWare knowledge base document addressing this issue:

You can download the floppy image of the drivers from the link in the KB article linked above, or from this VMWare support page:

Monday, November 16, 2009

Scripting a file transfer to an FTP server using a non-standard port (not 21)

I ran into an issue last week while trying to automated a file upload to an FTP site using a port other than the default of 21. For some reason I couldn't get it to work. It would continually get stuck at "150 Opening ASCII mode data connection". Checking the logs I was finding a 425 10060 error, which meant that the connection was being dropped. There were ghost files of 0KB being created on the FTP with the name of the file I was trying to upload, but the transfer would never happen. The good news is that I figured out the issue and am now sharing it with you.

It turned out I needed to use passive mode (PASV) for the FTP transfer and that isn't supported in the Windows ftp.exe command line application. In order to accomplish my upload I had to download and install NcFTP, which is a free, command-line client that DOES support PASV mode transfers. Once I did that I had no issue. If you're looking for the command to use with NcFTP to upload a file to an FTP server with a non-standard port, here's an example.

I have a file named test.txt located in C:\myFolder on the machine. I also have NcFTP installed to the default location. My goal is to upload test.txt to an FTP site called that is using port 35987. I also have to login to the site using username "test" and password "T3ster!". Here's what that would look like using ncftpput.exe to script the upload:

"C:\Program Files\NcFTP\ncftpput.exe" -u test -p T3ster! -P 35987 / "C:\myFolder\test.txt"

This calls ncftpput.exe, sets the username (-u) to test, the password (-p) to T3ster!, the port (-P) to 35987, specifies the FTP server, specifies the directory on the FTP server to put the file to (I used the root FTP directory, signified with the / symbol), then specifies the path on the local machine to the file I want to upload.

That is just a quick example. There are variations, and you can also do other things with it as well. To see more information, including a link to the complete list of available command line switches for ncftpput.exe and ncftpget.exe, check out the my previous post

Windows command line FTP client that support PASV (passive mode)

If you're trying to write an FTP transfer into a script and require a command line client that support passive mode transfers, you'll need a third-party solution. This is because ftp.exe that is built into Windows does not support passive mode. Luckily, there is a free third-party solution that works pretty well and I'm now using it for some of my scripts. It is NcFTP, and is a Windows adaptation of a Linux application. It has versions for multiple OS's, one of which is Windows. You can download it free from, then scroll down to the Download NcFTP Client section and find the Windows download link. If you're wondering, NcFTP also provides an FTP server application at the same download location.

There is an installer involved, which will install ncftp.exe, ncftpput.exe, and ncftpget.exe. Using some switches, you can then use ncftpput.exe and ncftpget.exe to script transfers to and from FTP servers, including those that only support passive mode.

For command line switches and additional documentation, it can be found at

Friday, November 6, 2009

Restart Windows XP Print Spooler service

Sometimes you may find it helpful or necessary to restart the print spooler on your Windows XP computer. This can happen if you're having issues with a printer, or if a job gets stuck in the queue and you can't delete it. To restart the print spooler:

1. Right-click the My Computer icon and select to Manage
2. Go to Services and Applications->Services
3. Within Services, scroll down until you get to Print Spooler
4. Right-click on Print Spooler and choose to stop or restart

Be aware that if you stop the service without starting it afterward, your computer will not be able to print until you either start the print spooler or restart your computer.

Networked HP 1022n printer not printing

I have a user with an older HP 1022n laserjet printer at her desk, and all of a sudden today it stopped working. I found the jobs stuck in the printer queue on our Windows Server 2003 print server, but couldn't get rid of them. Restarting the spooler didn't seem to help either. However, I found an article on (membership required) with a solution, and it apparently works for some other HP Laserjet printers that experience the same type of problem. On the printer server, you have to modify two settings for the printer:

1. Log on to your print server, open your Printers, then right-click your HP printer and choose Properties
2. Go to the Ports tab and uncheck the box labeled "Bidirectional Support"
3. Go to the Advanced tab and change the setting for spooling to "Start printing after last page is spooled"
4. Click Apply and OK

I spent quite a while trying to diagnose the issue and come up with a solution because I thought it was related to a recent driver update on the print server. While it likely was related to that update, I would've never thought it to be a problem with the default driver settings. Hopefully this saves you some time if you come across the same type of situation.