Ramblings from an IT manager and long time developer.


ColdFusion Manual Configuration & Issues with TCP ports 51011, 51010 and 51800 on IIS and Apache

Great post on configuring ColdFusion 7 on Server 2008 R2 here


Cisco AnyConnect

Cisco AnyConnect is an SSL VPN client that provides reliable and easy-to-deploy encrypted (SSL) network connectivity for Windows.

Typically, the Cisco AnyConnect client would be downloaded from the VPN site, but the version currently available from that location is not compatible with current versions of Windows 7 and Windows 8 and will not function properly due to Microsoft Windows security updates.

Note: Remember to verify you are running the most recent version of java (

Download Link



The Composable Enterprise

Very cool topic


English Pronunciation — a very cool poem

If you can pronounce correctly every word in this poem, you will be speaking English better than 90% of the native English speakers in the world. After trying the verses, a Frenchman said he’d prefer six months of hard labour to reading six lines aloud.

Dearest creature in creation,
Study English pronunciation.
I will teach you in my verse
Sounds like corpse, corps, horse, and worse.
I will keep you, Suzy, busy,
Make your head with heat grow dizzy.
Tear in eye, your dress will tear.
So shall I! Oh hear my prayer.
Just compare heart, beard, and heard,
Dies and diet, lord and word,
Sword and sward, retain and Britain.
(Mind the latter, how it’s written.)
Now I surely will not plague you
With such words as plaque and ague.
But be careful how you speak:
Say break and steak, but bleak and streak;
Cloven, oven, how and low,
Script, receipt, show, poem, and toe.
Hear me say, devoid of trickery,
Daughter, laughter, and Terpsichore,
Typhoid, measles, topsails, aisles,
Exiles, similes, and reviles;
Scholar, vicar, and cigar,
Solar, mica, war and far;
One, anemone, Balmoral,
Kitchen, lichen, laundry, laurel;
Gertrude, German, wind and mind,
Scene, Melpomene, mankind.
Billet does not rhyme with ballet,
Bouquet, wallet, mallet, chalet.
Blood and flood are not like food,
Nor is mould like should and would.
Viscous, viscount, load and broad,
Toward, to forward, to reward.
And your pronunciation’s OK
When you correctly say croquet,
Rounded, wounded, grieve and sieve,
Friend and fiend, alive and live.
Ivy, privy, famous; clamour
And enamour rhyme with hammer.
River, rival, tomb, bomb, comb,
Doll and roll and some and home.
Stranger does not rhyme with anger,
Neither does devour with clangour.
Souls but foul, haunt but aunt,
Font, front, wont, want, grand, and grant,
Shoes, goes, does. Now first say finger,
And then singer, ginger, linger,
Real, zeal, mauve, gauze, gouge and gauge,
Marriage, foliage, mirage, and age.
Query does not rhyme with very,
Nor does fury sound like bury.
Dost, lost, post and doth, cloth, loth.
Job, nob, bosom, transom, oath.
Though the differences seem little,
We say actual but victual.
Refer does not rhyme with deafer.
Foeffer does, and zephyr, heifer.
Mint, pint, senate and sedate;
Dull, bull, and George ate late.
Scenic, Arabic, Pacific,
Science, conscience, scientific.
Liberty, library, heave and heaven,
Rachel, ache, moustache, eleven.
We say hallowed, but allowed,
People, leopard, towed, but vowed.
Mark the differences, moreover,
Between mover, cover, clover;
Leeches, breeches, wise, precise,
Chalice, but police and lice;
Camel, constable, unstable,
Principle, disciple, label.
Petal, panel, and canal,
Wait, surprise, plait, promise, pal.
Worm and storm, chaise, chaos, chair,
Senator, spectator, mayor.
Tour, but our and succour, four.
Gas, alas, and Arkansas.
Sea, idea, Korea, area,
Psalm, Maria, but malaria.
Youth, south, southern, cleanse and clean.
Doctrine, turpentine, marine.
Compare alien with Italian,
Dandelion and battalion.
Sally with ally, yea, ye,
Eye, I, ay, aye, whey, and key.
Say aver, but ever, fever,
Neither, leisure, skein, deceiver.
Heron, granary, canary.
Crevice and device and aerie.
Face, but preface, not efface.
Phlegm, phlegmatic, ass, glass, bass.
Large, but target, gin, give, verging,
Ought, out, joust and scour, scourging.
Ear, but earn and wear and tear
Do not rhyme with here but ere.
Seven is right, but so is even,
Hyphen, roughen, nephew Stephen,
Monkey, donkey, Turk and jerk,
Ask, grasp, wasp, and cork and work.
Pronunciation (think of Psyche!)
Is a paling stout and spikey?
Won’t it make you lose your wits,
Writing groats and saying grits?
It’s a dark abyss or tunnel:
Strewn with stones, stowed, solace, gunwale,
Islington and Isle of Wight,
Housewife, verdict and indict.
Finally, which rhymes with enough,
Though, through, plough, or dough, or cough?
Hiccough has the sound of cup.
My advice is to give up!!!

English Pronunciation by G. Nolst Trenité



Manually enable Appear Offline in Lync 2013 (or Skype for Business 2016) via Registry

Lync 2013, just as with previous releases, allows the ability to Appear Offline. And just as with previous releases, you can enable this functionality in the Lync Client Policies. For information on how Lync Client Policies work, see my post here. To enable Appear Offline through Client Policy against the Global Policy, use the following command:

Get-CSClientPolicy | Set-CSClientPolicy -EnableAppearOffline $true

This will require a Lync 2013 client restart.

As an Administrator, you may not want to make this change to a Client Policy as the goal of Lync is to promote collaboration, not inhibit it by having users Appear Offline and hide from other users. At the same time, you may want to enable it for a user or two at request and won’t want to have to bother providing this small group of users their own Client Policy. Lync 2010 provided the ability to do that via registry key. Mike Pfeiffer provides a great article on Lync 2010 for setting the Lync 2010 registry key to manually enable Appear Offline in Lync 2010. You can see his article here.

The goal of this article is to show how to do the same in Lync 2013. Because Lync 2013 is now a part of Office 2013, Lync 2013 registry items are now under the Office 2013 registry section (Office 15.0). There are two ways to set this registry:

  1. Cmd.exe
  2. Regedit.exe

Using Cmd.exe

The type the following command:

Office 2013

Reg Add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Office\15.0\Lync" /V "EnableAppearOffline" /D 1 /T REG_DWORD /F

Office 2016

Reg Add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Office\16.0\Lync" /V "EnableAppearOffline" /D 1 /T REG_DWORD /F

Using Regedit.exe

  1. Start regedit.exe
  2. In Registry Editor, expand HKEY_LOCAL_MACHINE, expand Software, expand Policies, expand Microsoft, expand Office, expand 15.0, expand Lync
  3. Right-click the Lync registry key, point to New, and then click DWORD (32-bit) Value
  4. After the new value is created, type EnableAppearOffline to rename the value.
  5. Double-click the new EnableAppearOffline registry value.
  6. After the new value is created, type EnableAppearOffline to rename the value.
  7. Double-click the new EnableAppearOffline registry value.
  8. In the Edit DWORD (32-bit) Value dialog box, type 1 in the Value data box, and then click OK.


Fix: Unable to write files to USB with Windows 7 USB/DVD Download tool


What-If Analysis with Microsoft Project

What-If Analysis with Microsoft Project 2010


I’ve attended a couple Microsoft Project 2010 events as of late, but of yet, I haven’t seen this functionality getting much play.  On first glance, I think this could be one of the most compelling new features added to Project: the task level Active field.

Usage Scenarios

Scenario #1: The project manager has been requested to calculate the cost and schedule impact of a potential change order.  The change order is developed as a series of extra tasks in the MPP file.  Based on that model, the change request is submitted to the project stakeholders.  They deliberate for several weeks.

During that time, the project schedule is updated repeatedly.  As the project manager cannot very well report on the project with the unapproved change order requests included, the PM will have to remove the tasks and reinsert them later once the change order has been approved.

Fast forward, and now the stakeholders have approved the change request.  Now the PM has to go back to the change order calculations and reinsert them into the updated project schedule, hoping that the calculations of cost and schedule impact haven’t changed significantly.


With the Active field.  I can now add the change order, but render it inactive so that it is not included in status reporting or resource allocation calculations.  Whenever I need to revalidate the change order calculations, I can toggle the Active status to yes and review the schedule.


Scenario #2: I wish to remove tasks from a baselined in-progress schedule.  Generally, deleting tasks is frowned upon as this does not change the rolled up baseline calculations, and you therefore are removing a record of how that original baseline was calculated.  The guidance in 2007 was to zero out the remaining work on the removed tasks and then to prefix the name with something like “DELETED-Task1”.  Needless to say, this has been know to confuse project stakeholders.

Now I can simply render them inactive.  This keeps the original baseline calculations but allows me to track the historical record of how the baseline was developed:


This also allows me to start tracking the cost savings associated with eliminating specific tasks by grouping on inactive tasks with baseline data.

Scenario #3: I wish to develop a schedule with conditional branches.  I insert different branches based on potential information that may be developed at a later date.  As the information is received, I activate or deactivate specific branches.  With some macro coding and a rough Monte Carlo analysis, I could probably expand this to do all sorts of probabilistic analysis on the schedule.

Server Level Support

On the server level, you’ll note a couple of things:

1) Setting a task to inactive automatically toggles Publish to “No.”


