<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Harley Green (Sharepoint) </title>
    <link>http://www.harleygreen.com/8/section.aspx/category/2</link>
    <description>Harley Green</description>
    <language>en-US</language>
    <pubDate>Sun, 05 Feb 2012 06:54:04 GMT</pubDate>
    <lastBuildDate>Sun, 05 Feb 2012 06:54:04 GMT</lastBuildDate>
    <generator>Cuyahoga Website Framework</generator>
    <ttl>60</ttl>
    <item>
      <title>Avoid Security Trimming when using SPXMLContentMapProvider in MOSS 2007</title>
      <link>http://www.harleygreen.com/8/section.aspx/6</link>
      <description>Had an interesting chat with MS Developer support today.&lt;br /&gt;
&lt;br /&gt;
Several weeks ago, we had a performance issue with a custom application hosted in MOSS 2007. By issue, I mean pages were loading exceedingly slowly, to the point where requests were timing out with some frequency. After much digging around, we eventually traced it to a custom site map file. We were using the SPXMLContentMapProvider with a custom sitemap file. The site map file had role information for each node, and the provider had securityTrimmingEnabled set to &amp;quot;true&amp;quot; in the web.config. Setting securityTrimmingEnabled to &amp;quot;false&amp;quot; immediately resolved the issue. &lt;br /&gt;
&lt;br /&gt;
After a fair bit of digging on their end, MS Developer support concluded that the SPXMLContentMapProvider should not be used with security trimming, or it could cause performance issues. Their recommendation was to &amp;quot; create a custom navigation provider inheriting from OOB SPXMLContentMapProvider and override the 'CreateChildNodes' method. You can implement the security trimming in the 'CeateChildNodes' method and can filter the nodes rather than relying on the parent SiteMapProvider which takes long time to do the security trimming in case of SPXMLContentMapProvider.&amp;quot;&lt;br /&gt;</description>
      <dc:creator>Harley Green</dc:creator>
      <pubDate>Thu, 29 Oct 2009 03:36:53 GMT</pubDate>
      <category>Sharepoint</category>
    </item>
    <item>
      <title>Sharepoint web.config updates via PowerShell</title>
      <link>http://www.harleygreen.com/8/section.aspx/5</link>
      <description>OK - I know I'm slow to be blogging about SPWebConfigModification, but figured that I'd add a little value with a healthy dose of powershell.&lt;br /&gt;
