Monthly Archives: October 2012

InfoPath XSN deployed to Central Admin – 14 hive explodes!

Today I was surprised to see 350MB in a single InfoPath FEATURE folder on the below web front end server.  Whaaaat?!?   I had to blink a few times and even confirmed the size manually in Windows Explorer.  Yup, this form was eating up lots of storage.  Making matters worse it was on every web front end across the farm.  But why?   When you deploy an “update” to existing Central Admin InfoPath Form Templates it just adds another subfolder.   OK, maybe that’s a neat version history thing to have … or maybe it’s slowly sucking the life out of your storage.

Below we have 960 “updates” deployed to a single XSN with Central Admin and over 300MB of old XSN garbage.  Sad smile   The fix for me was basically to uninstall the whole thing and deploy the XSN anew for the first time.  Going  forward I plan to avoid the “upgrade” option from Central Admin Manage Form Templates.  Better to use the “remove” option then deploy fresh each time.



  • Remove from from Central Admin > General > Manage InfoPath Form Templates
  • Retract WSP from Central Admin > System Settings > Farm Solutions
  • Delete “FT-GUID” folder on each web front end’s 14 hive
  • Upload the XSN and start fresh









Say Happy Birthday with Code!

Most people just say “Happy Birthday” to each other over social networks like Facebook and Twitter with the same 14 predictable letters.   Why not say it with code?   If you’re a developer you already understand.   Smile   Before you ask … Yes, I really did write and run the QBasic 4.5 version in 16-bit mode running on Windows 7 x64.   Oh, and no it’s not my birthday.


With PowerShell

1..4 | % {if ($_ -ne 3) {Write-Host "Happy Birthday to You!"} else {"Happy Birthday Dear Jeff"}}

With C# Console Application

for (int i = 0; i <= 3; i++) { Console.WriteLine(((i == 2) ? "Happy Birthday dear Jeff" : "Happy Birthday to You!")); }

With JavaScript

With Command Prompt

FOR %%A IN (1 1 2 1)
DO (
IF %%A == 1 ECHO "Happy Birthday to You!"
IF %%A == 2 ECHO "Happy Birthday dear Jeff"

With QBasic 4.5  (oh yes I did!)

FOR x = 1 TO 4
        IF x = 3 THEN
                PRINT "Happy Birthday dear Jeff!"
                PRINT "Happy Birthday to You!"
        END IF
FOR x = 37 TO 1000
        SOUND x, 1






Office 2013 install on Windows Server 2012– Screenshots

Last week I installed Office 2013 preview on my SharePoint development VM.  Below are the screenshots. 

The only hiccup I saw was the requirement for “Desktop Experience” to be loaded for OneNote to run.  The other Office applications didn’t seem to mind.  It took a few minutes to locate “Desktop Experience” under the “User Interfaces and Infrastructure” heading inside of Windows Server 2013 Server Manager  (thanks Tamer!).   However, once loaded everything ran great.


10-4-2012 4-36-58 PM

10-4-2012 4-36-29 PM

10-4-2012 4-36-45 PM

10-4-2012 4-37-25 PM

10-4-2012 4-39-30 PM

10-4-2012 4-40-02 PM

10-4-2012 4-40-14 PM

10-4-2012 4-40-26 PM

10-4-2012 4-42-42 PM

10-4-2012 5-04-42 PM

10-6-2012 5-13-05 PM

10-6-2012 5-13-46 PM

10-6-2012 5-14-30 PM

10-6-2012 5-15-29 PM

10-6-2012 5-18-56 PM

10-6-2012 5-20-27 PM



PowerShell: Get today’s date only

Recently I needed to get a [System.DateTime] object with today’s date only (no time information).   Sounds easy, right?

At first I found “Get-Date -displayhint date” on     While the output looks nice, it only affects console string display.  The underlying object still has full timestamp information.

I ended up coding “New-Object "System.DateTime" -ArgumentList (Get-Date).Year, (Get-Date).Month, (Get-Date).Day” as the clean way to create a new object with today’s date only.   This allowed the rest of my code to then work perfectly.  Hope this helps somebody else too!  Smile


New-Object "System.DateTime" -ArgumentList (Get-Date).Year, (Get-Date).Month, (Get-Date).Day
Return to Top ▲Return to Top ▲