2) Options to include inactive tasks in the OLAP Cubes.  I am still getting my head around how this would be used, but I suppose it will be heavily dependent on the organization’s methodologies, much like Proposed vs Committed in previous versions of Project Server.



Use Non Certified Play To Devices in Windows 8.1

This is a re-post from here:

Use Non Certified Play To Devices in Windows 8.1


Technical Level: Intermediate Applies to: Windows 8.1, also WindowsRT 8.1 If your device supports DLNA “Play To” using the classic desktop/explorer/libraries functionality but does not appear in the Devices Charm list in Apps like Music and Videos, or appears as non-certified, with a little work you can overcome this restriction and it will appear. The Photos App in Windows 8.1 does NOT support Play To.



A little history: In Windows 7, Microsoft introduced Play To which used the DLNA spec to let me send media from my computer to a DLNA DMR. I had so so results with my 2009 Samsung TV due to poor transcoding support, but great results with my WDTV Live Hub and my SONOS speakers. The so-so experience on my TV and the not wonderful experience on other device by many many people caused Microsoft to rethink their strategy for Windows 8 and come up with a more intensive certification process for devices to “insure” a good experience. This translated into a restrictive policy for Windows 8 Start Screen/Metro/Modern UI Apps where only MS certified devices would appear in an applications Settings: Devices menu. In Windows 8, a workaround is available that requires a registry entry for each device you wish to enable for Play To support for Modern UI Apps.