&lt;br /&gt;
There are a number of approaches to using SPWebConfigModification to update the web.config (see &lt;a target="_blank" href="http://www.crsw.com/mark/Lists/Posts/Post.aspx?ID=32"&gt;here&lt;/a&gt;, &lt;a target="_blank" href="http://randomdust.com/blogs/ryan/archive/2008/03/22/featurereceiver-for-applying-custom-web-config-changes.aspx"&gt;here&lt;/a&gt; and &lt;a target="_blank" href="http://daniellarson.spaces.live.com/blog/cns!D3543C5837291E93!958.entry"&gt;here&lt;/a&gt;), but all of these essentially require deploying / retracting a feature to modify / retract the config modifications. It may just be that I'm a little picky, but I really don't want to have to deploy code to make a configuration change - kinda defeats the point of configuration IMHO. Of course, I really don&amp;rsquo;t want to log onto a bunch of different servers, and make manual updates to each, as the chance of my fat-fingering something is pretty high.&lt;br /&gt;
&lt;br /&gt;
Of late - whenever I'm dealing with something painful, I invariably turn to powershell and this was no exception. A quick translation of this example from &lt;a target="_blank" href="http://www.crsw.com/mark/Lists/Posts/Post.aspx?ID=32"&gt;Mark Wagner's&lt;/a&gt; blog:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="dp-highlighter" id="hlDiv"&gt;
&lt;div class="bar"&gt;&amp;nbsp;&lt;/div&gt;
&lt;ol start="1" class="dp-c"&gt;
    &lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;//&amp;nbsp;Get&amp;nbsp;an&amp;nbsp;instance&amp;nbsp;of&amp;nbsp;my&amp;nbsp;local&amp;nbsp;web&amp;nbsp;application&amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=""&gt;&lt;span&gt;SPWebApplication&amp;nbsp;webApp&amp;nbsp;=&amp;nbsp;&lt;span class="keyword"&gt;new&lt;/span&gt;&lt;span&gt;&amp;nbsp;SPSite(&lt;/span&gt;&lt;span class="string"&gt;&amp;quot;http://localhost&amp;quot;&lt;/span&gt;&lt;span&gt;).WebApplication;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class="alt"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=""&gt;&lt;span&gt;&lt;span class="comment"&gt;//&amp;nbsp;Create&amp;nbsp;my&amp;nbsp;new&amp;nbsp;modification&amp;nbsp;to&amp;nbsp;set&amp;nbsp;the&amp;nbsp;mode&amp;nbsp;attibute&amp;nbsp;to&amp;nbsp;&amp;quot;Off&amp;quot;.&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;//&amp;nbsp;Example:&amp;nbsp;&amp;lt;customErrors&amp;nbsp;mode=&amp;quot;Off&amp;quot;&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=""&gt;&lt;span&gt;SPWebConfigModification&amp;nbsp;modification&amp;nbsp;=&amp;nbsp;&lt;span class="keyword"&gt;new&lt;/span&gt;&lt;span&gt;&amp;nbsp;SPWebConfigModification(&lt;/span&gt;&lt;span class="string"&gt;&amp;quot;mode&amp;quot;&lt;/span&gt;&lt;span&gt;,&amp;nbsp;&lt;/span&gt;&lt;span class="string"&gt;&amp;quot;system.web/customErrors&amp;quot;&lt;/span&gt;&lt;span&gt;);&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class="alt"&gt;&lt;span&gt;modification.Owner&amp;nbsp;=&amp;nbsp;&lt;span class="string"&gt;&amp;quot;SimpleSampleUniqueOwnerValue&amp;quot;&lt;/span&gt;&lt;span&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=""&gt;&lt;span&gt;modification.Sequence&amp;nbsp;=&amp;nbsp;0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li class="alt"&gt;&lt;span&gt;modification.Type&amp;nbsp;=&amp;nbsp;SPWebConfigModification.SPWebConfigModificationType.EnsureAttribute;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=""&gt;&lt;span&gt;modification.Value&amp;nbsp;=&amp;nbsp;&lt;span class="string"&gt;&amp;quot;Off&amp;quot;&lt;/span&gt;&lt;span&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class="alt"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=""&gt;&lt;span&gt;&lt;span class="comment"&gt;//&amp;nbsp;Add&amp;nbsp;my&amp;nbsp;new&amp;nbsp;web.config&amp;nbsp;modification.&amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class="alt"&gt;&lt;span&gt;webApp.WebConfigModifications.Add(modification);&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=""&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;//&amp;nbsp;Save&amp;nbsp;web.config&amp;nbsp;changes.&amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=""&gt;&lt;span&gt;webApp.Farm.Services.GetValue&amp;lt;SPWebService&amp;gt;().ApplyWebConfigModifications();&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li class="alt"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=""&gt;&lt;span&gt;&lt;span class="comment"&gt;//&amp;nbsp;Serialize&amp;nbsp;the&amp;nbsp;web&amp;nbsp;application&amp;nbsp;state&amp;nbsp;and&amp;nbsp;propagate&amp;nbsp;changes&amp;nbsp;across&amp;nbsp;the&amp;nbsp;farm.&amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class="alt"&gt;&lt;span&gt;webApp.Update();&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;br /&gt;
