Microsoft cloud engineer - SharePoint, Office 365, Azure, DotNet, Angular, JavaScript.
Microsoft cloud engineer - SharePoint, Office 365, Azure, DotNet, Angular, JavaScript.


Excel fill down for easy admin scripting

As an admin I use several scripting languages.    I find one common trick helpful across them all.    It’s amazingly simple and easy to adapt – Excel Fill Down.    Maybe you already use this and that’s cool.   But for those that don’t you’ll want to give it a try.




Simply copy/pasting output from Command Prompt, SQL Studio, or PowerShell can help build an Excel worksheet of inputs.   Simple string concatenation in Excel can build commands in bulk.   Fill down then copy/paste back to your server to execute.    I realize with SharePoint 2010 this could be a moot point considering how nicely PowerShell object collections pipe but I somehow think I’ll still be using Excel fill down to build scripts each day.

It’s a simple trick, but many of our best admin tools are the simple flexible ones we can use in many ways.

One last trick worth sharing is the drag and drop capability of Command Prompt.   File and folder paths can be long and tedious to type.   Why waste your time?    Just open Explorer side by side and drag items to Command Prompt to type them perfectly every time. 


Hyper-V and Virtual Server 2005 = smart combo!

Unless you’ve been living under a rock the past five years you’ve run a virtual machine.  Yes, we all love them.   They save hardware, energy, time, and even our butts in the event of a rollback.    As a developer or administrator I think it’s best to understand the structure and have many tools available.   Our creativity is our single best long term tool to solve problems.

If you run Hyper-V I still recommend you install Virtual Server 2005.


  • Great utilities like VHDMOUNT.     Amazing tool that lets you modify VHD files directly without booting anything.   Partition resize, modify contents, etc.
  • Backwards compatibility with older systems (i.e. Virtual PC 2007 on Win XP)
  • Run older VM without upgrading them to Hyper-V.
  • Original source Virtual Machine Additions install media (ISO, VFD)

Keep your options open.  You might need them one day.   Also, don’t forget about Disk2vhd which lets you convert P2V (physical to virtual) by creating a .VHD from a live physical disk.



Moving .VHD from Hyper-V to Virtual PC 2007 (HAL.DLL replace)

Why would anyone want to do this?   Am I crazy?   Probably, but that’s beside the point.  Hyper-V is amazing and super fast technology that I cannot get enough of.  I formatted my new laptop the day I bought it just so I could run Windows Server 2008 with Hyper-V and never looked back.

So why downgrade to Virtual PC 2007?

  • Backward compatibility for older VM hosts like Virtual PC 2007
  • Allows you to distribute easily for any user to boot
  • Wide compatibility with Windows XP, Vista, etc.
  • It’s just good manners to share in formats people can readily use

I won’t pretend I discovered this on my own and sources are cited at the footer.   My goal is to record the trick and share with others who may do similar VHD migration work.    There are two key changes to execute:  removing the Integration Services and replacing HAL.DLL

  1. Make a copy of the original VHD – Don’t you always?   Backups, backups, backups …
  2. Open Hyper-V MMC and Import the VHD
  3. Boot and install Integration Services
  4. … {enjoy using Hyper-V and adding cool new stuff over time} …
  5. Make a full VHD duplicate copy.   Maybe name it with a “CLEAN” suffix?
  6. Open Hyper-V MMC and Import the duplicate VHD
  7. Boot this and uninstall Integration Services from Add Remove Programs
  8. Shutdown the virtual guest
  9. You’ll need HAL.DLL from the original in #1 from before it went into Hyper-V mode.   This clean HAL.DLL is key to making the VHD boot into older systems like Virtual PC 2007.
  10. Use “VHDMOUNT.EXE /M {file name}” to mount the duplicate VHD file from #5
  11. Open Disk Management MMC and locate the new mounted drive letter
  12. Browse to C:WindowsSystem32HAL.DLL and rename to HAL.HPV.DLL
  13. Copy the clean HAL.DLL into C:WindowsSystem32
  14. Use “VHDMOUNT.EXE /U /C All”  to commit changes and save the VHD
  15. You’re ready to give this VHD file to anyone and they can easily boot it on 32-bit Windows XP with Virtual PC or whatever older VM host they like.

For completeness I must explain that when you first start up in Hyper-V the HAL.DLL layer is changed to give it that gorgeous direct hardware access that makes it run so incredibly fast.  But wait … my friends don’t have that … so it won’t boot on Virtual PC anymore.  Whoops!   That’s the whole challenge we’re trying to work around here.    What is VHDMOUNT.EXE you might ask?   A really cool utility that ships with Virtual Server 2005.    I personally don’t use Virtual Server 2005 directly (Hyper-V is faster) but keep it around anyway because of the helpful utilities that are part of the install folder.  Lastly,  I have included the Windows Server 2003 Enterprise Edition HAL.DLL file from two flavors:

Windows Server 2003 Enterprise Edition – Hyper-V flavor  (HAL.HPV.DLL)

Windows Server 2003 Enterprise Edition – Virtual PC flavor  (HAL.VPC.DLL)



Sources Cited:

CJG – Chris Givens – Migrating Hyper-V back to VPC! – Hal.dll

Renaming a View – Best Practice

When renaming SharePoint views users are often stuck with the unintended side effects of having both an internal file name and external display name.   If understood and managed properly this can be an advantage (not a bug).   A short simple internal name can provide a concise URL while longer display names can provide end user navigation and context.



ASPX file name

Shows in Designer, Explorer, URL bar, and other technical views


String display for navigation

Shows in navigation bar, HTML display title, MS Office clients, and other end user views


The Internal name is set at creation time and cannot be easily changed later.  So, the next time you make a new view try to use a short name first then come back and rename to something longer immediately after.   This way you get the best of both worlds:  a short URL and a longer more descriptive navigation link. 







© Copyright 2016
@ SPJeff

Return to Top ▲Return to Top ▲