Finding Out What Is BSOD’ing Your PC

If you have ever had a BSOD (Blue Screen Of Death) then this might be for you. If you’ve ever read any of what is on that BSOD then you know how confusing they can be, and if you start researching the stop errors it seems you rarely find an answer you your issue. Well there is some good news, whenever your computer crashes in this manner it attempts to write a memory dump to the hard drive. This dump file can be opened up and can 90% of the time tell you what was going on and what your computer thinks actually crashed the system. No software to buy and other then following a few steps it isn’t all that hard. What you need is the WinDebug tool that Microsoft provides and a little bit of knowledge on how to use this tool.

Read the rest of this entry »

SysPrep in Depth – Part 6 – Bringing Parts 1-5 Together

Taking Parts 1-5 and Creating your First Image

Now we have everything lined up we can talk about using a batch file to bring this all together. In this sample script I make use of the optional tool sync.exe from Mark Russinovich and do a few other things we have yet to talk about. Read over the script once and then I will explain as many questions as I can.

@echo Off
cls
ECHO.
ECHO Before continuing please be sure that the pre-sysprep steps were followed.
Read the rest of this entry »

SysPrep in Depth – Part 5 – Customizing Sysprep.inf

Customizing Your Sysprep.inf For Use  (Last updated 5/15/08 )

-Understanding the sysprep.inf

I am know there are other sections to the sysprep.inf then what I will use in this example but in my environment I only use these so I will stick to these. Many of these are also optional and many don’t seem to have an effect in my environment but I will still explain them to you. You can find more resources on the sysprep.inf parameters on the Microsoft KB article 298491 and on Microsoft’s Windows 2000 Deployment Guide.

I would suggest running setupmgr.exe in the sysprep folder to create a base sysprep.inf file and to then edit it by hand from then on as setupmgr.exe can delete some of your customizations.

Read the rest of this entry »

SysPrep in Depth – Part 4 – Cleaning Up Unneeded Drivers

Cleaning Up Those Unneeded Drivers

-Why We Need To Clean Up Our Drivers

When Windows XP detects new hardware it starts looking for drivers in some default areas before it prompts the user for drivers. This feature is great, but there is one huge setback to it, companies that write driver inf’s that are “generic”. I will get into PNPID’s in another issue but for now lets just say that company A writes a driver for a video card with the PNPID of 1234-1234-1234-1234 and also writes a driver for the PNPID 1234-5678-5678-5678. The then come out with an inf that has a generic PNPID contained in it for all 1234-xxxx-xxxx-xxxx cards. This is very common for hardware makers to do as they now have one inf file that often even points to the same .dll and .sys files and will “work” with any of their hardware. They do this so that all they have to do is update the .dll and .sys files and hand them off to you and they will always work, it’s less work on their side. The issue with doing this is that card 1234-5678-5678-5678 does require its specific driver and not this “generic” driver, see where this is going yet? So we have a computer with the video card PNPID of 1234-1234-1234-1234 and we clone it to a computer with a video card with the PNPID of 1234-5678-5678-5678, what does Windows XP do? First off it will go looking for the driver and find that the driver that is already installed will work for this new card and will start using this generic driver. Windows XP has now installed the wrong driver because the driver said it was good for this card. Again, I will go into more depth with this in a later issue but this is one of the underlying issues for cloning to different sets of hardware.

- How We Prevent This Issue

So how do you get around this? Well the first step would be to delete all the cached files on the base image PC. There are two folders in which cached drivers will often be found, c:\Windows\System32\ReinstallBackups and C:\Windows\System32\DLLCache. Using some some quick command lines we can easily delete these temporary files.

Read the rest of this entry »

SysPrep in Depth – Part 3 – SysPrep.inf and HAL’s

- What Is The HAL Not Who?

If you do not know what the HAL is please see this Microsoft KB article or this WikiPedia article to get an overview of the HAL. I will not go into much detail as to what the HAL is and how it is used so please research this before messing with it, or if you have some test computers to clone to mess with it and see what happens and if you can find the right mix by guessing.

- UpdateUPHAL, UpdateHAL And Their Purposes

The UpdateUPHAL and UpdateHAL sections in the [Unatennded] section of sysprep.inf can be very confusing and extremely hard to research. Microsoft offers some basic explanations of this value on their TechNet site but still leaves most people questioning what it is they need to be doing with the keys and what the keys even do.

Basically these two values in sysprep.inf allow SysPrep to upgrade or downgrade your HAL cloning to hardware of a different HAL version. As I mentioned in my first part of this series it is always best to pick older hardware and clone to newer and not vice-verse, this is one reason why you do that. This is personal preference since you can go backwards but I have better luck moving to newer HAL’s and not older. By specifying one of these keys you can move an image from a non ACPI computer to a Multiprocessor ACPI computer or a Multiprocessor ACPI down to a UniProcessor ACPI computer.

Read the rest of this entry »

SysPrep in Depth – Part 2 – Verifying SysPrep And Driver File Permissions

Setting File Permissions On Your SysPrep and Drivers Folders

Now you should have a ‘drivers’ folder and a ’sysprep’ folder in the root of the system drive. The driver folder should contain all the drivers for your computers in some sort of structure with a folder for each driver. Now we should check permissions on these files just to make sure SysPrep has access to every file it needs, we wouldn’t want a driver being half installed during the “Detecting plug and play” hardware section of SysPrep.

We can use the cacls.exe command to accomplish this quickly and easily.

cacls c:\sysprep /e /p "everyone":r
cacls c:\drivers /e /p "everyone":r