Yields:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="dp-highlighter" id="hlDiv"&gt;
&lt;div class="bar"&gt;&amp;nbsp;&lt;/div&gt;
&lt;ol start="1" class="dp-rb"&gt;
    &lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$site&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;new-object&amp;nbsp;Microsoft.SharePoint.SPSite&amp;nbsp;-argumentList&amp;nbsp;&lt;/span&gt;&lt;span class="string"&gt;&amp;quot;http://localhost&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$webApplication&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class="variable"&gt;$site&lt;/span&gt;&lt;span&gt;.WebApplication&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$modification&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt;&amp;nbsp;-TypeName&amp;nbsp;&lt;/span&gt;&lt;span class="string"&gt;&amp;quot;Microsoft.SharePoint.Administration.SPWebConfigModification&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;nbsp;-ArgumentList&amp;nbsp;&lt;/span&gt;&lt;span class="string"&gt;&amp;quot;mode&amp;quot;&lt;/span&gt;&lt;span&gt;,&amp;nbsp;&lt;/span&gt;&lt;span class="string"&gt;&amp;quot;system.web/customErrors&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$modification&lt;/span&gt;&lt;span&gt;.Value&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class="string"&gt;&amp;quot;Off&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$modification&lt;/span&gt;&lt;span&gt;.Owner&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class="string"&gt;&amp;quot;SimpleSampleUniqueOwnerValue&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$modification&lt;/span&gt;&lt;span&gt;.Sequence&amp;nbsp;=&amp;nbsp;0&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$modification&lt;/span&gt;&lt;span&gt;.Type&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class="string"&gt;&amp;quot;EnsureAttribute&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$webApplication&lt;/span&gt;&lt;span&gt;.WebConfigModifications.Add(&lt;/span&gt;&lt;span class="variable"&gt;$modification&lt;/span&gt;&lt;span&gt;)&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$method&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;[Microsoft.Sharepoint.Administration.SPServiceCollection].GetMethod(&lt;/span&gt;&lt;span class="string"&gt;&amp;quot;GetValue&amp;quot;&lt;/span&gt;&lt;span&gt;,&amp;nbsp;[Type]::EmptyTypes)&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$closedMethod&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class="variable"&gt;$method&lt;/span&gt;&lt;span&gt;.MakeGenericMethod([Microsoft.Sharepoint.Administration.SPWebService])&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$services&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class="variable"&gt;$webApplication&lt;/span&gt;&lt;span&gt;.Farm.Services&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$service&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class="variable"&gt;$closedMethod&lt;/span&gt;&lt;span&gt;.Invoke(&lt;/span&gt;&lt;span class="variable"&gt;$services&lt;/span&gt;&lt;span&gt;,&amp;nbsp;[Type]::EmptyTypes)&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$service&lt;/span&gt;&lt;span&gt;.ApplyWebConfigModifications()&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$webApplication&lt;/span&gt;&lt;span&gt;.Update()&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$site&lt;/span&gt;&lt;span&gt;.Dispose()&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;br /&gt;