What I am about to describe works on both my Surface and Surface RT tablets as well as my Desktop running Windows 8.1

 Check if the Device is listed and shows as non certified in PC & Devices Settings/Devices. To do this:

1.     Click or tap the Settings Charm on the Start Screen

2.     Select Change PC Settings

3.     Select PC & Devices

4.     Select Devices

5.     Verify that your device is listed (the example below shows the TV that is Not Windows Certified as present in the list)

6.     If the Device is not present, use Add Device to attempt to add the device to the list

Next Step: Verify Legacy DLNA “Play To” Support

1.  To do this, right click a supported media file in a classic library and verify the Play To menu appears

2.  Next, verify that you can successfully send to your target device and it plays the media you selected.

    a.       To do this, right click a supported media file in a classic library and verify the Play To menu appears and that you can successfully send to your target device and it plays the media you selected.

Open the Registry Editor

1.     On the Start Screen, type/search for regedit

2.     Navigate to HKEY_LOCAL_MACHINESoftwareMicrosoft

3.     Create a NEW key by right clicking Microsoft and name it PlayTo



4.      Once the key is created, right click it and create a new DWord


5.      The new Dword should be named ShowNonCertifiedDevices. After you have created the key, right click, edit and change the value from 0 to 1.


After a reboot, your Non Certified devices should be available in Windows Store Apps that support Play (PlayTO), as in the example below:


Note: You alternatively could use HKEY_CURRENT_USERSoftwareMicrosoftPlayTo with a DWORD ShowNonCertifiedDevices with value 1 which would limit functionality on a per user basis.

See Also

Originally published (Additional Information Available) at


Here is a registry script to apply this workaround for you

Windows8PlayToFix.reg (266.00 bytes)


Server 2008 and PowerShell published via OData

Repost from here


