Wednesday, December 16, 2009

Webdrive sucks

Don't ever install Webdrive client by South River Technologies.  It is very difficult to uninstall, particularly if it is not in Add/Remove Programs.  Trying to stop the service doesn't work, as it automatically restarts even on manual.  Deleting the folder won't work as it is still in use. This is what I had to do:

1) Boot into BartPE.
2) Delete C:\Program Files\Webdrive
3) Boot into Windows, open regedit.
4) Delete the following: HKLM\SYSTEM\CurrentControlSet\Enum\Root\LEGACY_WEBDRIVEFSD
HKLM\SOFTWARE\South River Technologies
and the most important...
5)HKLM\SYSTEM\CurrentControlSet\Services\WEBDRIVEFSD and
6) Reboot and it should be bye-bye

Monday, November 16, 2009

Changing icon text background color

Sometimes my Google-fu really leads me the wrong way.  Since I loaded a new HTML wallpaper with a gradient from black to white, I've been having troubles with the color of the background behind the icon text. 

The following is an excerpt from which summarizes the solution that has worked for most people.

Re: Text on desktop icons has background color - not transparent

Four things are required for transparent icon backgrounds:
1.Control Panel-System-Advanced-Performance Settings. Check "Use drop shadows for icon labels on the desktop" on the Visual Effects tab.
2.Right-click on Desktop - "Arrange Icons by" and ensure Lock Web items is cleared.

3.Transparency will not work if you have web content on your desktop, Control Panel - Display Properties - Desktop tab - Customize Desktop - Web tab. Clear all check boxes.

4. Ensure the Wallpaper is an image file not HTML.
Alan Edwards, MS MVP Windows - Internet Explorer

I'm using Active Desktop which rules out making any background transparent.  All I want to do is change the icon text background to black instead of white which will make the fade from black to grey bearable.  I've done this a few months ago, now I don't remember how to do it.

What I discovered was... that the background color in my HTML file was set to white.  After changing it to black the icon background changed to black as well.  Perhaps there is a way using CSS or transparency to make the background transparent so I don't have to worry about this.

Wednesday, November 4, 2009

Drive letters and Sysyprep

I have a card reader with 4 drives installed on a machine that I'm trying to sysprep. I need the drive letters to start at I: but sysprep insists on resetting them back to E:.  So here is how I solved it.

setlocal enabledelayedexpansion

echo %computername%.txt | findstr ENE327 > NULL
        echo The string contains ENE327.
        echo Calling remap.cmd...
        call c:\declone\remap.cmd
echo %computername%.txt | findstr ENE333 > NULL
        echo The string contains ENE333.
        echo Calling remap.cmd...
        call c:\declone\remap.cmd
setlocal disabledelayedexpansion
del /q NULL

I ran this code after sysprep.  The remap.cmd code is:

@echo off
echo Please do not have any USB drives mounted for the next step!
echo Before continuing, verify the following.  If not,press CTRL-C to quit as you may be reassigning the wrong drive!!
echo Volume 2 is E
echo Volume 3 is F
echo Volume 4 is G
echo Volume 5 is H

diskpart /s diskcheck_scriptfile.txt

echo Sleeping for 3 seconds...
c:\declone\sleep 3

echo Running Diskpart
diskpart /s scriptfile.txt
echo The drives have been remapped as follows:
echo Volume 2 is I
echo Volume 3 is J
echo Volume 4 is K
echo Volume 5 is L

echo Sleeping for 3 seconds...
c:\declone\sleep 3

Here are the contents of scriptfile.txt:

list volume
select volume 2
assign letter=I
select volume 3
assign letter=J
select volume 4
assign letter=K
select volume 5
assign letter=L
list volume

Diskcheck_scriptfile contains list volume.

Thursday, September 10, 2009

Adjusting wallpaper for screen resolution

Do you have non-standard or strange monitor resolutions? Wallpaper having trouble adapting. Try this little javascript. Works well as the html wallpaper when used with group policy. Change resolution? No problem, this well adapt easily.

<script language="JavaScript">
var netpath = "file://///server\\sysvol\\server/Policies/{19FB4C1D-637F-479E-98BF-FE8CEEF217C6}/User/Applications/wallpaper/";

if ((screen.width==1024) &amp;&amp; (screen.height==768))
window.location=netpath + "SSE_1024x768.html";
else if ((screen.width==1152) &amp;&amp; (screen.height==864))
window.location=netpath + "SSE_1152x864.html";
else if ((screen.width==1280) &amp;&amp; (screen.height==1024))
window.location=netpath + "SSE_1280x1024.html";
else if ((screen.width==1680) &amp;&amp; (screen.height==1050))
window.location=netpath + "SSE_1680x1050.html";
window.location=netpath + "error.html";

Tuesday, August 25, 2009

Windows related problems

Ahhh its imaging season again. Time to deal with the multitude of annoyances and headaches that come with it. A brief summary.