This is atypically more complex than the equivalent c# code above - almost entirely due to the generic &amp;quot;GetValue&amp;quot; method being called.&lt;br /&gt;
&lt;br /&gt;
Now, the only issue outstanding is to wrap it all up in a reusable script. I started down the path of using xml to define the configuration values, basically using &lt;a target="_blank" href="http://randomdust.com/blogs/ryan/archive/2008/03/22/featurereceiver-for-applying-custom-web-config-changes.aspx"&gt;Ryan's&lt;/a&gt; xsd . This does, unfortunately, get rather verbose due to the need to define each attribute in a given node. Once again - this was beginning to feel painful and my thoughts turned again to powershell - why not define the variables using powershell itself? If the configuration is a powershell script, I can simply dot-source it, and I'm good to go.&lt;br /&gt;
&lt;br /&gt;
Of course - I still need a convention to define the configuration, and eventually I settled on this:&lt;br /&gt;
&lt;br /&gt;
&lt;!-- Stylesheet link --&gt;
&lt;link href="http://www.thecomplex.plus.com/styles/SyntaxHighlighter.css" rel="stylesheet" type="text/css" /&gt;  &lt;!-- Code --&gt;
&lt;div id="hlDiv" class="dp-highlighter"&gt;
&lt;div class="bar"&gt;&amp;nbsp;&lt;/div&gt;
&lt;ol class="dp-rb" start="1"&gt;
    &lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$mods&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=""&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;,@{&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li class="alt"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="string"&gt;&amp;quot;name&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class="string"&gt;'add[@key=&amp;quot;TestConfig&amp;quot;]'&lt;/span&gt;&lt;span&gt;;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=""&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="string"&gt;&amp;quot;value&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class="string"&gt;'&amp;lt;add&amp;nbsp;key=&amp;quot;TestConfig&amp;quot;&amp;nbsp;value=&amp;quot;1000&amp;quot;&amp;nbsp;/&amp;gt;'&lt;/span&gt;&lt;span&gt;;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class="alt"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="string"&gt;&amp;quot;owner&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class="string"&gt;&amp;quot;hgreen&amp;quot;&lt;/span&gt;&lt;span&gt;;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=""&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="string"&gt;&amp;quot;path&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class="string"&gt;&amp;quot;/configuration/appSettings&amp;quot;&lt;/span&gt;&lt;span&gt;;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class="alt"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="string"&gt;&amp;quot;sequence&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class="string"&gt;&amp;quot;0&amp;quot;&lt;/span&gt;&lt;span&gt;;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=""&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="string"&gt;&amp;quot;type&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class="string"&gt;&amp;quot;EnsureChildNode&amp;quot;&lt;/span&gt;&lt;span&gt;;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class="alt"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;br /&gt;
$mods is a list of Dictionary objects - each of which holds the relevant values to be used in the construction of a SPWebConfigModification. Defaults are provided for owner and sequence, the rest should all be provided by the configuration script. The driving force here was to keep the configuration script purely configuration.&amp;nbsp; This defines the modifications, and nothing else.&lt;br /&gt;
&lt;br /&gt;
The final script:&lt;br /&gt;
&lt;br /&gt;
&lt;!-- Stylesheet link --&gt;
&lt;link href="http://www.thecomplex.plus.com/styles/SyntaxHighlighter.css" rel="stylesheet" type="text/css" /&gt;  &lt;!-- Code --&gt;
&lt;div id="hlDiv" class="dp-highlighter"&gt;
&lt;div class="bar"&gt;&amp;nbsp;&lt;/div&gt;
&lt;ol class="dp-rb" start="1"&gt;
    &lt;li class="alt"&gt;&lt;span&gt;&lt;span class="keyword"&gt;param&lt;/span&gt;&lt;span&gt;(&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=""&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="variable"&gt;$application&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class="string"&gt;&amp;quot;$(throw&amp;nbsp;'application&amp;nbsp;is&amp;nbsp;a&amp;nbsp;mandatory&amp;nbsp;parameter.')&amp;quot;&lt;/span&gt;&lt;span&gt;,&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class="alt"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="variable"&gt;$fileName&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class="string"&gt;&amp;quot;$(throw&amp;nbsp;'fileName&amp;nbsp;is&amp;nbsp;a&amp;nbsp;mandatory&amp;nbsp;parameter.')&amp;quot;&lt;/span&gt;&lt;span&gt;,&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=""&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[&lt;span class="keyword"&gt;switch&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;span class="variable"&gt;$retract&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class="alt"&gt;&lt;span&gt;)&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=""&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li class="alt"&gt;&lt;span&gt;trap&amp;nbsp;[Exception]&amp;nbsp;{&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=""&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="builtin"&gt;Write-Error&lt;/span&gt;&lt;span&gt;&amp;nbsp;$(&lt;/span&gt;&lt;span class="string"&gt;&amp;quot;TRAPPED:&amp;nbsp;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;nbsp;+&amp;nbsp;&lt;/span&gt;&lt;span class="variable"&gt;$_&lt;/span&gt;&lt;span&gt;.Exception.GetType().FullName);&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class="alt"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="builtin"&gt;Write-Error&lt;/span&gt;&lt;span&gt;&amp;nbsp;$(&lt;/span&gt;&lt;span class="string"&gt;&amp;quot;TRAPPED:&amp;nbsp;&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;nbsp;+&amp;nbsp;&lt;/span&gt;&lt;span class="variable"&gt;$_&lt;/span&gt;&lt;span&gt;.Exception.Message);&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=""&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="keyword"&gt;if&lt;/span&gt;&lt;span&gt;&amp;nbsp;(&lt;/span&gt;&lt;span class="variable"&gt;$site&lt;/span&gt;&lt;span&gt;&amp;nbsp;-ne&amp;nbsp;&lt;/span&gt;&lt;span class="variable"&gt;$null&lt;/span&gt;&lt;span&gt;)&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class="alt"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&lt;span class="variable"&gt;$site&lt;/span&gt;&lt;span&gt;.Dispose()&amp;nbsp;}&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=""&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li class="alt"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=""&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li class="alt"&gt;&lt;span&gt;&lt;span class="keyword"&gt;function&lt;/span&gt;&lt;span&gt;&amp;nbsp;Coalesce-Args&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=""&gt;&lt;span&gt;{&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li class="alt"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;([object[]](&lt;span class="variable"&gt;$args&lt;/span&gt;&lt;span&gt;&amp;nbsp;|&amp;nbsp;&lt;/span&gt;&lt;span class="builtin"&gt;Where-Object&lt;/span&gt;&lt;span&gt;&amp;nbsp;{&lt;/span&gt;&lt;span class="variable"&gt;$_&lt;/span&gt;&lt;span&gt;})&amp;nbsp;+&amp;nbsp;,&lt;/span&gt;&lt;span class="variable"&gt;$null&lt;/span&gt;&lt;span&gt;)[0]&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=""&gt;&lt;span&gt;}&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li class="alt"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=""&gt;&lt;span&gt;[System.Reflection.Assembly]::LoadWithPartialName(&lt;span class="string"&gt;&amp;quot;Microsoft.Sharepoint&amp;quot;&lt;/span&gt;&lt;span&gt;)&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class="alt"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$mods&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class="variable"&gt;$null&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class="alt"&gt;&lt;span&gt;.&amp;nbsp;(&lt;span class="builtin"&gt;Resolve-Path&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="variable"&gt;$fileName&lt;/span&gt;&lt;span&gt;)&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$site&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;new-object&amp;nbsp;Microsoft.SharePoint.SPSite&amp;nbsp;-argumentList&amp;nbsp;&lt;/span&gt;&lt;span class="variable"&gt;$application&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$webApplication&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class="variable"&gt;$site&lt;/span&gt;&lt;span&gt;.WebApplication&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=""&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;#$mods&amp;nbsp;should&amp;nbsp;be&amp;nbsp;initialized&amp;nbsp;in&amp;nbsp;input&amp;nbsp;file&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=""&gt;&lt;span&gt;&lt;span class="keyword"&gt;foreach&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span class="variable"&gt;$mod&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="keyword"&gt;in&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="variable"&gt;$mods&lt;/span&gt;&lt;span&gt;)&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class="alt"&gt;&lt;span&gt;{&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=""&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="variable"&gt;$name&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class="variable"&gt;$mod&lt;/span&gt;&lt;span&gt;.name&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class="alt"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="variable"&gt;$value&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class="variable"&gt;$mod&lt;/span&gt;&lt;span&gt;.value&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=""&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="variable"&gt;$principal&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;[Security.Principal.WindowsIdentity]::GetCurrent()&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class="alt"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="variable"&gt;$owner&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;Coalesce-Args&amp;nbsp;&lt;/span&gt;&lt;span class="variable"&gt;$mod&lt;/span&gt;&lt;span&gt;.owner&amp;nbsp;&lt;/span&gt;&lt;span class="variable"&gt;$principal&lt;/span&gt;&lt;span&gt;.Name&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=""&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="variable"&gt;$path&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class="variable"&gt;$mod&lt;/span&gt;&lt;span&gt;.path&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class="alt"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="variable"&gt;$sequence&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;Coalesce-Args&amp;nbsp;&lt;/span&gt;&lt;span class="variable"&gt;$mod&lt;/span&gt;&lt;span&gt;.sequence&amp;nbsp;0&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=""&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="variable"&gt;$type&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class="variable"&gt;$mod&lt;/span&gt;&lt;span&gt;.type&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class="alt"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=""&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="variable"&gt;$modification&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt;&amp;nbsp;-TypeName&amp;nbsp;&lt;/span&gt;&lt;span class="string"&gt;&amp;quot;Microsoft.SharePoint.Administration.SPWebConfigModification&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;nbsp;-ArgumentList&amp;nbsp;&lt;/span&gt;&lt;span class="variable"&gt;$name&lt;/span&gt;&lt;span&gt;,&amp;nbsp;&lt;/span&gt;&lt;span class="variable"&gt;$path&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class="alt"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="variable"&gt;$modification&lt;/span&gt;&lt;span&gt;.Value&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class="variable"&gt;$value&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=""&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="variable"&gt;$modification&lt;/span&gt;&lt;span&gt;.Owner&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class="variable"&gt;$owner&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class="alt"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="variable"&gt;$modification&lt;/span&gt;&lt;span&gt;.Sequence&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class="variable"&gt;$sequence&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=""&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="variable"&gt;$modification&lt;/span&gt;&lt;span&gt;.Type&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class="variable"&gt;$type&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class="alt"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=""&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="keyword"&gt;if&lt;/span&gt;&lt;span&gt;&amp;nbsp;(&lt;/span&gt;&lt;span class="variable"&gt;$retract&lt;/span&gt;&lt;span&gt;)&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class="alt"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=""&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="variable"&gt;$webApplication&lt;/span&gt;&lt;span&gt;.WebConfigModifications.Remove(&lt;/span&gt;&lt;span class="variable"&gt;$modification&lt;/span&gt;&lt;span&gt;)&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class="alt"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=""&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="keyword"&gt;else&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class="alt"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=""&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="variable"&gt;$webApplication&lt;/span&gt;&lt;span&gt;.WebConfigModifications.Add(&lt;/span&gt;&lt;span class="variable"&gt;$modification&lt;/span&gt;&lt;span&gt;)&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class="alt"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=""&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li class="alt"&gt;&lt;span&gt;}&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=""&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$method&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;[Microsoft.Sharepoint.Administration.SPServiceCollection].GetMethod(&lt;/span&gt;&lt;span class="string"&gt;&amp;quot;GetValue&amp;quot;&lt;/span&gt;&lt;span&gt;,&amp;nbsp;[Type]::EmptyTypes)&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$closedMethod&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class="variable"&gt;$method&lt;/span&gt;&lt;span&gt;.MakeGenericMethod([Microsoft.Sharepoint.Administration.SPWebService])&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$services&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class="variable"&gt;$webApplication&lt;/span&gt;&lt;span&gt;.Farm.Services&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$service&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class="variable"&gt;$closedMethod&lt;/span&gt;&lt;span&gt;.Invoke(&lt;/span&gt;&lt;span class="variable"&gt;$services&lt;/span&gt;&lt;span&gt;,&amp;nbsp;[Type]::EmptyTypes)&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$service&lt;/span&gt;&lt;span&gt;.ApplyWebConfigModifications()&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$webApplication&lt;/span&gt;&lt;span&gt;.Update()&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class="alt"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$site&lt;/span&gt;&lt;span&gt;.Dispose()&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;br /&gt;
This is available as a download &lt;a href="http://www.harleygreen.com/7/section.aspx/download/4"&gt;here&lt;/a&gt;, this includes the sample configuration script shown above.</description>
      <dc:creator>Harley Green</dc:creator>
      <pubDate>Sun, 08 Feb 2009 05:27:00 GMT</pubDate>
      <category>Sharepoint</category>
    </item>
  </channel>
</rss>