There is a new feature of Windows Server 8 that will allow for access to PowerShell cmdlets and objects via OData served through ASP.NET. Doug Finke wrote a blog post for PowerShell Magazine on the topic. The article gives a good overview of what the Management OData feature is and how to configure it. In this blog post I will be showing off some of the steps involved in getting the service configured and what it looks like to consume the OData in PowerShell.

Setting Up the Management OData Feature

The first step in utilizing the Management OData in Windows Server 2012 is to enable the feature. You can either use Server Manager or the following cmdlet.

Install-WindowsFeature -Name ManagementOData

Once the feature has been installed you will need to install Visual Studio 2011 Beta on the Server machine. I hope there is better tooling around this but currently this is what is required in order to build the samples found on MSDN. Make sure to download the Management OData Schema Designer. For a whole lot information on the topic, download and read the whitepaper. It walks you through all the steps I’m about to, in more detail.

What Management OData Does

In simple terms (read Doug’s post for more info), the Management OData service provides RESTful endpoints that server up PowerShell objects. The schema designer is used to map cmdlets and their resulting objects to OData objects. These can then be served as JSON back through the endpoint to the client.  The Management OData Schema Designer is used to take existing modules, cmdlets and objects and map them to XML files that can then be consumed by the Management OData system and served to clients. Included with the examples are PowerShell scripts used to install the OData endpoints once they have been compiled.

Installing the Basic Endpoint Sample

Once Visual Studio 2011 has been installed open the BasicPlugin.sln solution. You can download the sample here. Once the solution is open, build it. Once the solution is built, run the SetupEndpoints.ps1 file to configure the endpoint on the local server. The file is part of the Basic Endpoint solution folder. You should now be able to navigate to the URL:


This should result in this:



To query particular resources, you can now query it like so http://localhost:7000/MODataSvc/Microsoft.Management.Odata.svc/Process. This will return all the processes on the server machine. The Content property contains all the XML for the objects.


Additionally, processes can be filtered using a URI-based syntax. For example:

http://localhost:7000/MODataSvc/Microsoft.Management.Odata.svc/Process?$filter=(Handles gt 1000)

By default the returned format will be XML. In order to return JSON, you have to use the following syntax.



Remember that you can utilize the new ConvertFrom-Json cmdlet to to convert the JSON to objects.


Pretty powerful stuff!

Adding new Cmdlets and Objects

The Management OData Schema Designer is used to add more entities to the OData service. Once installed there should be an icon placed on the desktop. Open the designer. The first step is to load a module that you want to model and expose in OData. For this example I will use the NetAdapter module. Type the module name into the text box and click Load New Module. Once the module is loaded you will see a big list of the types of entities the designer finds within the module. These coincide with the nouns of the cmdlets within the module. The verbs Get, Set, New, Remove will appear as check boxes next to the noun names. If a cmdlet is not defined the verb will be grayed out.

In order to map a new OData action and entity, check one of the verb for a noun. I selected the Get and NetAdapter verb and noun. Next click the “from cmdlet output” button. The cmdlet will appear in the displayed box. Clicking Add-Type will add the new OData entity. In order to successfully generate the MOF and XML needed to define the object, you will need to set a Key property. This is the uniquely defining property on the object. Name is already selected for NetAdapter.


Now you can click Generate Mof/Xml Schema. This will produce the mapping files that the Management OData service will use to translate between the REST request and the PowerShell cmdlet and resulting objects. Once saved, you can place this in C:inetpubwwwrootmodata.

Since the OData endpoint is constrained we need to play with the BasicPlugin a bit to get it to load the module we would like. In Visual Studio, I added the following lines to get the NetAdapter module to load into the runspace and to set the visibility of the proper cmdlets in the runspace. I just set them all to visible. Once built, copy the resulting DLL into the MOData folder and replace the one that is in there already. You may need to stop IIS first.


Now you should be able to query to the location:


Note that the resource identifier (e.g. NetAdapter) is case sensitive in the beta!

Remember there is also an Invoke-RestMethod cmdlet that can be used to query the entities. Using this method, it looks something like this.


I think this is insanely powerful functionality. It seems that the tooling isn’t quite 100% yet and requires quite a bit of setup to get running but the possibilities are endless. Creating RESTful services from PowerShell modules will be a cinch! I really encourage you to read the whitepaper about this that I mentioned earlier. It contains a ton of information.













