About the author

Jason Huitt is on the Windows Group with Academic Computing and Networking Services at Colorado State University.
E-mail me Send mail

Authors

Tags

None

    Blogroll

      Disclaimer

      The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

      © Copyright 20082010

      Decoding CHM Files

      Somewhere in the neighborhood of about 2006, Microsoft's HTML help viewer application stopped gracefully opening CHM (compressed HTML help) files consistently.  I've noticed this problem on XP, Vista and Win7, across rebuilds, across browser versions, nearly universally.  There's a lot of advice out there about how to make Windows open CHM files correctly when faced with a content pane in the viewer application that reads "Navigation to the webpage was cancelled", however on my Windows 7 x64 workstation nothing worked.  A quick Google search this morning yielded a handy little utility called CHM Decoder that will extract the HTML content from a CHM file, allowing you to view the contents within a web browser.  Great stuff!

      http://www.gridinsoft.com/chm.php


      Categories: IT | Windows
      Posted by Jason on Friday, February 26, 2010 12:51 PM
      Permalink | Comments (0) | Post RSSRSS comment feed

      Powershell Goodies - Processes

      To view processes on a computer and their current physical memory consumption:

      Get-Process -ComputerName <name> | select Name, WS | sort WS

      • Omit ComputerName to get processes on the local machine
      • WS = Working Set - returned in KB, size of pages in physical memory for a given process
      • VM = Amount of virtual memory (page file) committed for use by a given process
      • CPU = Amount of process time in use by a given process (for all available processors)

      Categories: IT
      Posted by Jason on Wednesday, February 10, 2010 2:16 PM
      Permalink | Comments (0) | Post RSSRSS comment feed

      Building a WinPE 3.0 Image from Scratch

      1. Download the Windows Automated Installation Kit for Windows 7 (WAIK) - http://www.microsoft.com/downloads/details.aspx?familyid=696DD665-9F76-4177-A811-39C26D3B3B34&displaylang=en 

      2. Start | All Programs | Microsoft Windows AIK | Windows PE Tools Command Prompt -> This command prompt preloads the necessary folders into the path variable for easy image editing. Make sure to Run as Administrator!

      3. copype.cmd <x86 | amd64 | ia64> <destination folder to create, ex: z:\PEBuild> This script creates a workspace for manipulating WinPE images prior to burning a CD or copying to a flash drive.  The ISO folder contains the files used for both.  The file ..\PEBuild\ISO\Sources\boot.wim is the actual WinPE image that the bootloader extracts to a RAMDisk when WinPE boots.  The copype.cmd also creates a second copy of the WIM called winpe.wim in the root of the PEBuild folder - this provides you with an easy way to make a "start fresh" with a new WinPE boot image if necessary.

      4. To place tools or files within the ISO (on CD) or on the flash drive you will boot from, copy the files to the z:\PEBuild\ISO folder.

      5. To place tools or files within the RAMDisk that WinPE boots from (which is useful to retain access to tools, such as Imagex, when you pull the flash drive or CD from the computer upon which you will boot into WinPE), use this command: imagex /mountrw ISO\Sources\boot.wim 1 .\mount  ->  This mounts the WIM file to the mount folder within your PEBuild workspace. (Note that DISM.exe can be used in place of Imagex if you prefer.)  This step is also necessary to perform driver servicing on the WinPE boot image, as discussed in step 6 below.

      6. To load additional drivers into a your WinPE image, use the following command after proceeding with step 5 above): Dism /image:<path_to_image> /Add-Driver /Driver:<path_to_driver.inf>  Note that this command must be run against a mounted WIM file (performed in step 5 above).  For more on driver servicing and WinPE, see the following article on TechNet: http://technet.microsoft.com/en-us/library/dd799258(WS.10).aspx.

      7. When you are finished editing the WIM file, do this: imagex /unmount /commit .\mount

      8. Make sure to copy ImageX to your ISO folder so you can apply an image to a hard drive.  Use this command: copy "c:\Program Files\Windows AIK\Tools\x86\imagex.exe" z:\PEBuild\ISO

      8. WinPE is now ready to go.  Either burn the entire contents of the ISO folder to a CD marked as bootable (step 9), or copy the entire contents to a flash drive (follow the steps listed here to prepare your flash drive).

      9. If you intend to create a bootable CD, you'll need to use the following command to create an ISO from the files in the ISO folder (using the PE Tools Command Prompt): oscdimg -n –bz:\PEBuild\etfsboot.com z:\PEBuild\ISO Z:\PEBuild\winpe_x86.iso  You can then burn the resulting ISO to disk.


      Categories: IT | Windows | WinPE
      Posted by Jason on Thursday, January 07, 2010 3:35 PM
      Permalink | Comments (0) | Post RSSRSS comment feed

      Why Hyper-V is Good, and Memory Over-Commit is Bad

      Recently while meeting with a vendor some skepticism was expressed as to our shop's decision to go with Hyper-V from Microsoft over a virtualization solution from VMware.  The vendor rep mentioned memory over-commit as his reason for preferring VMware over Microsoft's solution, which instantly put me on the defensive.  While I admittedly work for the "Windows Group", I try to stay as OS-agnostic as possible.  As with all things in life, it's all about the right tool for the job - and I won't ever and have never claimed that Microsoft software is the "end-all, be-all" fix for what ails you.

      But this particular comment about memory over-commit was preceded by the statement “you guys are pretty much the only folks we know of who are doing Hyper-V”, so on this occasion I was particularly sensitive to this argument.  I responded with the certainly-obvious point that “I would never want to put into production a system that had a potential to blow past the top of the available memory space in the event of an unplanned failover, as that to me is a single point of failure.”  Naturally the vendor rep rebutted with standard lines about “getting the most out of the hardware” and more drivel which I completely ignored – in much the same way that my point was ignored by the rep.  It’s unfortunate that many of us in IT which do claim to be agnostic still fall into our partisan ways when put on the spot, myself included.

      Today I came across an article on the Hyper-V vs. VMware topic by one of my favorite bloggers, James O’Neill.  Mr. O’Neill (who does work for Microsoft, and thusly wears his bias on his sleeves) eloquently made the technical argument for my point much more coherently than I’ve seen.

      Memory over-commit. Vmware's advice is don't do it. Deceiving a virtualized OS about the amount of memory at its disposal means it makes bad decisions about what to bring into memory - with the virtualization layer paging blindly - not knowing what needs to be in memory and what doesn’t. That means you must size your hardware for more disk operations, and still accept worse performance.” - http://blogs.technet.com/jamesone/archive/2009/12/21/drilling-into-reasons-for-not-switching-to-hyper-v.aspx

      So I’ll promptly be inserting this exact language into my defense of our decision.  Aside from the built-in goodness of high availability (driven by proven Windows Failover Clustering technology) (which, BTW, is free – check out Hyper-V Server!), the lack of over-commit is a huge win when comparing platforms.  It prevents novice admins from making a major mistake when designing a virtual infrastructure, and forces admins to provide adequate memory on hosts for the virtualized workloads in question.  We in higher education understand better than most the pains of slashed budgets and “do more with less” directives…  But when it comes to the pursuit of five-nines, in my book you can’t leave a critical factor like memory availability to chance and expect great results.

      Besides, I would posit that no professional system administrator worth his weight in DVI dongles would ever take advantage of memory over-commit in a production system.  And as a vendor, if your go-to argument for VMware over Hyper-V is memory over-commit you’d better do your homework - next time I’ll be much better prepared to make my point.  After all, VMware’s own advice is “don’t do it”.

      PS: For the record, I am in the process of bringing up two VMware ESXi 4.0 nodes for some non-Windows workloads.  It's the right tool for that job, at least as of December 2009.


      Categories: Hyper-V | IT
      Posted by Jason on Tuesday, December 22, 2009 4:50 PM
      Permalink | Comments (0) | Post RSSRSS comment feed

      My Very Own Microsoft Knowledge Base Article

      This is the KB article for the bug I found in Windows Server 2008 Failover Clustering.  Three months of hard work finally pay off!

      http://support.microsoft.com/kb/970529 - The volume GUID may unexpectedly change after a volume is extended on a Windows Server 2008 failover cluster node


      Categories: Hyper-V | IT
      Posted by Jason on Monday, July 20, 2009 4:36 PM
      Permalink | Comments (0) | Post RSSRSS comment feed

      Installing Updated NIC Drivers into a WinPE Image

      1. Download the appropriate driver.  You'll need an INF file to complete the install.
      2. CD to the root of your WinPE build folder. 
      3. Mount your WinPE boot.wim (imagex /mountrw .\ISO\sources\boot.wim 1 .\mount).
      4. Install the driver (peimg /inf=<full path to INF file> .\mount\windows)
      5. Unmount the WinPE image (imagex /unmount .\mount /commit)
      6. Optional: Create a new ISO for burning to CD (oscdimg -n -b<path to etfsboot.com> <file name of ISO to create>)

      Categories: IT | WinPE
      Posted by Jason on Friday, October 31, 2008 3:19 PM
      Permalink | Comments (0) | Post RSSRSS comment feed

      Updating a WinPE Image with Hyper-V Integration Components Drivers (Hyper-V RTM)

      Here, are instructions for integrating the Hyper-V RTM (!) Integration Components device drivers into a WinPE image.  This is based on Mike Sterling's post on the same topic, however the scripts below have been updated to use RTM Hyper-V bits.

      1. Create your WinPE build folder, if you haven't already done so.  See Building a WinPE Image from Scratch for help (follow only steps 1 through 5).
      2. In the root of your build folder, download the appropriate integration batch file from the bottom of this post.
      3. Locate Windows6.0-KB951634-x86.msu.  This file is on the c:\windows\system32\vmguest.iso, located on any Hyper-V enabled host.  The update file should be located in the Support folder of the ISO.  Copy this file to the root of your WinPE build folder - the same location as your integration batch script.
      4. From the Windows PE Tools Command Prompt, execute the integration script.  If everything went correctly, you'll see "PEIMG completed the operation successfully." listed seven times in the output of the script.
      5. At this point your WinPE build is updated.  Resume steps 7 through 9 in Building a WinPE Image from Scratch to complete the process.

      If you have questions about the above, please e-mail me at jason.huitt@colostate.edu - I've run both of these scripts successfully as of today, and now have working x86 and x64 WinPE ISOs.  My trust WinPE flash drive has been updated as well.  You'll love the integrated mouse and NIC support when building Hyper-V VMs.  No more Legacy Network Adapter!

      Integrate_x86.bat (1.10 kb)

      Integrate_x64.bat (1.12 kb)


      Categories: Hyper-V | IT | Server 2008 | Windows | WinPE
      Posted by Jason on Tuesday, October 21, 2008 4:04 PM
      Permalink | Comments (0) | Post RSSRSS comment feed

      Windows Mobile 6.1 on the Sprint Samsung Ace SPH-i325

      A breath of fresh air: Windows Mobile 6.1 for the Samsung Ace.  Finally.

      http://www.samsungmobileusa.com/i325/upgrade/

      I'm blogging this from my laptop, tethered to my Ace.  It's no long necessary to "unlock" the device, as they've set the security profile correctly to allow installation of apps.  To tether a newly updated Ace:

    • Install and run a Registry editor.
    • Locate HKEY_LOCAL_MACHINE\Comm\InternetSharing and remove the value "InternetSharingEx.dll" from the key "Extension".
    • Reboot the phone.
    • Attach the Ace to your laptop.
    • On the Ace, go to Start and "Internet Sharing", and hit the Connect softkey.  Your laptop should see a new NDIS device, and automatically connect to the Internet.

    • Categories: IT | SmartPhone | Windows
      Posted by Jason on Thursday, October 16, 2008 9:00 PM
      Permalink | Comments (0) | Post RSSRSS comment feed

      Processor Utilization and Hyper-V

      http://cameronfuller.spaces.live.com/Blog/cns!A231E4EB0417CB76!1318.entry

      Guest OS processor utilization will not affect processor utilization on the host OS, per se.


      Categories: Hyper-V | IT | Server 2008 | Windows
      Posted by Jason on Monday, October 13, 2008 9:10 PM
      Permalink | Comments (0) | Post RSSRSS comment feed

      Activating Vista Without Access to Explorer

      Today I encountered a volume-licensed Vista box that had not been activated for more than 180 days.  I was under the impression that Reduced Functionality Mode (RFM) had gone away with Service Pack 1, however when I attempted to log into the box, I was greated with an activation dialog box, and clicking cancel returned me to a log on prompt.  Here's how I got back around the problem...

      • From the Activation dialog, click on one of the Help links.  This will pull up the Help and Support window.
      • In Help and Support, do a search for "command prompt".  One of the returned links will show you how to open a command prompt, and will provide a link to do this for you.  Go ahead and open the command prompt in this manner - while I was in this activation mode, I was unable to use Ctrl+Alt+Del to pull up Task Manager, and had to get to a place where I could actually do some work.
      • If you need to connect to a VPN in order to access your company's KMS server, do so now.
      • In order to manually activate Vista from the command line, you have to run slmgr.vbs from an elevated command prompt.  How do you launch an elevated command prompt without right clicking on an icon to launch a UAC prompt?  Here's a nifty trick:
        • Run "control schedtasks" to bring up the Task Scheduler interface.
        • Create a new task to run cmd.exe without any triggers.  Also make sure to check the option for "Run with highest privileges" on the General tab.  This will set the task up to run with elevation.
        • Right click your newly created task and click Run.  Lo and behold, you've got a command prompt running with elevation!  Note "Administrator: taskeng.exe" in the title of the command prompt window.
      • Now that you are elevated, run "cscript slgr.vbs -ato".  Assuming this volume-licensed copy of Vista had been previously activated, you should now be re-activated.
      • Log off using the "logoff" command, and then log back in.  At this point you should be staring at your desktop once again.

      Categories: IT | Windows
      Posted by Jason on Wednesday, September 24, 2008 1:33 PM
      Permalink | Comments (0) | Post RSSRSS comment feed