Let me start off this blog post by saying that as much as I want to be a 'developer', I just can't get my mind moving in that direction.  But the beauty with PowerShell is that it can take not even a weekend warrior of development like myself, and actually become useful with SDK's.  

Citrix has done an excellent job in the past few years really developing and providing a very useful policy structure for not only XenApp, but also XenDesktop.  Personally, I have always love the Citrix policy engine, making it very easy to get to the end results I wanted - the look, feel and usefulness of a XenApp environment.  I've run across many environments where there was no policies in place, not even a simple baseline policy.  When asked why, the most common response was <em>"We are doing all of our policies in Active Directory, and didn't want to manage them again"</em>.  Initially I was perplexed as to that reasoning, but after a while I got the idea.  But Citrix must have heard that grumbling, and with XenApp 6 releases the ability to really administer policies in 3 locations - IMA Database, AD GPO, and Local Server Policy. 

So, what's the point to that background?  Well, we started with shops that didn't want to administer policies in multiple places, and now what we're seeing is an uptick in policy usage, but those policies remain in IMA form.  First thought, why?  Simple answer, it's easy, and doesn't require potentially multiple teams involvement.  Second thought, so?  Citrix provides a great policy engine with very complete features, and sure doing it in the IMA database is super easy and what most are comfortable with.  But at some point, the usage of the IMA database for storing policies becomes unruly.  The administrator needs to break out which policies should apply to servers a,b,c, users a,b,c, and what if those conflict with something in a GPO.  What if you want to duplicate policies between a test/dev/prod farm, and you have 10, 20 or even 50 policies?  Back to the original point of this article, use the XenApp SDK provided by Citrix.