Although this step seems like it isn’t needed I have found many cases where this step is needed. Weird isn’t it? SysPrep.exe runs as the system user after reboot so how in the world could it not have access to files? Well I have no clue as to how to explain the issue but I do know that I was running into this enough to make me script out this fix. Feel free to do this step or skip over, your call.

SysPrep in Depth – Part 1 – Adding Drivers To Our Image PC

Preparing a PC to be Imaged with SysPrep

When trying to clone one computer to different sets of hardware using SysPrep there are a few steps you should take to help clean up the image computer and get it ready for multi hardware setup. I do realize that Vista does not use SysPrep anymore and this is “old news” but I know that it will still be useful to many people out there. Throughout this series I will talk about may parts to SysPrep, not just using it with different hardware, so if you are using SysPrep in your environment it might be a good thing to read over all of this once and see if you can apply any of it to your network.

So without any further ado here we go.

Lets explain how Windows XP and SysPrep interact and how to get them working properly together. Keep in mind that you need to pick and older PC as it is easier to move forward in technologies then it is backwards and that this method works in our scenario but might need further tweaking in your environment.

Adding Drivers to our Image

- Adding Default Windows Drivers

When Windows XP is first installed it has a large resource of drivers on the XP cd to choose from, but when you are SysPreping it no longer has access to these drivers. To resolve this issue we grab a Windows XP cd and copy the i386 folder to our SysPrep folder. Once finished you should have an i386 folder in your sysprep folder containing all the contents of the i386 folder from the CD.

Read the rest of this entry »

SQL Troubles and New Servers

Towards the end of last week I did everything I could to make this week easy going and to get us caught up at work so that I could take a day off to get caught up with school work. Well no matter how much you prepare for something you are destined to be so totally unprepared that right when things start to look up you find out that you were preparing for the wrong things. Despite all my work last week to make this week easy I was surprised today by one of our SQL databases going totally corrupt. We are unsure why the server locked up but whatever happened took out LanDesks DB with no chance of recovery. Moving the DB from MSDE to our MSSQL 2005 server was on a long list of things to do and not very high in the list since it was doing great on the current system. Of all thing to go wrong this was on the top ten and caused me to be on the phone with LanDesk tech support for 3 hours. What it boiled down to was LanDesk was currently Making some changes to the DB when the computer locked up and thus when the reboot occur ed it caused the DB corruption. So where was our backup of the DB you might as? Right under moving the DB to the other server in our list of course… By the time I left work we had a new DB up and running and had computer connecting to the server again but we still have a fair amount of reconfiguration left to do. I will admit though, this will give me a chance to train our other techs on LanDesk and give them a chance to see LanDesk from the basics to in-depth configurations.

On other note, I am buying a new server. :) I am getting a Visionman / AMD64 X2 4200+ / Socket AM2 / 3GB DDR2-800 / Dual 80GB SATA-II HDDs / Hardware RAID 0 (RAID 0,1,5 capable) / Gigabit LAN / 2U Rackmount Server. After years of using scrap computers and piecing together everything I am finally going to do one of three servers the right way. What I have in mind for this new server is Exchange Server 2007, SharePoint and maybe a virtual machine running a small domain server as a backup. I have been talking about doing this for months and when I found this server with a 2 year on-site warranty after the one year manufacturer warranty for only $850 I was all over it. I normally don’t worry about warranties for things I buy for home but I figure this server will be my first big purchase and I might as well protect it and at $850 total how can you go wrong. This will be my first server running 64bit and with any luck it will be followed by another server similar to this within the next few months. I will also be accompanying this new server with a new static IP and moving from No-IP to GoDaddy to help some of my hosting issues.

Trinity Rescue Kit

I found a new tool for helping customers out and I hope to try it the next time I have to drop by someones house. Trinity Rescue Kit is a small linux cd that currently in the development stages but looks like it has great promis. Currently is contains 1 antivirus scanner on the cd with another 4 that it can download, 2 rootkit detection kits (both unix based) and some great partition and hard drive recovery tools. I have been running some quick test solutions with 3.2 build 279 and it’s easy to use and very powerful for what I need it for. There is a 3.3 build 299 but I am experiencing very log boot times and when looking through the forums it seems this is a know issue but build 299 is still in beta so I am not to disappointed. Once you get past the boot times it still is a great beta! I currently use a custom BartPE cd and VistaPE cd for all my work and wouldn’t mind having another tool for those computers that are giving me problems. If you need to remove viruses or recover hard drives and files I would suggest you take a look at this cd as it is an easier solution to create then a PE cd with this many up to date antivirus scanners.

Java, ISScript and MSI’s! Who is thinking this stuff up???

I am going to let a little steam out today over Java and InstallShields ISScript versions and backward compatibility or lake there of.  Let me start with Java and the endless versions and limited hard drive space. The idea is that you can “write software on one platform and run it on practically any other platform”, “create programs to run within a web browser and web services”, “develop server-side applications for online forums, stores, polls, HTML forms processing, and more”, “combine Java technology-based applications or services to create highly customized applications or services” and “write powerful and efficient applications for mobile phones, remote processors, low-cost consumer products, and practically any device with a digital heartbeat”. But at what expenses to the end user?

Here at work we have to install 3 versions of java just to get our apps to work correctly. The newer Java versions are not backwards compatible with the older ones, and if you get a developer that writes on the new codebase you now have to install that codebase. This all makes since for the most part, but why is there no backwards compatability, and why is there always some new version that fixes some security hole and instead of releasing a small patch you now have to update the whole thing? But wait, you can’t just update the version with the bug, because if someone coded against that but you now have to support it… So now you have a whole new version on your computer as well. Read the rest of this entry »