Author: Mark Wilson

  • Batch file command reference

    Even though modern versions of Windows have rich scripting capabilities I regularly find myself writing batch (.bat) or command (.cmd) files for automating system tasks, sometimes during migrations from older versions of MS-DOS or Windows which do not have the same command set. I generally consider my batch file writing skills to be pretty good, but I have found the Computer Hope Batch File Help website to be a useful resource for checking syntax between different operating system versions.

  • Gartner’s top predictions for 2005 and beyond

    I’ve been reading Gartner’s top predictions for 2005 and beyond.

    Some of the predictions, make interesting reading, for example the rise in “microcommerce” opportunities and the prediction that “by 2009, counterfeit reality will account for at least one major media and political scandal” (scary when translated into real-world connotations).

    Of more interest to me directly are the predictions that:

    • “Cyberattacks against software flaws will double by 2006” (although Gartner note that attacks against misconfigured software will actually decrease because vendors are beginning to ship software with more secure default configurations).
    • “By 2007, three of the top 10 PC vendors will exit the market” (IBM have already sold their PC business since the original Gartner research note was written in November 2004).
    • “By 2008, the technological differences between PCs, mobile devices, e-books, TVs and cellular phones will be eradicated”.
    • “By 2015, 40% of today’s IT job roles will be lost to automation”.

    If that last prediction is correct, it looks like I’d better start thinking about retraining as a plumber/electrician/builder…

  • Discovering unknown devices in Windows

    Whilst developing my unattended Windows XP build, I came across a number of devices that were not automatically detected by Windows.

    Sometimes, right-clicking the unknown device in Device Manager and selecting the Update driver… option allowed Windows Update to connect to the Internet and locate updated drivers (which in turn identified the device and allowed me to download and integrate the OEM drivers into the Windows XP installation source).

    On other occasions it was not so simple, and I needed to do some research to identify the device using the PCI device instance ID (found on the details page of the device properties).

    A couple of years back I was introduced to Craig Hart’s PCI and AGP bus sniffer. I could have just run the utility, but in this case I chose to search its companion file (pcidevs.txt) for the vendor and device PCI IDs. Using this technique, I was able to identify my unknown device as the Broadcom (vendor 14E4) BCM4306 802.11g Wireless NIC (device 4320), which is also known as a Dell Wireless 1350. Once I had that information, all that was required was to download the drivers for integration.

  • Make your own iPod advert

    I confess.

    I don’t own an iPod.

    I think they look great, but I just don’t need one (and I have concerns about the use of Apple’s proprietary AAC media format).

    I like technology.

    I am also a photographer, which makes me passionate about some of the fantastic images I see around me every day – like some of those featured in advertisements – and I think the silhouetted Apple iPod ads are cool.

    Now there is iPod My Photo, which lets you turn any image into a mock iPod advert. You can choose one of 5 background colours, add a caption, and optionally add an iPod into the photo. Look closely and they’re not just 2-tone – check out the samples to see the shadow details etc.

    All I need to do is select the right photo…

  • Microsoft’s new malware removal and anti-spyware products

    This week, alongside the January security updates, Microsoft released the first version of its malware removal tool, called the Microsoft Windows Malicious Software Removal Tool (MSRT). New versions will be released on the second Tuesday of each month (with the monthly security updates) and each version will be cumulative.

    Note that this is not the Microsoft Windows AntiSpyware tool (a separate beta of that product was released last week, based on the anti-spyware application gained in the purchase of Giant Company), nor is it an anti-virus tool – MSRT is simply a rollup of all the malware removal utilities that Microsoft has previously released.

  • Problems with certain NICs and a RIS-based Windows XP installation

    After my hard disk failure last month, I decided to resurrect a project that I had shelved some time ago – implementing an unattended setup for my PCs at home. I have a variety of computers from HP (Compaq), IBM and Dell, which makes things slightly more complicated than it might otherwise be (although not impossible), so this was an opportunity to implement some of the business desktop deployment (BDD) technologies that I practise at work to implement a standard operating environment (SOE) and allow me to rebuild PCs at will.

    My previous experience with unattended installations has largely been on the server side, basically amending and appending OEM installation scripts (e.g. Compaq/HP SmartStart or the HP ProLiant Essentials Rapid Deployment Pack (RDP)). This time I had a plethora of drivers to consider, and a limited (zero) budget. To allow for a repeatable, customisable, build I decided not to use any imaging technologies but instead to create a standard unattended setup, including all the drivers needed for the various PCs and a common set of applications. One thing I could rely on the presence of was Pre-boot eXecution Environment (PXE)-enabled workstations, so I set up and configured Microsoft Remote Installation Services (RIS) to serve my Windows XP + SP2 installation “image” (not really an image, but that’s the RIS terminology).

    Incidentally, the most complete resource for information on creating unattended builds that I am aware of is the Microsoft Software Forum Network’s “Creating the Ultimate Unattended XP CD”. Although CD based, this gives much of the information needed for a successful RIS-based installation.

    Everything was looking good until I tried to perform a PXE network service boot and connect to the RIS server. I could see that my DHCP server was issuing IP addresses to clients but they received an error:

    PXE-E53: No Boot Filename Received

    Basically, the PXE clients couldn’t find the RIS server. DHCP was being served from an ADSL router and I couldn’t find any way to configure the router to redirect PXE clients. Logically, interaction between the PXE client, the DHCP server and the RIS server should not have been affected by the router because PXE uses DHCP broadcast requests and all the computers were all on the same subnet but once DHCP was migrated to the RIS server, the error disappeared and the RIS Client Installation Wizard ran as expected. Since then, I’ve found Microsoft PSS’ Technical Guide to Remote Installation Services, which suggests various troubleshooting actions but for now it works, so maybe I’ll investigate further some other time.

    The next issue was that Windows XP setup failed as the network drivers for the Broadcom BC570x NIC in my Dell Latitude D600 were not available from the Windows XP installation source:

    The operating system image you selected does not contain the necessary drivers for your network adapter. Try selecting a different operating system image. If the problem persists, contact your administrator. Setup cannot continue. Press any key to exit.

    Microsoft state that a hot fix is required to resolve this issue; however the Broadcom driver FAQ gives an alternative resolution which involves editing the B57WIN32.INF setup information file. I didn’t want to do this as it would break the digital signature and I would prefer to construct the build using signed drivers only. Instead, I used the latest drivers (v7.86) from Broadcom rather than the Dell-packaged version and once I had integrated the network drivers with the RIS installation source, deleted any instances of precompiled setup information (.PNF) files and restarted the Boot Information Negotiation Layer service, I was able to commence my unattended Windows setup.

    This time, a new error halted text-mode setup:

    File b57w2k.sys caused an unexpected error (21) at line 3788 in d:\xpsprtm\base\boot\setup\setup.c. Press any key to continue.

    Some posts in the Bink.nu and MSFN forums led me to a solution for this by copying the Windows 2000 version of the drivers (B57W2K.SYS) to the Windows XP installation source \i386 folder alongside the Windows XP driver (B57XP32.SYS) and the setup information file (B57WIN32.INF).

    Once the Dell PC was working, I had the same issue with an IBM ThinkPad T40 with an Intel PRO/100 VE card and so it seems logical to assume that this issue may apply to a variety of NICs.

    For the BC570x, a Windows User Group (Nordic) article which discusses integration of Intel and Broadcom drivers with RIS images suggests rewriting the B57WIN32.INF file to replace all references to B57W2K.SYS with B57XP32.SYS, but again, I avoided this to prevent issues with unsigned drivers. Intel’s solution to installing PRO/100 or PRO/1000 NICs via RIS requires a further download but I got it working by applying the same resolution as for the Broadcom drivers – i.e. using IBM’s distribution of the Intel drivers (v7.0.28.0) and including the Windows 2000 E100BNT5.SYS driver in the Windows XP installation source \i386 folder for text-mode setup.

    I should point out that it was only necessary to add these network drivers to the \i386 folder on the Windows XP installation source in order to use the NIC to copy files during setup and it is still necessary to add OEM device drivers to the Windows XP installation source for all undetected devices in order to allow the drivers to be used during the plug and play (PnP) section of setup.

    After a couple of days downloading, integrating and testing drivers, my RIS-based Windows XP installation works for all of my computers and now I can focus on the finer points of the build, tuning the Windows XP installation and adding applications to my SOE.

  • Calculating download times

    Earlier today, I found a handy calculator for file download times (assuming a perfect connection at the stated speed – actual performance will vary due to retries, latency, transmission protocol requirements, and other concurrent traffic).

  • More problems with a Dell Latitude D600

    Last weekend, I walked into my home office to see the notebook PC that I use for work (a Dell Latitude D600) rebooting and reporting that it couldn’t find its primary hard disk. Not good news.

    I tried freezing the disk (see also 200 ways to revive a hard drive) but to no avail. The drive just would not spin up.

    Thankfully, I had a backup (although not as recent as it should have been), and I had supplied my current client with a CD with most of my recent work, with the remaining items still being retrievable from my e-mail (I frequently tell people not to use e-mail as a filing system, but I sure am glad that I still had all of those attachments there…). It seems that all I lost was the correct time/date stamp on some files and my meeting notes from Microsoft Office OneNote.

    From talking to colleagues, this is not the first time this has happened – we have had at least three of these PCs suffer the same fate, on top of my nightmare experience getting the Bluetooth card replaced in the same machine earlier this year (which seems to be another common fault). I do understand my IT Manager when he tells me why we buy Dell (good specification at reduced price relative to HP, IBM, Toshiba, etc.), but if we also take into account my lost time, then maybe the overall cost is more expensive that it first appears.

  • Why the EU’s sanctions against Microsoft are wrong

    I don’t normally bother to read about Microsoft’s latest legal battle when yet another competitor cries out that nobody buys their product because it’s free/cheaper/better/more widely available* (*delete as appropriate) from Microsoft, but yesterday’s rejection of Microsoft’s appeal against European Union sanctions concerns me greatly.

    Forget the €497m fine – Microsoft can afford it!

    Forget the trade secrets – Microsoft’s crown jewels are Windows and Office – most of that source code is still safely locked up in Redmond. Besides which, perhaps we’ll get a better quality of third-party software if it works more closely with Windows.

    What worries me is that Microsoft has been forced to ship a version of Windows without Media Player.

    It may sound inconsequential but its the wider ramifications of this ruling that concern me. Last week, Microsoft bought an anti-spyware company. Many believe that this sort of technology should be bundled with the operating system (more so than a media player), but this latest legal ruling in Brussels means that Microsoft now needs to be wary when including any new technologies in Windows, just in case a competitor cries foul.

    The unbundling of Windows Media Player achieves nothing – those of us who use it will go and download it from Windows Update instead. Real Networks are upset because they only have a tiny proportion of the market. Boo hoo! Apple’s proprietary iTunes service is tied to the iPod meaning that they have a huge percentage of the portable digital music market sewn up, but as far as I am aware no-one is challenging them in court for that (only for charging more for downloads in the UK than elsewhere in Europe). My past experience of RealPlayer is that it is unstable, that I can’t download it without giving away my e-mail address and that it keeps popping up messages on my desktop. I only use it at all because I need it for certain websites that only offer digital media content in RealPlayer format (i.e. the BBC Radio Player). That is the crux of this issue – consumers will use whatever player they need to access their content, be that Apple QuickTime Player, Real Networks RealPlayer or Microsoft Windows Media Player – it often depends on the technologies used by the website serving the content, not what is bundled with the operating system.

  • Setting the default NumLock state in Windows at logon time

    My current client has a large number of user accounts with names that are mostly numerical. We discovered that, no matter what the BIOS settings were, NumLock is off by default in the Log On to Windows dialog; however, it is possible to change this as described in Microsoft knowledge base article 154529.