1) I discovered that after sysprep WMP is broken. When trying to start it, unless one is an admin I get "to use windows media player log off from windows log back on". It doesn't always fix itself. The recommended solution is to reinstall WMP.

2)To prevent Windows Media Player from creating shortcuts and showing first use dialog boxes.

Expand Administrative Templates\Windows Components\Windows Media Player.

Double-click Do Not Show First Use Dialog Boxes, select Enabled and click Ok.

It was doing that on startup for every new user.

3) Sysprep has the error: “The software you are installing for this hardware XXX has not passed Windows Logo testing”. Have to hit continue at least 6 times to get around it. I don't remember how I got around this one. It happened on a clone machine that uses SATA IDE drivers and that was what the error was referring to.

Monday, June 29, 2009

Sysprep and AHCI drivers

I've managed to get the AHCI drivers working with sysprep for XP. Sysprep can still be run in ATA mode, but will integrate the drivers for AHCI with no problem

Wednesday, June 24, 2009

Injecting AHCI drivers into an existing ATA XP install

Grabbed this excerpt from :

It works suprisingly well on my Optiplex 960. It doesn't seem to work if IAACHI.INF is used. Even though the driver is located there.

First download the SATA drivers from Dell. Download
Copy the file onto the computer somewhere like c:\dell\drivers\?

So you turn ATA support on in the BIOS for the SATA controller.
Boot into Safe Mode.
Open Device Manager.
Find the Primary IDE Channel device (there may be 3 listed, I picked the top one)
Right click - Update driver
"No at this time" - Next
"Install from a list or specific location" - Next
"Don't search. I will choose the driver to install" - Next
Click - Have Disk
Browse to the iaStor.inf file - Click Ok
Choose the "Intel(R) ICH10D/D0 SATA AHCI Controller" - Next
Install it.
Go into the BIOS and enable the AHCI support for the Sata.

Make your image from this box.

Thursday, June 11, 2009

Vista can autodetect and install both SATA ATA and AHCI

I installed a copy of Vista Business 64 bit edition. It installed a generic SATA AHCI controller. I installed the correct drivers afterwards. When I flipped the BIOS setting back to ATA there was no problem loading Vista.

XP ends up with a STOP x7B error when the BIOS setting is flipped from ATA to AHCI.

Wednesday, June 10, 2009

BartPE is working with SATA AHCI

Well, its been a long and hard road. But I finally have BartPE reading a SATA drive in AHCI mode. We can debate the usefulness of this later.

It wasn't really straightforward, but with my Google-fu I eventually figured it out.

1) Download the latest version of the Intel Matrix Storage Manager drivers. See

2) Extract the drivers. You should come up with similar to the following:

3) Comment out irrelevant drivers in txtsetup.oem.

4) Copy these to PEbuilder313\drivers\SCSIAdapter\IntelMatrixStorageManager.

5) Locate the WinXPSP2 source for BartPE. Edit WinXPSP2\I386\txtsetup.sif. In the[ SCSI.Load] section, add Iastor = iastor.sys,4

6) In the same file, find [HardwareIdsDatabase]. Add the following:

PCI\VEN_8086&DEV_2681&CC_0106 = "iaachi.inf"
PCI\VEN_8086&DEV_27C1&CC_0106 = "iaachi.inf"
PCI\VEN_8086&DEV_27C5&CC_0106 = "iaachi.inf"
PCI\VEN_8086&DEV_2821&CC_0106 = "iaachi.inf"
PCI\VEN_8086&DEV_2829&CC_0106 = "iaachi.inf"
PCI\VEN_8086&DEV_2922&CC_0106 = "iaachi.inf"
PCI\VEN_8086&DEV_2929&CC_0106 = "iaachi.inf"
PCI\VEN_8086&DEV_3A02&CC_0106 = "iaachi.inf" ; ICH10D/DO Family SATA Storage Controller - 3A02
PCI\VEN_8086&DEV_3A22&CC_0106 = "iaachi.inf" ; ICH10D/DO Family SATA Storage Controller - 3A22

7) Build BartPE. Check the PEBuilder.log for errors. You will probably find something similar to:

Processing (driver) INF file "C:\BartPE\PEBuilder\PEbuilder313\drivers\SCSIAdapter\IntelMatrixStorageManager\iaAHCI.inf", class "hdc", provider "Intel", ver "02/11/2009"
Unsupported class (hdc), skipping...

That's ok, as long as further down you can find:

Processing OEM file "C:\BartPE\PEBuilder\PEbuilder313\drivers\SCSIAdapter\IntelMatrixStorageManager\TXTSETUP.OEM"
SCSI hwID "iaAHCI_ESB2", component "Intel(R) ESB2 SATA AHCI Controller"
Adding file "\iaStor.sys"
SCSI hwID "iaAHCI_ICH7RDH", component "Intel(R) ICH7R/DH SATA AHCI Controller"
SCSI hwID "iaAHCI_ICH7MMDH", component "Intel(R) ICH7M/MDH SATA AHCI Controller"
SCSI hwID "iaAHCI_ICH8RDHDO", component "Intel(R) ICH8R/DH/DO SATA AHCI Controller"
SCSI hwID "iaAHCI_ICH8MEM", component "Intel(R) ICH8M-E/M SATA AHCI Controller"
SCSI hwID "iaAHCI_ICH9RDODH", component "Intel(R) ICH9R/DO/DH SATA AHCI Controller"
SCSI hwID "iaAHCI_ICH9MEM", component "Intel(R) ICH9M-E/M SATA AHCI Controller"
SCSI hwID "iaAHCI_ICH10DDO", component "Intel(R) ICH10D/DO SATA AHCI Controller"
SCSI hwID "iaAHCI_ICH10R", component "Intel(R) ICH10R SATA AHCI Controller"
SCSI hwID "iaStor_ESB2", component "Intel(R) ESB2 SATA RAID Controller"
SCSI hwID "iaStor_ICH7RDH", component "Intel(R) ICH7R/DH SATA RAID Controller"
SCSI hwID "iaStor_ICH7MDH", component "Intel(R) ICH7MDH SATA RAID Controller"
SCSI hwID "iaStor_ICH8RICH9RICH10RDO", component "Intel(R) ICH8R/ICH9R/ICH10R/DO SATA RAID Controller"
SCSI hwID "iaStor_ICH8MEICH9ME", component "Intel(R) ICH8M-E/ICH9M-E SATA RAID Controller"

That's it! I thank the following websites for giving me the inspiration:

Adding drivers in BartPE

This told me that the skipping hdc error really doesn't matter...

Method 2 showed me the format and where to add the missing pieces...

Both of the following gave me insight on which device IDs to use...

Some background on configuring BIOS for SATA operation

Oh BTW don't forget to change the setting to AHCI in the BIOS. This will also cause the PC to be unable to read the current image. Haven't figured out how to inject the drivers into sysprep for XP yet.... coming soon.

Tuesday, May 26, 2009

Vista does not support GPMC anymore

Microsoft decided somewhere that the Group Policy Management Console (GMPC) should be removed by the installation of Vista SP1. Why? I dunno, but I don't think it was a smart decision. With a few contrived steps, it can be reinstalled.

Download the

Windows Server 2008 Remote Server Administration Tools for Windows Vista Service Pack 1 from

Install it, and then follow the instructions below. It has to be enabled in the Control Panel !?!

Not impressed.

Monday, March 9, 2009

Intel vPro/AMT

This is the coolest thing since sliced bread. Imagine being able to cold power a cycle a PC remotely, even if Windows has crashed. Or accessing the BIOS from somewhere other then in front of your computer. Or loading whatever image you feel like, even though the network drivers for the machine don't work.

Intel vPro/AMT. Uber cool. Coming soon to a lab near you.

Friday, February 6, 2009

Automating the building of BartPE

So I got really tired of building BartPE manually. So in short, (to be encapsulated for more permanent and official documentation later) is a summary of how to build the various pieces of BartPE.

Build the "original" version using PEBuilder313
Run pebuilder.exe. Build with appropriate plugins and WinXPSP2 files. Skip the CD write option and burn the ISO. The only files of value are in the BartPE folder anyways.

Run InfCacheBuild.cmd
Cleans up the inf files and makes it load faster.

Run PatchSP2.cmd
This tranfers the new build to the PXE folder structure, copies in the required W2KSP1 files, and fixes the open file security warning problem for bartpe.exe.

Run CreateSDI.cmd
This automates the highly manual process of creating the SDI. SDIMgr is used to create the "BLOB" that will become the virtual disk. BLOB is a binary large object. Disk is mounted using a command line form of SDILoader. Diskpart is used to partition and assign a driver letter. Disk is formatted. Files are loaded using robocopy. Disk is unmounted using a command line form of SDILoader.

Run CreateUSB.cmd
To test the build, we need to put it on a USB key. This script will format and copy the relevant files on a USB key.

Issues with BartPE

It's that time of year again. Another machine model, another retool of BartPE. This time it the Dell Optiplex 960. Unassuming machine, really. But wait until you start playing with it...

1) I had forgotten about this, but am constantly reminded this time of year. BartPE will BSOD if the SATA operation is not set to RAID Autodetect/ATA. Applies to 755 & 960. For your reference, the error is stop: 0x0000007b.

2) Unrelated issue. Tried building BartPE with W2K3SP1 as a base as recommended in some circles. Nada. Has issues with Intel 825xx net drivers, specific to W2k3. Broadcom's XP drivers work fine. If you're lucky, it causes the occasional BSOD on both the 755 and 960.

3) Had to go back to WinXPSP2 as a base because the previous didn't fly. Got tired of doing all the steps manually which spawned my next project... Automating the build of BartPE.

4) Booting from usb using an ISO is officially broken. :-( Oh maybe that's where I saw the BSOD. Which makes the previous step even more important. For testing, I now have to either boot from CD (yuck) or change the format to SDI for quick testing.