AutoEventWireup Issue in MOSS 2007

Reprint from:

Have you ever encountered the following error in Microsoft Office SharePoint Server (MOSS) 2007?

An error occurred during the processing of . The attribute ‘autoeventwireup’ is not allowed in this page.

I just searched for this using Bing and it seems like I’m not the only one who has ever experienced this issue. However, glancing through a few of the top search results, I didn’t see any solutions to the error.

The problem occurs when you have a custom master page which includes code and that master page subsequently becomes unghosted. I believe this happens with custom page layouts that are customized as well.

I have to admit that I was completely stumped when I first encountered this error a few years ago while working on the Agilent Technologies project. I eventually tracked down the root cause to be unghosted pages, but we were not using SharePoint Designer to create or customize our master pages, so I couldn’t understand why we would occasionally encounter this error.

My speculation is that when the feature/solution containing the custom master page is deactivated, retracted, and deleted (as part of the “DR.DADA” process), SharePoint has some “smarts” within it that essentially equates to:

  • Hey, this master page (or page layout) is currently in use so removing it could really break the site.
  • Therefore, I’d better make a copy of it and store it in the database (i.e. unghost it).

Unfortunately, when we subsequently added, deployed, and activated the solution/feature, SharePoint would still attempt to use the unghosted master page and summarily generate the error stating that “the attribute ‘autoeventwireup’ is not allowed in this page.”

Note that this is pure speculation on my part as to what was causing the master page to become unghosted.

However, what I do know for sure is that once I reghosted the master page, the AutoEventWireup error would magically disappear.

Here are the steps to reghost a master page or page layout:

  1. Browse to Site Settings page for your site. Note that if your master page is causing the AutoEventWireup error, you can explicitly specify the URL (e.g. http://fabrikam/_layouts/settings.aspx).
  2. On the Site Settings page, under the Look and Feel section, click Reset to site definition.
  3. On the Reset Page to Site Definition Versionpage:
    1. In the Reset to Site Definition section, ensure the option to he Local URL of the page box,
    2. Click Reset.
    3. In the confirmation dialog that appears stating that you will lose all customizations, including web part zones, custom controls, and in-line text, click OK.

Note that in ASP.NET, the default value for the AutoEventWireup attribute is true. Therefore you might assume that you could simply remove the attribute from your custom master page in order to avoid the error when the master page is unghosted. After all, the error clearly states that the AutoEventWireup attribute is not allowed in this page, right?

In other words, the solution to the problem would seem to be simply be a matter of changing something like this…

<%@ Master Language="C#" AutoEventWireup="true" Codebehind="FabrikamMinimal.master.cs"
    Inherits="Fabrikam.Demo.Publishing.Layouts.MasterPages.FabrikamMinimal" %>


.to this:

<%@ Master Language="C#" Codebehind="FabrikamMinimal.master.cs" Inherits="Fabrikam.Demo.Publishing.Layouts.MasterPages.FabrikamMinimal" %>

Unfortunately — at least in my experience — this doesn’t work. It only leads to other errors, such as:

The event handler ‘OnPreRender’ is not allowed in this page.

The above error occurs when the master page contains something like the following:

<asp:SiteMapPath ID="BreadcrumbSiteMapPath" Runat="server" SiteMapProvider="CurrentNavSiteMapProviderNoEncode" RenderCurrentNodeAsLink="true" SkipLinkText="" OnPreRender="BreadcrumbSiteMapPath_OnPreRender">

I attempted to resolve this by converting the BreadcrumbSiteMapPath_OnPreRender event handler to a method and invoking the method from the Page_PreRender event handler instead. However, that only led to yet another error:

Code blocks are not allowed in this file.

Sensing a very deep “rat hole” at this point, I decided it wasn’t worth pursuing this issue any further.

Fortunately, as I’ve stated before, I don’t believe master pages and page layouts deployed through solutions and features should subsequently be customized through SharePoint Designer. In my opinion, these items should be tightly managed through your SCM (software configuration management) process — in other words, versioned in your source control system and subsequently deployed through a formal change process.

Of course, if your custom master pages and page layouts are very simple (i.e. no code-behind) then you probably will never encounter this problem.