<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3280948321129906341</id><updated>2012-01-27T09:17:48.907-08:00</updated><category term='Personal'/><category term='LINQ'/><category term='IDE Customization'/><category term='Visual Studio'/><category term='DataGridView'/><category term='User Interface'/><category term='Microsoft Office'/><category term='Windows Registry'/><category term='CSS'/><category term='GridView'/><category term='SQL Server'/><category term='SharePoint'/><category term='AJAX'/><category term='Microsoft Word'/><category term='Deep Zoom'/><category term='Windows Live'/><category term='Search'/><category term='Blogger'/><category term='Google'/><category term='ASP.NET'/><category term='GUI'/><category term='C#'/><category term='Web Development'/><category term='MSDN'/><category term='Browsers'/><category term='PowerShell'/><category term='Microsoft Windows'/><category term='Rave'/><category term='Microsoft Outlook'/><category term='Hardware'/><category term='Humor'/><category term='Rant'/><category term='JavaScript'/><category term='WPF'/><category term='Microsoft Windows Vista'/><category term='InfoPath'/><category term='Silverlight'/><title type='text'>john.livingston.tech</title><subtitle type='html'>ジョン.生きている石.テックだろう</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://johnlivingstontech.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3280948321129906341/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://johnlivingstontech.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/3280948321129906341/posts/default?start-index=101&amp;max-results=100'/><author><name>john.livingston</name><uri>http://www.blogger.com/profile/15046544302781486569</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_MMTaYTUqqA8/S_wm4ecIT6I/AAAAAAAACNM/UwxxaWdJLxY/S220/4283_90775887584_507792584_1737866_2361093_n.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>104</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3280948321129906341.post-413288962333428930</id><published>2011-11-23T15:12:00.001-08:00</published><updated>2011-12-30T06:28:23.110-08:00</updated><title type='text'>Parsing XML and databinding using jsRender and jsViews (RIP jQuery Templates)</title><content type='html'>I have always been a huge fan of the very flexible &lt;a href="http://msdn.microsoft.com/en-us/library/bb398790.aspx" target="_blank"&gt;ASP.NET ListView&lt;/a&gt; control for creating templates and databinding nested data collections. Recently though I have been making a stronger effort to work with client side technologies like jQuery and client friendly data formats like JSON and JSONP. Thanks to the hard work of Microsoft’s &lt;a href="http://www.borismoore.com/" target="_blank"&gt;Boris Moore&lt;/a&gt;, a new technology called jQuery Templates was put into beta as an official plugin and a CDN was created in jQuery and Microsoft. Unfortunately after spending some time studying the framework, I learned that it had been deprecated, “rebranded” as jsRender and jsViews, and a tentative schedule to add it to the jQuery UI framework (at least the jsRender portion). Fortunately, the new framework still has support, has improved performance, and a syntax that hasn’t changed too much. This is really a useful technology, so hopefully it will get adopted soon as a first class jQuery plugin or independent framework.&lt;br /&gt;&lt;strong&gt;jsRender Databinding Syntax&lt;/strong&gt;The first line initializes the template object. The object is then rendered with the data and appended to an html element.&lt;br /&gt;$(&lt;span style="color: #a31515;"&gt;"#tblTemplate"&lt;/span&gt;).template(&lt;span style="color: #a31515;"&gt;"tblTemplate"&lt;/span&gt;);&lt;br /&gt;$(&lt;span style="color: #a31515;"&gt;"#tblBod"&lt;/span&gt;).append($.render(obj, &lt;span style="color: #a31515;"&gt;"tblTemplate"&lt;/span&gt;));&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;jsViews Template Syntax&lt;/strong&gt;This first table element sets up the html part of the template which will be used to append the data to. Conceptually this is the same as the ASP.NET ListView’s LayoutTemplate element. You then create a script element of type “text/x-jquery-tmpl” and use jsViews markup syntax to create the template. You can then render the object directly or by using conditional statements. For nested objects you can use “each” statements. This is conceptually like the ASP.NET ListView control’s ItemLayout element. See &lt;a href="http://www.blogger.com/Reducing%20JavaScript%20Code%20Using%20jsRender%20Templates%20in%20HTML5%20Applications" target="_blank"&gt;Dan Wahlin’s article&lt;/a&gt; for more information on using this syntax. &lt;br /&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;table &lt;/span&gt;&lt;span style="color: red;"&gt;id&lt;/span&gt;&lt;span style="color: blue;"&gt;="tbl"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;thead&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;tr&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;th&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;Name&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;th&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;th&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;Example&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;th&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;tr&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;thead&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;tbody &lt;/span&gt;&lt;span style="color: red;"&gt;id&lt;/span&gt;&lt;span style="color: blue;"&gt;="tblBod" /&amp;gt;&lt;br /&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;table&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;&lt;br /&gt;&amp;lt;script &lt;/span&gt;&lt;span style="color: red;"&gt;id&lt;/span&gt;&lt;span style="color: blue;"&gt;="tblTemplate" &lt;/span&gt;&lt;span style="color: red;"&gt;type&lt;/span&gt;&lt;span style="color: blue;"&gt;="text/x-jquery-tmpl"&amp;gt; &lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;lt;tr&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&amp;lt;div class='name-value'&amp;gt;{{=name}}&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {{#if $data.returnVal}}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;div class='info-value'&amp;gt;Return: {{=returnVal}}&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {{else}}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;div class='info-value'&amp;gt;Return: N/A&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {{/if}}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {{#if $data.category}}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;div class='info-value'&amp;gt;Category: {{=category}}&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {{/if}}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/td&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;div class='desc-value'&amp;gt;{{=desc}}&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;pre&amp;gt;{{=example}}&amp;lt;/pre&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/td&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;/tr&amp;gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;script&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;In my example below, I decided to use a good sized XML file (1 MB) which represents the jQuery API and is found on jQuery.com. Parsing, sorting, and rendering the XML only took about 2 seconds. Generally you would use AJAX to return some data from a web service or REST service instead, but I wanted to see how easy it was to parse XML with jQuery.&lt;br /&gt;&lt;strong&gt;&lt;br /&gt;Instructions:&lt;/strong&gt;1. Copy and paste the following an html file.&lt;br /&gt;2. Save the xml from &lt;a href="http://api.jquery.com/api"&gt;http://api.jquery.com/api&lt;/a&gt; as jqueryapi.xml.&lt;br /&gt;3. Save the jsrender.js from &lt;a href="https://github.com/BorisMoore/jsrender"&gt;https://github.com/BorisMoore/jsrender&lt;/a&gt;&lt;br /&gt;4. Save the jquery.views.js from &lt;a href="https://github.com/BorisMoore/jsviews"&gt;https://github.com/BorisMoore/jsviews&lt;/a&gt;&lt;br /&gt;5. Run the code!&lt;br /&gt;&lt;h4&gt;Screenshot&lt;/h4&gt;&lt;a href="http://lh3.ggpht.com/-pvF9-joYV9A/Ts1933GeAmI/AAAAAAAADQI/yVTnWTdsD_I/s1600-h/image9.png"&gt;&lt;img alt="image" border="0" height="633" src="http://lh6.ggpht.com/-8Orb9bulFOk/Ts194tICGDI/AAAAAAAADQQ/jfv-rA2thuQ/image_thumb5.png?imgmax=800" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="867" /&gt;&lt;/a&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;&lt;h4&gt;&lt;strong&gt;&lt;br /&gt;Source Code:&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/h4&gt;&lt;span style="color: blue;"&gt;&amp;lt;!&lt;/span&gt;&lt;span style="color: #a31515;"&gt;DOCTYPE &lt;/span&gt;&lt;span style="color: red;"&gt;html&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;br /&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;html&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;br /&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;head&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;title&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;jQuery: Parsing XML / jsrender and jsviews&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;title&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;style&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: #a31515;"&gt;body&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: red;"&gt;font-family&lt;/span&gt;: &lt;span style="color: blue;"&gt;Verdana&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: red;"&gt;font-size&lt;/span&gt;: &lt;span style="color: blue;"&gt;12px&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #a31515;"&gt;#tbl&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: red;"&gt;border&lt;/span&gt;: &lt;span style="color: blue;"&gt;solid 1px silver&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: red;"&gt;border-collapse&lt;/span&gt;: &lt;span style="color: blue;"&gt;collapse&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #a31515;"&gt;#tbl th&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: red;"&gt;font-size&lt;/span&gt;:&lt;span style="color: blue;"&gt;14px&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #a31515;"&gt;.name-value &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: red;"&gt;font-size&lt;/span&gt;: &lt;span style="color: blue;"&gt;14px&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: red;"&gt;font-weight&lt;/span&gt;:&lt;span style="color: blue;"&gt;bold&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: red;"&gt;padding-bottom&lt;/span&gt;: &lt;span style="color: blue;"&gt;10px&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #a31515;"&gt;.info-value &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: red;"&gt;padding-left&lt;/span&gt;:&lt;span style="color: blue;"&gt;10px&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: red;"&gt;font-style&lt;/span&gt;:&lt;span style="color: blue;"&gt;italic&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #a31515;"&gt;th&lt;/span&gt;, &lt;span style="color: #a31515;"&gt;td&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: red;"&gt;border&lt;/span&gt;: &lt;span style="color: blue;"&gt;solid 1px silver&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: red;"&gt;text-align&lt;/span&gt;: &lt;span style="color: blue;"&gt;left&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: red;"&gt;padding&lt;/span&gt;: &lt;span style="color: blue;"&gt;6px&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: red;"&gt;vertical-align&lt;/span&gt;: &lt;span style="color: blue;"&gt;top&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #a31515;"&gt;pre&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: red;"&gt;white-space&lt;/span&gt;: &lt;span style="color: blue;"&gt;pre-wrap&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;style&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;script&lt;/span&gt;&lt;span style="color: red;"&gt;src&lt;/span&gt;&lt;span style="color: blue;"&gt;="http://code.jquery.com/jquery.min.js"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;script&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;script&lt;/span&gt;&lt;span style="color: red;"&gt;src&lt;/span&gt;&lt;span style="color: blue;"&gt;="jsrender.js"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;script&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: green;"&gt;&amp;lt;!--Currently no CDN available: https://github.com/BorisMoore/jsrender--&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;script&lt;/span&gt;&lt;span style="color: red;"&gt;src&lt;/span&gt;&lt;span style="color: blue;"&gt;="jquery.views.js"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;script&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: green;"&gt;&amp;lt;!--Currently no CDN available: https://github.com/BorisMoore/jsviews--&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;script&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;$(&lt;span style="color: blue;"&gt;function&lt;/span&gt;($) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: green;"&gt;//XML comes from: http://api.jquery.com/api/&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;$.&lt;span style="color: blue;"&gt;get&lt;/span&gt;(&lt;span style="color: #a31515;"&gt;'jqueryapi.xml'&lt;/span&gt;, &lt;span style="color: #a31515;"&gt;'xml'&lt;/span&gt;).done(&lt;span style="color: blue;"&gt;function&lt;/span&gt;(data) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;var &lt;/span&gt;$foods = $(data).find(&lt;span style="color: #a31515;"&gt;"entry"&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;var &lt;/span&gt;obj = [];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;var &lt;/span&gt;keys = &lt;span style="color: blue;"&gt;new&lt;/span&gt;Array();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; keys[0] = &lt;span style="color: blue;"&gt;new&lt;/span&gt;Array(&lt;span style="color: #a31515;"&gt;"attribute"&lt;/span&gt;, &lt;span style="color: #a31515;"&gt;"name"&lt;/span&gt;, &lt;span style="color: #a31515;"&gt;"name"&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; keys[1] = &lt;span style="color: blue;"&gt;new&lt;/span&gt;Array(&lt;span style="color: #a31515;"&gt;"attribute"&lt;/span&gt;, &lt;span style="color: #a31515;"&gt;"returnVal"&lt;/span&gt;, &lt;span style="color: #a31515;"&gt;"return"&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; keys[2] = &lt;span style="color: blue;"&gt;new&lt;/span&gt;Array(&lt;span style="color: #a31515;"&gt;"childtext"&lt;/span&gt;, &lt;span style="color: #a31515;"&gt;"desc"&lt;/span&gt;, &lt;span style="color: #a31515;"&gt;"desc:first"&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; keys[3] = &lt;span style="color: blue;"&gt;new&lt;/span&gt;Array(&lt;span style="color: #a31515;"&gt;"childtext"&lt;/span&gt;, &lt;span style="color: #a31515;"&gt;"example"&lt;/span&gt;, &lt;span style="color: #a31515;"&gt;"example &amp;gt; code"&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; keys[4] = &lt;span style="color: blue;"&gt;new&lt;/span&gt;Array(&lt;span style="color: #a31515;"&gt;"childattribute"&lt;/span&gt;, &lt;span style="color: #a31515;"&gt;"category"&lt;/span&gt;, &lt;span style="color: #a31515;"&gt;"category:first"&lt;/span&gt;, &lt;span style="color: #a31515;"&gt;"name"&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $foods.each(&lt;span style="color: blue;"&gt;function&lt;/span&gt;(idx, elem) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;var &lt;/span&gt;$this = $(&lt;span style="color: blue;"&gt;this&lt;/span&gt;), data = {};&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; keys.forEach(&lt;span style="color: blue;"&gt;function&lt;/span&gt;(key) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;switch&lt;/span&gt;(key[0]) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;case&lt;/span&gt;&lt;span style="color: #a31515;"&gt;'attribute'&lt;/span&gt;:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data[key[1]] = $this.attr(key[2]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;break&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;case&lt;/span&gt;&lt;span style="color: #a31515;"&gt;'childtext'&lt;/span&gt;:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data[key[1]] = $this.find(key[2]).text();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;break&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;case&lt;/span&gt;&lt;span style="color: #a31515;"&gt;'childattribute'&lt;/span&gt;:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data[key[1]] = $this.find(key[2]).attr(key[3]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;break&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; });&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; obj.push(data);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; });&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; obj.sort(sort_by(&lt;span style="color: #a31515;"&gt;'category'&lt;/span&gt;, &lt;span style="color: #a31515;"&gt;'name'&lt;/span&gt;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $(&lt;span style="color: #a31515;"&gt;"#tblTemplate"&lt;/span&gt;).template(&lt;span style="color: #a31515;"&gt;"tblTemplate"&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $(&lt;span style="color: #a31515;"&gt;"#tblBod"&lt;/span&gt;).append($.render(obj, &lt;span style="color: #a31515;"&gt;"tblTemplate"&lt;/span&gt;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }).error(&lt;span style="color: blue;"&gt;function&lt;/span&gt;(data) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; console.log(&lt;span style="color: #a31515;"&gt;'fail'&lt;/span&gt;, data);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; });&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; });&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: green;"&gt;//Sorting algorithm courtesy of Felix Kling: http://stackoverflow.com/questions/6913512/how-to-sort-an-array-of-objects-by-multiple-fields&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;var &lt;/span&gt;sort_by;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (&lt;span style="color: blue;"&gt;function&lt;/span&gt;() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;var &lt;/span&gt;default_cmp = &lt;span style="color: blue;"&gt;function&lt;/span&gt;(a, b) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;if&lt;/span&gt;(a == b) &lt;span style="color: blue;"&gt;return&lt;/span&gt;0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;return&lt;/span&gt;a &amp;lt; b ? -1 : 1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; },&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; getCmpFunc = &lt;span style="color: blue;"&gt;function&lt;/span&gt;(primer, reverse) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;var &lt;/span&gt;dfc = default_cmp,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmp = default_cmp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;if&lt;/span&gt;(primer) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmp = &lt;span style="color: blue;"&gt;function&lt;/span&gt;(a, b) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;return&lt;/span&gt;dfc(primer(a), primer(b));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;if&lt;/span&gt;(reverse) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;return function&lt;/span&gt;(a, b) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;return&lt;/span&gt;-1 * cmp(a, b);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;return&lt;/span&gt;cmp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sort_by = &lt;span style="color: blue;"&gt;function&lt;/span&gt;() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;var &lt;/span&gt;fields = [],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; n_fields = arguments.length,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; field, name, reverse, cmp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;for&lt;/span&gt;(&lt;span style="color: blue;"&gt;var &lt;/span&gt;i = 0; i &amp;lt; n_fields; i++) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; field = arguments[i];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;if&lt;/span&gt;(&lt;span style="color: blue;"&gt;typeof &lt;/span&gt;field === &lt;span style="color: #a31515;"&gt;'string'&lt;/span&gt;) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; name = field;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmp = default_cmp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;else&lt;/span&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; name = field.name;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmp = getCmpFunc(field.primer, field.reverse);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fields.push({&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; name: name,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmp: cmp&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; });&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;return function&lt;/span&gt;(A, B) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;var &lt;/span&gt;a, b, name, result;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;for&lt;/span&gt;(&lt;span style="color: blue;"&gt;var &lt;/span&gt;i = 0, l = n_fields; i &amp;lt; l; i++) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; result = 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; field = fields[i];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; name = field.name;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; result = field.cmp(A[name], B[name]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;if&lt;/span&gt;(result !== 0) &lt;span style="color: blue;"&gt;break&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;return&lt;/span&gt;result;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } ());&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;script&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;br /&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;head&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;br /&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;body&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;table&lt;/span&gt;&lt;span style="color: red;"&gt;id&lt;/span&gt;&lt;span style="color: blue;"&gt;="tbl"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;thead&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;tr&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;th&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;Name&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;th&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;th&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;Example&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;th&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;tr&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;thead&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;tbody &lt;/span&gt;&lt;span style="color: red;"&gt;id&lt;/span&gt;&lt;span style="color: blue;"&gt;="tblBod" /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;table&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;script&lt;/span&gt;&lt;span style="color: red;"&gt;id&lt;/span&gt;&lt;span style="color: blue;"&gt;="tblTemplate"&lt;/span&gt;&lt;span style="color: red;"&gt;type&lt;/span&gt;&lt;span style="color: blue;"&gt;="text/x-jquery-tmpl"&amp;gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;tr&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&amp;lt;div class='name-value'&amp;gt;{{=name}}&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {{#if $data.returnVal}}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;div class='info-value'&amp;gt;Return: {{=returnVal}}&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {{else}}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;div class='info-value'&amp;gt;Return: N/A&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {{/if}}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {{#if $data.category}}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;div class='info-value'&amp;gt;Category: {{=category}}&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {{/if}}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/td&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;div class='desc-value'&amp;gt;{{=desc}}&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;pre&amp;gt;{{=example}}&amp;lt;/pre&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/td&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;script&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;br /&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;body&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;br /&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;html&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;h4&gt;Resources&lt;/h4&gt;&lt;strong&gt;github – jsrender&lt;/strong&gt;&lt;a href="https://github.com/BorisMoore/jsrender"&gt;https://github.com/BorisMoore/jsrender&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;github – jsviews&lt;/strong&gt;&lt;a href="https://github.com/BorisMoore/jsviews"&gt;https://github.com/BorisMoore/jsviews&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;jQuery Templates and JsViews: The Roadmap&lt;/strong&gt;&lt;a href="http://www.borismoore.com/2011/10/jquery-templates-and-jsviews-roadmap.html"&gt;http://www.borismoore.com/2011/10/jquery-templates-and-jsviews-roadmap.html&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;Reducing JavaScript Code Using jsRender Templates in HTML5 Applications&lt;/strong&gt;&lt;a href="http://weblogs.asp.net/dwahlin/archive/2011/11/23/reducing-javascript-code-by-using-jsrender-templates-in-html5-applications.aspx"&gt;http://weblogs.asp.net/dwahlin/archive/2011/11/23/reducing-javascript-code-by-using-jsrender-templates-in-html5-applications.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3280948321129906341-413288962333428930?l=johnlivingstontech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johnlivingstontech.blogspot.com/feeds/413288962333428930/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://johnlivingstontech.blogspot.com/2011/11/parsing-xml-and-databinding-using.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3280948321129906341/posts/default/413288962333428930'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3280948321129906341/posts/default/413288962333428930'/><link rel='alternate' type='text/html' href='http://johnlivingstontech.blogspot.com/2011/11/parsing-xml-and-databinding-using.html' title='Parsing XML and databinding using jsRender and jsViews (RIP jQuery Templates)'/><author><name>john.livingston</name><uri>http://www.blogger.com/profile/15046544302781486569</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_MMTaYTUqqA8/S_wm4ecIT6I/AAAAAAAACNM/UwxxaWdJLxY/S220/4283_90775887584_507792584_1737866_2361093_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/-8Orb9bulFOk/Ts194tICGDI/AAAAAAAADQQ/jfv-rA2thuQ/s72-c/image_thumb5.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3280948321129906341.post-4951602594272548608</id><published>2011-09-17T17:12:00.000-07:00</published><updated>2011-12-30T06:29:18.386-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>Installing SharePoint 2010 on Windows 8</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;Just for kicks I got Windows 8 Preview installed today and thought I'd see if I could get SharePoint 2010 installed as well. Fortunately, the setup instructions are pretty much identical to the ones used for Windows 7. The important thing to remember is that you need to make sure IIS uses .NET 2.0 instead of 4.0.&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;Install SQL Server 2008. I used R2, but you can use any version listed in the requirements.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;Ensure all of the required IIS features are installed through Programs and Features. The easiest way to do this is to use the script that Microsoft provides. You can do this by copying the following into a Command Prompt.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;pre style="font-family: Consolas, Courier, monospace; font-style: normal; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; word-break: break-all; word-wrap: break-word;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Segoe UI', Verdana, Arial; font-size: x-small;"&gt;start /w pkgmgr /iu:IIS-WebServerRole;IIS-WebServer;IIS-CommonHttpFeatures;^&lt;br /&gt;IIS-StaticContent;IIS-DefaultDocument;IIS-DirectoryBrowsing;IIS-HttpErrors;^&lt;br /&gt;IIS-ApplicationDevelopment;IIS-ASPNET;IIS-NetFxExtensibility;^&lt;br /&gt;IIS-ISAPIExtensions;IIS-ISAPIFilter;IIS-HealthAndDiagnostics;^&lt;br /&gt;IIS-HttpLogging;IIS-LoggingLibraries;IIS-RequestMonitor;IIS-HttpTracing;IIS-CustomLogging;IIS-ManagementScriptingTools;^&lt;br /&gt;IIS-Security;IIS-BasicAuthentication;IIS-WindowsAuthentication;IIS-DigestAuthentication;^&lt;br /&gt;IIS-RequestFiltering;IIS-Performance;IIS-HttpCompressionStatic;IIS-HttpCompressionDynamic;^&lt;br /&gt;IIS-WebServerManagementTools;IIS-ManagementConsole;IIS-IIS6ManagementCompatibility;^&lt;br /&gt;IIS-Metabase;IIS-WMICompatibility;WAS-WindowsActivationService;WAS-ProcessModel;^&lt;br /&gt;WAS-NetFxEnvironment;WAS-ConfigurationAPI;WCF-HTTP-Activation;^&lt;br /&gt;WCF-NonHTTP-Activation&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Segoe UI', Verdana, Arial;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;Update IIS and Microsoft .NET Framework 3.5.1 to use .NET Framework Version 2.0 instead of 4.0. You can do this by opening IIS, clicking the root host and then clicking Change .NET Framework Version in the right Actions pane.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;Install SharePoint 2010 prerequisites for Windows 7. The only ones I needed to install were the following:&lt;/span&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Segoe UI', Verdana, Arial;"&gt;&lt;a href="http://support.microsoft.com/kb/974405" style="color: #1364c4; text-decoration: none;"&gt;Windows Identity Foundation (Windows6.1-KB974405-x64.msu)&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Segoe UI', Verdana, Arial;"&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkID=122517" style="color: #1364c4; text-decoration: none;"&gt;Chart Controls&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Segoe UI', Verdana, Arial;"&gt;&lt;a href="http://download.microsoft.com/download/A/D/0/AD021EF1-9CBC-4D11-AB51-6A65019D4706/SQLSERVER2008_ASADOMD10.msi" style="color: #1364c4; text-decoration: none;"&gt;SQL Server Analysis Services - ADOMD.Net&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;Per the setup instructions, before running SharePoint setup, update&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;the SharePoint 2010 config.xml found under [SharePointSetupFiles]\Files\Setup. You will need to change the Setting Value in AllowWindowsClientInstall to True.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;b&gt;Setting Up the Development Environment for SharePoint 2010 on Windows Vista, Windows 7, and Windows Server 2008&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee554869.aspx"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;http://msdn.microsoft.com/en-us/library/ee554869.aspx&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;b&gt;Hardware and software requirements (SharePoint Server 2010)&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;a href="http://technet.microsoft.com/en-us/library/cc262485.aspx"&gt;http://technet.microsoft.com/en-us/library/cc262485.aspx&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-Ed96pNKM0zE/TnU9T_5N6-I/AAAAAAAAC94/EnCJFsMFiek/s1600/SharePoint2010Windows8.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="512" src="http://3.bp.blogspot.com/-Ed96pNKM0zE/TnU9T_5N6-I/AAAAAAAAC94/EnCJFsMFiek/s640/SharePoint2010Windows8.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3280948321129906341-4951602594272548608?l=johnlivingstontech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johnlivingstontech.blogspot.com/feeds/4951602594272548608/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://johnlivingstontech.blogspot.com/2011/09/installing-sharepoint-2010-on-windows-8.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3280948321129906341/posts/default/4951602594272548608'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3280948321129906341/posts/default/4951602594272548608'/><link rel='alternate' type='text/html' href='http://johnlivingstontech.blogspot.com/2011/09/installing-sharepoint-2010-on-windows-8.html' title='Installing SharePoint 2010 on Windows 8'/><author><name>john.livingston</name><uri>http://www.blogger.com/profile/15046544302781486569</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_MMTaYTUqqA8/S_wm4ecIT6I/AAAAAAAACNM/UwxxaWdJLxY/S220/4283_90775887584_507792584_1737866_2361093_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-Ed96pNKM0zE/TnU9T_5N6-I/AAAAAAAAC94/EnCJFsMFiek/s72-c/SharePoint2010Windows8.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3280948321129906341.post-6964273610180897781</id><published>2011-06-06T20:41:00.001-07:00</published><updated>2011-12-30T06:29:41.556-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>Add every installed web part to a single SharePoint page</title><content type='html'>Here is a code snippet that won't be used for normal day usage, but something is very helpful for testing web part UI and branding. This could also be used for performance benchmarking and exploring or demonstrating different web parts in a development environment. By default, the code will alphabetize the web parts by title and then adds them to the top web part zone.You can easily update the code to filter out specific web parts, update web part properties, populate specific web part zones. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Instructions&lt;/strong&gt;The first thing you’ll want to do is increase the maximum web parts per zone. The default is set to 50, but you can increase it by editing your web.config. &lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&amp;lt;WebPartLimits MaxZoneParts="100" PropertySize="1048576" /&amp;gt;&lt;br /&gt;You can then create a C# Console Application in Visual Studio, add a reference to Microsoft.SharePoint, and then add the following code to Program.cs. This will work with SharePoint 2007 and 2010 as long as you reference the correct assembly. Don’t forget to make sure your Visual Studio project’s Platform Target is Any CPU or x64.&lt;br /&gt;&lt;span style="color: red;"&gt;&lt;strong&gt;Updated 6/7/2010&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="color: black;"&gt;Better exception handling. &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: black;"&gt;Option to delete existing web parts before adding.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Link to Web Part Page Maintenance.&lt;/li&gt;&lt;/ul&gt;&lt;strong&gt;Notes:&lt;/strong&gt; &lt;br /&gt;The Web Analytics Web Part and Date Filter web parts can be added manually, but have bugs that won’t allow them to be added programmatically. See comments in source code. The Excel Web Access web part is also the only one that did not have a Web Part Title by default. This is why I ended up using the Web Parts gallery list title instead. Hopefully these will be addressed with an later update. &lt;br /&gt;One other thing I noticed is that sometimes the code will not add all web parts. This usually happens when I have run the code too many times in a row and my guess is a timer job is getting caught up or something is being cached. If you are on a slower environment, you may want to consider adding a few sleep statements between each web part added.&lt;br /&gt;As far as results are concerned, when I create a site collection using the Publishing Portal site template and enable every site collection and site feature, I see 75 web parts total. Other than the Web Analytics and Date Filter web parts, I have seen everything else successfully added to the page.&lt;br /&gt;&lt;strong&gt;Screenshots&lt;/strong&gt;&lt;br /&gt;Console Application – Note: I did find errors with the Web Analytics and Date Filter web parts&lt;br /&gt;&lt;a href="http://lh4.ggpht.com/-BhHOK9laPAQ/Te2d2dZJ_PI/AAAAAAAACvc/VOZHlCgXrmY/s1600-h/image%25255B19%25255D.png"&gt;&lt;img alt="image" border="0" height="918" src="http://lh3.ggpht.com/-xD8fPJDzWzc/Te2d3L5d4nI/AAAAAAAACvg/MuY8uVzNFAM/image_thumb%25255B11%25255D.png?imgmax=800" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="677" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;SharePoint Page&lt;/strong&gt; – Notice how large that vertical scrollbar is. &lt;img alt="Winking smile" class="wlEmoticon wlEmoticon-winkingsmile" src="http://lh4.ggpht.com/-D2xtSaP-PLg/Te2d3YE9OTI/AAAAAAAACvk/ZWTPp_ZogqM/wlEmoticon-winkingsmile%25255B2%25255D.png?imgmax=800" style="border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none;" /&gt;&lt;br /&gt;&lt;a href="http://lh4.ggpht.com/-HBY90ROLFZQ/Te2d35FnzgI/AAAAAAAACvo/V8j2UuHoErc/s1600-h/image%25255B29%25255D.png"&gt;&lt;img alt="image" border="0" height="1154" src="http://lh5.ggpht.com/-cyLO1v-k8XE/Te2d4dtyxTI/AAAAAAAACvs/tewOUtiGRc0/image_thumb%25255B17%25255D.png?imgmax=800" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="836" /&gt;&lt;/a&gt;&lt;br /&gt;Keep in mind that you can easily delete any web parts, by going to the Web Part Page Maintenance page. Simply append the query string ?contents=1 to the page URL.&lt;br /&gt;&lt;a href="http://lh5.ggpht.com/-7bNFdvDoSWs/Te2d5Du7hAI/AAAAAAAACvw/7NINo0IoPJ8/s1600-h/image%25255B4%25255D.png"&gt;&lt;img alt="image" border="0" height="808" src="http://lh6.ggpht.com/-I7516yYTdig/Te2d51TNl6I/AAAAAAAACv0/B6Jz6Y6xgQY/image_thumb%25255B2%25255D.png?imgmax=800" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="922" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;Source Code:&lt;/strong&gt;&lt;br /&gt;&lt;pre class="code"&gt;&lt;span style="color: blue;"&gt;using &lt;/span&gt;System;&lt;br /&gt;&lt;span style="color: blue;"&gt;using &lt;/span&gt;System.Collections.Generic;&lt;br /&gt;&lt;span style="color: blue;"&gt;using &lt;/span&gt;System.IO;&lt;br /&gt;&lt;span style="color: blue;"&gt;using &lt;/span&gt;System.Web.UI.WebControls.WebParts;&lt;br /&gt;&lt;span style="color: blue;"&gt;using &lt;/span&gt;System.Xml;&lt;br /&gt;&lt;span style="color: blue;"&gt;using &lt;/span&gt;Microsoft.SharePoint;&lt;br /&gt;&lt;span style="color: blue;"&gt;using &lt;/span&gt;Microsoft.SharePoint.WebPartPages;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;namespace &lt;/span&gt;AddAllWebParts&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: blue;"&gt;class &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;Program&lt;br /&gt;    &lt;/span&gt;{&lt;br /&gt;        &lt;span style="color: blue;"&gt;static void &lt;/span&gt;Main(&lt;span style="color: blue;"&gt;string&lt;/span&gt;[] args)&lt;br /&gt;        {&lt;br /&gt;            AddAllWebParts(&lt;span style="color: #a31515;"&gt;"http://spdev/sites/publishingportal/SitePages/Home.aspx"&lt;/span&gt;, &lt;span style="color: blue;"&gt;true&lt;/span&gt;);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: blue;"&gt;public static void &lt;/span&gt;AddAllWebParts(&lt;span style="color: blue;"&gt;string &lt;/span&gt;pageUrl, &lt;span style="color: blue;"&gt;bool &lt;/span&gt;deleteExisting)&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: blue;"&gt;int &lt;/span&gt;wpInstalledTotal = 0;&lt;br /&gt;            &lt;span style="color: blue;"&gt;int &lt;/span&gt;wpTotal = 0;&lt;br /&gt;            &lt;span style="color: blue;"&gt;string &lt;/span&gt;webPartTag = &lt;span style="color: #a31515;"&gt;"&amp;lt;WebPartPages:WebPartZone"&lt;/span&gt;;&lt;br /&gt;            &lt;span style="color: blue;"&gt;try&lt;br /&gt;            &lt;/span&gt;{&lt;br /&gt;                &lt;span style="color: blue;"&gt;using &lt;/span&gt;(&lt;span style="color: #2b91af;"&gt;SPSite &lt;/span&gt;site = &lt;span style="color: blue;"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;SPSite&lt;/span&gt;(pageUrl))&lt;br /&gt;                {&lt;br /&gt;                    &lt;span style="color: blue;"&gt;using &lt;/span&gt;(&lt;span style="color: #2b91af;"&gt;SPWeb &lt;/span&gt;web = site.OpenWeb())&lt;br /&gt;                    {&lt;br /&gt;                        &lt;span style="color: blue;"&gt;using &lt;/span&gt;(&lt;span style="color: #2b91af;"&gt;SPLimitedWebPartManager &lt;/span&gt;wpMgr =&lt;br /&gt;                            web.GetLimitedWebPartManager(pageUrl, &lt;span style="color: #2b91af;"&gt;PersonalizationScope&lt;/span&gt;.Shared))&lt;br /&gt;                        {&lt;br /&gt;                            &lt;span style="color: blue;"&gt;if &lt;/span&gt;(deleteExisting)&lt;br /&gt;                            {&lt;br /&gt;                                &lt;span style="color: blue;"&gt;try&lt;br /&gt;                                &lt;/span&gt;{&lt;br /&gt;                                    &lt;span style="color: #2b91af;"&gt;List&lt;/span&gt;&amp;lt;System.Web.UI.WebControls.WebParts.&lt;span style="color: #2b91af;"&gt;WebPart&lt;/span&gt;&amp;gt; pageWps = &lt;br /&gt;                                        &lt;span style="color: blue;"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;List&lt;/span&gt;&amp;lt;System.Web.UI.WebControls.WebParts.&lt;span style="color: #2b91af;"&gt;WebPart&lt;/span&gt;&amp;gt;();&lt;br /&gt;                                    &lt;span style="color: blue;"&gt;foreach &lt;/span&gt;(System.Web.UI.WebControls.WebParts.&lt;span style="color: #2b91af;"&gt;WebPart &lt;/span&gt;wp &lt;span style="color: blue;"&gt;in &lt;/span&gt;wpMgr.WebParts)&lt;br /&gt;                                    {&lt;br /&gt;                                        pageWps.Add(wp);&lt;br /&gt;                                    }&lt;br /&gt;                                    &lt;span style="color: blue;"&gt;foreach &lt;/span&gt;(System.Web.UI.WebControls.WebParts.&lt;span style="color: #2b91af;"&gt;WebPart &lt;/span&gt;wp &lt;span style="color: blue;"&gt;in &lt;/span&gt;pageWps)&lt;br /&gt;                                    {&lt;br /&gt;                                        &lt;span style="color: #2b91af;"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: blue;"&gt;string&lt;/span&gt;.Format(&lt;span style="color: #a31515;"&gt;"Deleting Web Part: {0}"&lt;/span&gt;, wp.Title));&lt;br /&gt;                                        wpMgr.DeleteWebPart(wp);&lt;br /&gt;                                        web.Update();&lt;br /&gt;                                    }&lt;br /&gt;                                }&lt;br /&gt;                                &lt;span style="color: blue;"&gt;catch &lt;/span&gt;(&lt;span style="color: #2b91af;"&gt;Exception &lt;/span&gt;ex)&lt;br /&gt;                                {&lt;br /&gt;                                    &lt;span style="color: #2b91af;"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: #a31515;"&gt;"Error Deleting Existing Web Parts" &lt;/span&gt;+ ex.Message);&lt;br /&gt;                                }&lt;br /&gt;                            }&lt;br /&gt;                            web.GetCatalog(&lt;span style="color: #2b91af;"&gt;SPListTemplateType&lt;/span&gt;.WebPartCatalog);&lt;br /&gt;                            &lt;span style="color: #2b91af;"&gt;SPList &lt;/span&gt;wpList = web.GetCatalog(&lt;span style="color: #2b91af;"&gt;SPListTemplateType&lt;/span&gt;.WebPartCatalog);&lt;br /&gt;                            &lt;span style="color: #2b91af;"&gt;SPFile &lt;/span&gt;file = web.GetFile(pageUrl);&lt;br /&gt;                            &lt;span style="color: blue;"&gt;string &lt;/span&gt;zoneId = &lt;span style="color: blue;"&gt;string&lt;/span&gt;.Empty;&lt;br /&gt;                            &lt;span style="color: blue;"&gt;string &lt;/span&gt;sourceCode = System.Text.&lt;span style="color: #2b91af;"&gt;Encoding&lt;/span&gt;.UTF8.GetString(file.OpenBinary());&lt;br /&gt;                            &lt;span style="color: blue;"&gt;if &lt;/span&gt;(sourceCode.IndexOf(webPartTag) &amp;gt; -1)&lt;br /&gt;                            {&lt;br /&gt;                                zoneId = sourceCode.Substring(sourceCode.IndexOf(webPartTag));&lt;br /&gt;                                &lt;span style="color: blue;"&gt;if &lt;/span&gt;(zoneId.IndexOf(&lt;span style="color: #a31515;"&gt;"ID="&lt;/span&gt;) &amp;gt; -1)&lt;br /&gt;                                {&lt;br /&gt;                                    zoneId = zoneId.Substring(zoneId.IndexOf(&lt;span style="color: #a31515;"&gt;"ID="&lt;/span&gt;)).Replace(&lt;span style="color: #a31515;"&gt;"ID=\""&lt;/span&gt;, &lt;span style="color: #a31515;"&gt;""&lt;/span&gt;);&lt;br /&gt;                                    zoneId = zoneId.Substring(0, zoneId.IndexOf(&lt;span style="color: #a31515;"&gt;"\""&lt;/span&gt;));&lt;br /&gt;                                }&lt;br /&gt;                            }&lt;br /&gt;                            &lt;span style="color: blue;"&gt;if &lt;/span&gt;(!&lt;span style="color: blue;"&gt;string&lt;/span&gt;.IsNullOrEmpty(zoneId))&lt;br /&gt;                            {&lt;br /&gt;                                &lt;span style="color: #2b91af;"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="color: #2b91af;"&gt;SPListItem&lt;/span&gt;&amp;gt; wpItems = &lt;span style="color: blue;"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="color: #2b91af;"&gt;SPListItem&lt;/span&gt;&amp;gt;();&lt;br /&gt;                                wpTotal = wpList.Items.Count;&lt;br /&gt;                                &lt;span style="color: blue;"&gt;foreach &lt;/span&gt;(&lt;span style="color: #2b91af;"&gt;SPListItem &lt;/span&gt;item &lt;span style="color: blue;"&gt;in &lt;/span&gt;wpList.Items)&lt;br /&gt;                                {&lt;br /&gt;                                    wpItems.Add(item);&lt;br /&gt;                                }&lt;br /&gt;                                wpItems.Sort((x1, x2) =&amp;gt; x1.Title.CompareTo(x2.Title));&lt;br /&gt;                                wpItems.Reverse();&lt;br /&gt;                                &lt;span style="color: blue;"&gt;foreach &lt;/span&gt;(&lt;span style="color: #2b91af;"&gt;SPListItem &lt;/span&gt;item &lt;span style="color: blue;"&gt;in &lt;/span&gt;wpItems)&lt;br /&gt;                                {&lt;br /&gt;                                    &lt;span style="color: blue;"&gt;try&lt;br /&gt;                                    &lt;/span&gt;{&lt;br /&gt;                                        &lt;span style="color: blue;"&gt;string &lt;/span&gt;fileName = &lt;span style="color: blue;"&gt;string&lt;/span&gt;.Format(&lt;span style="color: #a31515;"&gt;"{0}/{1}"&lt;/span&gt;, item.Web.Url, item.File.Url);&lt;br /&gt;                                        &lt;span style="color: #2b91af;"&gt;XmlTextReader &lt;/span&gt;reader = &lt;br /&gt;                                            &lt;span style="color: blue;"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;XmlTextReader&lt;/span&gt;(&lt;span style="color: blue;"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;StringReader&lt;/span&gt;(item.Web.GetFileAsString(fileName)));&lt;br /&gt;                                        &lt;span style="color: blue;"&gt;string &lt;/span&gt;error;&lt;br /&gt;                                        System.Web.UI.WebControls.WebParts.&lt;span style="color: #2b91af;"&gt;WebPart &lt;/span&gt;wp = wpMgr.ImportWebPart(reader, &lt;span style="color: blue;"&gt;out &lt;/span&gt;error);&lt;br /&gt;                                        &lt;span style="color: blue;"&gt;if &lt;/span&gt;(&lt;span style="color: blue;"&gt;string&lt;/span&gt;.IsNullOrEmpty(error))&lt;br /&gt;                                        {&lt;br /&gt;                                            &lt;span style="color: #2b91af;"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: blue;"&gt;string&lt;/span&gt;.Format(&lt;span style="color: #a31515;"&gt;"Adding Web Part: {0}"&lt;/span&gt;, item.Title));&lt;br /&gt;&lt;span style="color: blue;"&gt;                                            switch &lt;/span&gt;(item.Title)&lt;br /&gt;                                            {&lt;br /&gt;                                                &lt;span style="color: blue;"&gt;case &lt;/span&gt;&lt;span style="color: #a31515;"&gt;"Date Filter"&lt;/span&gt;:&lt;br /&gt;                                                    &lt;span style="color: green;"&gt;//TODO: Date Filter has a TargetInvocationException. Not sure why this fails.&lt;br /&gt;                                                    &lt;/span&gt;&lt;span style="color: blue;"&gt;break&lt;/span&gt;;&lt;br /&gt;                                                &lt;span style="color: blue;"&gt;case &lt;/span&gt;&lt;span style="color: #a31515;"&gt;"Web Analytics Web Part"&lt;/span&gt;:&lt;br /&gt;                                                    &lt;span style="color: green;"&gt;//TODO: Web Analytics Web Part fails with an XML. &lt;br /&gt;                                                    //I have validated the dwp and even removed comments to no avail.&lt;br /&gt;                                                    //http://social.technet.microsoft.com/Forums/en-CA/sharepoint2010programming/thread/f2f7684d-58a7-4fb4-94a4-199ba4132a53&lt;br /&gt;                                                    &lt;/span&gt;&lt;span style="color: blue;"&gt;break&lt;/span&gt;;&lt;br /&gt;                                            }&lt;br /&gt;                                            wpMgr.AddWebPart(wp, zoneId, &lt;span style="color: #2b91af;"&gt;Convert&lt;/span&gt;.ToInt32(0));&lt;br /&gt;                                            wpMgr.SaveChanges(wp);&lt;br /&gt;                                            web.Update();&lt;br /&gt;                                            wpInstalledTotal++;&lt;br /&gt;                                        }&lt;br /&gt;                                        &lt;span style="color: blue;"&gt;else&lt;br /&gt;                                        &lt;/span&gt;{&lt;br /&gt;                                            &lt;span style="color: #2b91af;"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: blue;"&gt;string&lt;/span&gt;.Format(&lt;span style="color: #a31515;"&gt;"Error Adding Web Part: {0} {1})"&lt;/span&gt;, item.Title, error));&lt;br /&gt;                                        }&lt;br /&gt;                                    }&lt;br /&gt;                                    &lt;span style="color: blue;"&gt;catch &lt;/span&gt;(&lt;span style="color: #2b91af;"&gt;Exception &lt;/span&gt;ex)&lt;br /&gt;                                    {&lt;br /&gt;                                        &lt;span style="color: #2b91af;"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: blue;"&gt;string&lt;/span&gt;.Format(&lt;span style="color: #a31515;"&gt;"Error Adding Web Part: {0} {1})"&lt;/span&gt;,&lt;br /&gt;                                            item.Title, ex.Message));&lt;br /&gt;                                    }&lt;br /&gt;                                }&lt;br /&gt;                                &lt;span style="color: #2b91af;"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: #a31515;"&gt;"Adding Content Editor Web Part with Web Part Page Maintenance Link"&lt;/span&gt;);&lt;br /&gt;                                &lt;span style="color: #2b91af;"&gt;ContentEditorWebPart &lt;/span&gt;contentEditor = &lt;span style="color: blue;"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;ContentEditorWebPart&lt;/span&gt;();&lt;br /&gt;                                contentEditor.ZoneID = zoneId;&lt;br /&gt;                                contentEditor.ChromeType = &lt;span style="color: #2b91af;"&gt;PartChromeType&lt;/span&gt;.None;&lt;br /&gt;                                &lt;span style="color: #2b91af;"&gt;XmlDocument &lt;/span&gt;xmlDoc = &lt;span style="color: blue;"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;XmlDocument&lt;/span&gt;();&lt;br /&gt;                                &lt;span style="color: #2b91af;"&gt;XmlElement &lt;/span&gt;xmlElement = xmlDoc.CreateElement(&lt;span style="color: #a31515;"&gt;"p"&lt;/span&gt;);&lt;br /&gt;                                xmlElement.InnerText = &lt;span style="color: #a31515;"&gt;"&amp;lt;h3&amp;gt;&amp;lt;a href='" &lt;/span&gt;+ pageUrl + &lt;span style="color: #a31515;"&gt;"?contents=1'&amp;gt;Web Part Page Maintenance&amp;lt;/a&amp;gt;&amp;lt;/h3&amp;gt;"&lt;/span&gt;;&lt;br /&gt;                                contentEditor.Content = xmlElement;&lt;br /&gt;                                contentEditor.Content.InnerText = xmlElement.InnerText;&lt;br /&gt;                                wpMgr.AddWebPart(contentEditor, contentEditor.ZoneID, 0);&lt;br /&gt;                                wpMgr.SaveChanges(contentEditor);&lt;br /&gt;                                web.Update();&lt;br /&gt;                            }&lt;br /&gt;                            &lt;span style="color: blue;"&gt;else&lt;br /&gt;                            &lt;/span&gt;{&lt;br /&gt;                                &lt;span style="color: #2b91af;"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: #a31515;"&gt;"The page contains no web part zones."&lt;/span&gt;);&lt;br /&gt;                            }&lt;br /&gt;                        }&lt;br /&gt;                    }&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;            &lt;span style="color: blue;"&gt;catch &lt;/span&gt;(&lt;span style="color: #2b91af;"&gt;Exception &lt;/span&gt;ex)&lt;br /&gt;            {&lt;br /&gt;                &lt;span style="color: #2b91af;"&gt;Console&lt;/span&gt;.WriteLine(ex.ToString());&lt;br /&gt;            }&lt;br /&gt;            &lt;span style="color: #2b91af;"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: blue;"&gt;string&lt;/span&gt;.Format(&lt;span style="color: #a31515;"&gt;"Total Web Parts Added: {0} of {1}"&lt;/span&gt;, wpInstalledTotal.ToString(), wpTotal.ToString()));&lt;br /&gt;            &lt;span style="color: #2b91af;"&gt;Console&lt;/span&gt;.Read();&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3280948321129906341-6964273610180897781?l=johnlivingstontech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johnlivingstontech.blogspot.com/feeds/6964273610180897781/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://johnlivingstontech.blogspot.com/2011/06/add-every-installed-web-part-to-single.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3280948321129906341/posts/default/6964273610180897781'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3280948321129906341/posts/default/6964273610180897781'/><link rel='alternate' type='text/html' href='http://johnlivingstontech.blogspot.com/2011/06/add-every-installed-web-part-to-single.html' title='Add every installed web part to a single SharePoint page'/><author><name>john.livingston</name><uri>http://www.blogger.com/profile/15046544302781486569</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_MMTaYTUqqA8/S_wm4ecIT6I/AAAAAAAACNM/UwxxaWdJLxY/S220/4283_90775887584_507792584_1737866_2361093_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/-xD8fPJDzWzc/Te2d3L5d4nI/AAAAAAAACvg/MuY8uVzNFAM/s72-c/image_thumb%25255B11%25255D.png?imgmax=800' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3280948321129906341.post-6998957970089396162</id><published>2011-06-03T14:31:00.001-07:00</published><updated>2011-12-30T06:31:17.595-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>Create a favorites icon (favicon) for your SharePoint 2010 site</title><content type='html'>With SharePoint 2010, Microsoft has provided a new control called SPShortcutIcon. Sadly, if you are trying to use this within a feature deployment and would like to use relative paths using $SPUrl variables, you will run into some issues. This is because the SPShortcut.IconUrl is of type URI and the $SPUrl variable cannot be cast properly. Fortunately, there is a work around. It’s a bit ugly, but instead of using the control, you can use Literal controls to render the proper html link control.&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size: x-small;"&gt;SPShortcut usage– This is hardcoded, so won’t work with feature deployments.&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;SharePoint&lt;/span&gt;&lt;span style="color: blue;"&gt;:&lt;/span&gt;&lt;span style="color: maroon;"&gt;SPShortcutIcon &lt;/span&gt;&lt;span style="color: red;"&gt;runat&lt;/span&gt;&lt;span style="color: blue;"&gt;="server" &lt;/span&gt;&lt;span style="color: red;"&gt;IconUrl&lt;/span&gt;&lt;span style="color: blue;"&gt;="/Style Library/Waffles/favicon.ico"/&amp;gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;SPShortcut usage with $SPUrl – This will result in the following error: &lt;em&gt;Unable to cast object of type &lt;/em&gt;&lt;/strong&gt;&lt;span style="color: red;"&gt;&lt;em&gt;&lt;strong&gt;'System.String' to type 'System.Uri'.&lt;/strong&gt;&lt;/em&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;br /&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;SharePoint&lt;/span&gt;&lt;span style="color: blue;"&gt;:&lt;/span&gt;&lt;span style="color: maroon;"&gt;SPShortcutIcon &lt;/span&gt;&lt;span style="color: red;"&gt;runat&lt;/span&gt;&lt;span style="color: blue;"&gt;="server" &lt;/span&gt;&lt;span style="color: red;"&gt;IconUrl&lt;/span&gt;&lt;span style="color: blue;"&gt;="&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;"&gt;&amp;lt;%&lt;/span&gt;&lt;span style="color: blue;"&gt; $&lt;/span&gt;SPUrl:~sitecollection/Style Library/Acme/favicon.ico &lt;span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;"&gt;%&amp;gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;" /&amp;gt;&lt;/span&gt;&lt;strong&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;Solution&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;&lt;br /&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;asp&lt;/span&gt;&lt;span style="color: blue;"&gt;:&lt;/span&gt;&lt;span style="color: maroon;"&gt;Literal &lt;/span&gt;&lt;span style="color: red;"&gt;runat&lt;/span&gt;&lt;span style="color: blue;"&gt;="server" &lt;/span&gt;&lt;span style="color: red;"&gt;Text&lt;/span&gt;&lt;span style="color: blue;"&gt;="&amp;amp;lt;link rel='shortcut icon' href='" /&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;asp&lt;/span&gt;&lt;span style="color: blue;"&gt;:&lt;/span&gt;&lt;span style="color: maroon;"&gt;Literal &lt;/span&gt;&lt;span style="color: red;"&gt;runat&lt;/span&gt;&lt;span style="color: blue;"&gt;="server" &lt;/span&gt;&lt;span style="color: red;"&gt;Text&lt;/span&gt;&lt;span style="color: blue;"&gt;="&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;"&gt;&amp;lt;%&lt;/span&gt;&lt;span style="color: blue;"&gt; $&lt;/span&gt;SPUrl:~sitecollection/Style Library/Acme/favicon.ico &lt;span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;"&gt;%&amp;gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;" /&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;asp&lt;/span&gt;&lt;span style="color: blue;"&gt;:&lt;/span&gt;&lt;span style="color: maroon;"&gt;Literal &lt;/span&gt;&lt;span style="color: red;"&gt;runat&lt;/span&gt;&lt;span style="color: blue;"&gt;="server" &lt;/span&gt;&lt;span style="color: red;"&gt;Text&lt;/span&gt;&lt;span style="color: blue;"&gt;="' type='image/vnd.microsoft.icon' /&amp;amp;gt;" /&amp;gt;&lt;/span&gt;&lt;span style="font-family: Verdana; font-size: x-small;"&gt;&lt;strong&gt;&lt;br /&gt;Google.com’s favorite icon&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre class="code"&gt;&lt;a href="http://lh5.ggpht.com/--b_FQ_3qs1A/TelSnCJvlcI/AAAAAAAACvU/fSF_vDSisvA/s1600-h/image%25255B7%25255D.png"&gt;&lt;img alt="image" border="0" height="80" src="http://lh5.ggpht.com/-Kw_85ZQZAWc/TelSniJ1mOI/AAAAAAAACvY/GJfPeyDGmVU/image_thumb%25255B2%25255D.png?imgmax=800" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="286" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family: Verdana; font-size: x-small;"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class="code"&gt;&lt;span style="font-family: Verdana; font-size: x-small;"&gt;&lt;strong&gt;SharePoint 2010, Favorites Icons (FavIcons) and SPUrl (SPUrlExpressionBuilder)&lt;/strong&gt;Credit goes to Joel for this tip. Unfortunately, I could only get to his post via Google cache.&lt;/span&gt;&lt;a href="http://joelblogs.co.uk/2010/11/09/sharepoint-2010-favorites-icons-favicons-and-spurl-spurlexpressionbuilder/"&gt;http://joelblogs.co.uk/2010/11/09/sharepoint-2010-favorites-icons-favicons-and-spurl-spurlexpressionbuilder/&lt;/a&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3280948321129906341-6998957970089396162?l=johnlivingstontech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johnlivingstontech.blogspot.com/feeds/6998957970089396162/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://johnlivingstontech.blogspot.com/2011/06/create-favorites-icon-favicon-for-your.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3280948321129906341/posts/default/6998957970089396162'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3280948321129906341/posts/default/6998957970089396162'/><link rel='alternate' type='text/html' href='http://johnlivingstontech.blogspot.com/2011/06/create-favorites-icon-favicon-for-your.html' title='Create a favorites icon (favicon) for your SharePoint 2010 site'/><author><name>john.livingston</name><uri>http://www.blogger.com/profile/15046544302781486569</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_MMTaYTUqqA8/S_wm4ecIT6I/AAAAAAAACNM/UwxxaWdJLxY/S220/4283_90775887584_507792584_1737866_2361093_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/-Kw_85ZQZAWc/TelSniJ1mOI/AAAAAAAACvY/GJfPeyDGmVU/s72-c/image_thumb%25255B2%25255D.png?imgmax=800' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3280948321129906341.post-4471736806223281210</id><published>2011-06-01T16:30:00.001-07:00</published><updated>2011-12-30T06:31:48.705-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>Get SharePoint audit details across the farm for specific users</title><content type='html'>This code snippet gets all audit details for specific users across an entire SharePoint 2007/2010 farm and saves them to a CSV file. I have also added a method to include a file extension column. This comes in handy as you will likely want to filter out web extensions like aspx, html, css, etc., picture formats, and folders. In order to get any data, auditing will have to have been enabled at the Site Collection level through site settings or programmatically at the item level. Keep in mind that this will take some time if your AuditData tables are very large, so in this case you will want to make further refinements by filtering by site collection, list, or list item. Site collections can be filtered out by tweaking the loop statements below, while you can filter out list or list items by updating the RestrictToList or RestrictToListItem methods of the SPAuditQuery object.&lt;br /&gt;&lt;b&gt;Helpful Links&lt;br /&gt;Configure audit settings for a site collections&lt;/b&gt;&lt;a href="http://office.microsoft.com/en-us/sharepoint-server-help/configure-audit-settings-for-a-site-collection-HA010099726.aspx"&gt;http://office.microsoft.com/en-us/sharepoint-server-help/configure-audit-settings-for-a-site-collection-HA010099726.aspx&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;Custom Auditing in SharePoint&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/magazine/cc794261.aspx"&gt;http://msdn.microsoft.com/en-us/magazine/cc794261.aspx&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;&lt;br /&gt;Instructions&lt;/strong&gt;Create a c# Console Application in Visual Studio, add a reference to Microsoft.SharePoint, and then add the following code to Program.cs. This will work with SharePoint 2007 and 2010 as long as you reference the correct assembly. Don’t forget to make sure your Visual Studio project’s Platform Target is Any CPU or x64.&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;pre class="code"&gt;&lt;span style="color: blue;"&gt;using &lt;/span&gt;System;&lt;br /&gt;&lt;span style="color: blue;"&gt;using &lt;/span&gt;System.IO;&lt;br /&gt;&lt;span style="color: blue;"&gt;using &lt;/span&gt;System.Text;&lt;br /&gt;&lt;span style="color: blue;"&gt;using &lt;/span&gt;System.Windows.Forms;&lt;br /&gt;&lt;span style="color: blue;"&gt;using &lt;/span&gt;Microsoft.SharePoint;&lt;br /&gt;&lt;span style="color: blue;"&gt;using &lt;/span&gt;Microsoft.SharePoint.Administration;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;namespace &lt;/span&gt;SPCheckAudit&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: blue;"&gt;class &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;Program&lt;br /&gt;    &lt;/span&gt;{&lt;br /&gt;        [&lt;span style="color: #2b91af;"&gt;STAThread&lt;/span&gt;]&lt;br /&gt;        &lt;span style="color: blue;"&gt;static void &lt;/span&gt;Main(&lt;span style="color: blue;"&gt;string&lt;/span&gt;[] args)&lt;br /&gt;        {&lt;br /&gt;            GetUserAuditEntries(&lt;span style="color: blue;"&gt;new string&lt;/span&gt;[] { &lt;span style="color: #a31515;"&gt;"corp\\jdoe"&lt;/span&gt;, &lt;span style="color: #a31515;"&gt;"corp\bsmith" &lt;/span&gt;});&lt;br /&gt;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: blue;"&gt;public static void &lt;/span&gt;GetUserAuditEntries(&lt;span style="color: blue;"&gt;string&lt;/span&gt;[] userLogins)&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: #2b91af;"&gt;StringBuilder &lt;/span&gt;sb = &lt;span style="color: blue;"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;StringBuilder&lt;/span&gt;();&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515;"&gt;"User,FullUrl,DocLocation,Event,EventData,EventName,EventSource,ItemId,ItemType," &lt;/span&gt;+&lt;br /&gt;                &lt;span style="color: #a31515;"&gt;"LocationType,MachineIP,MachineName,Occurred,SiteId,SourceName,UserId\r\n"&lt;/span&gt;);&lt;br /&gt;            &lt;span style="color: blue;"&gt;try&lt;br /&gt;            &lt;/span&gt;{&lt;br /&gt;                &lt;span style="color: #2b91af;"&gt;SPSecurity&lt;/span&gt;.RunWithElevatedPrivileges(&lt;span style="color: blue;"&gt;delegate&lt;/span&gt;()&lt;br /&gt;                {&lt;br /&gt;                    &lt;span style="color: #2b91af;"&gt;SPServiceCollection &lt;/span&gt;services = &lt;span style="color: #2b91af;"&gt;SPFarm&lt;/span&gt;.Local.Services;&lt;br /&gt;                    &lt;span style="color: blue;"&gt;foreach &lt;/span&gt;(&lt;span style="color: #2b91af;"&gt;SPService &lt;/span&gt;curService &lt;span style="color: blue;"&gt;in &lt;/span&gt;services)&lt;br /&gt;                    {&lt;br /&gt;                        &lt;span style="color: blue;"&gt;if &lt;/span&gt;(curService &lt;span style="color: blue;"&gt;is &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;SPWebService&lt;/span&gt;)&lt;br /&gt;                        {&lt;br /&gt;&lt;br /&gt;                            &lt;span style="color: #2b91af;"&gt;SPWebService &lt;/span&gt;webService = (&lt;span style="color: #2b91af;"&gt;SPWebService&lt;/span&gt;)curService;&lt;br /&gt;                            &lt;span style="color: blue;"&gt;foreach &lt;/span&gt;(&lt;span style="color: #2b91af;"&gt;SPWebApplication &lt;/span&gt;spWebApplication &lt;span style="color: blue;"&gt;in &lt;/span&gt;webService.WebApplications)&lt;br /&gt;                            {&lt;br /&gt;                                &lt;span style="color: blue;"&gt;foreach &lt;/span&gt;(&lt;span style="color: #2b91af;"&gt;SPSite &lt;/span&gt;site &lt;span style="color: blue;"&gt;in &lt;/span&gt;spWebApplication.Sites)&lt;br /&gt;                                {&lt;br /&gt;                                    &lt;span style="color: #2b91af;"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: #a31515;"&gt;"Checking Site: " &lt;/span&gt;+ site.ID + &lt;span style="color: #a31515;"&gt;" " &lt;/span&gt;+ site.PortalName);&lt;br /&gt;&lt;br /&gt;                                    &lt;span style="color: blue;"&gt;foreach &lt;/span&gt;(&lt;span style="color: blue;"&gt;string &lt;/span&gt;userLogin &lt;span style="color: blue;"&gt;in &lt;/span&gt;userLogins)&lt;br /&gt;                                    {&lt;br /&gt;                                        &lt;span style="color: blue;"&gt;try&lt;br /&gt;                                        &lt;/span&gt;{&lt;br /&gt;                                            &lt;span style="color: #2b91af;"&gt;SPUser &lt;/span&gt;user = site.RootWeb.AllUsers[userLogin];&lt;br /&gt;                                            &lt;span style="color: #2b91af;"&gt;SPAuditQuery &lt;/span&gt;auditQuery = &lt;span style="color: blue;"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;SPAuditQuery&lt;/span&gt;(site);&lt;br /&gt;                                            &lt;span style="color: #2b91af;"&gt;SPAuditEntryCollection &lt;/span&gt;auditItems = site.Audit.GetEntries(auditQuery);&lt;br /&gt;                                            &lt;span style="color: blue;"&gt;foreach &lt;/span&gt;(&lt;span style="color: #2b91af;"&gt;SPAuditEntry &lt;/span&gt;auditItem &lt;span style="color: blue;"&gt;in &lt;/span&gt;auditItems)&lt;br /&gt;                                            {&lt;br /&gt;                                                sb.Append(&lt;span style="color: blue;"&gt;string&lt;/span&gt;.Format(&lt;span style="color: #a31515;"&gt;"\"{0}\",\"{1}\",\"{2}\",\"{3}\",\"{4}\",\"{5}\",\"{6}\",\"{7}\"" &lt;/span&gt;+&lt;br /&gt;                                                    &lt;span style="color: #a31515;"&gt;",\"{8}\",\"{9}\",\"{10}\",\"{11}\",\"{12}\",\"{13}\",\"{14}\"\r\n"&lt;/span&gt;,&lt;br /&gt;                                                    userLogin, GetExtension(auditItem.DocLocation), auditItem.DocLocation, auditItem.Event, &lt;br /&gt;                                                    auditItem.EventData, auditItem.EventName, auditItem.EventSource, auditItem.ItemId, &lt;br /&gt;                                                    auditItem.ItemType, auditItem.LocationType, auditItem.MachineIP, auditItem.MachineName, &lt;br /&gt;                                                    auditItem.Occurred, auditItem.SiteId, auditItem.SourceName, auditItem.UserId));&lt;br /&gt;                                            }&lt;br /&gt;                                        }&lt;br /&gt;                                        &lt;span style="color: blue;"&gt;catch &lt;/span&gt;(&lt;span style="color: #2b91af;"&gt;SPException &lt;/span&gt;spex)&lt;br /&gt;                                        {&lt;br /&gt;                                            &lt;span style="color: blue;"&gt;if &lt;/span&gt;(!spex.Message.Contains(&lt;span style="color: #a31515;"&gt;"User cannot be found."&lt;/span&gt;))&lt;br /&gt;                                            {&lt;br /&gt;                                                &lt;span style="color: blue;"&gt;throw &lt;/span&gt;(spex);&lt;br /&gt;                                            }&lt;br /&gt;                                        }&lt;br /&gt;                                        &lt;span style="color: blue;"&gt;catch &lt;/span&gt;(&lt;span style="color: #2b91af;"&gt;Exception &lt;/span&gt;ex)&lt;br /&gt;                                        {&lt;br /&gt;                                            &lt;span style="color: #2b91af;"&gt;Console&lt;/span&gt;.WriteLine(ex.ToString());&lt;br /&gt;                                        }&lt;br /&gt;                                    }&lt;br /&gt;                                }&lt;br /&gt;                            }&lt;br /&gt;                        }&lt;br /&gt;                    }&lt;br /&gt;                });&lt;br /&gt;            }&lt;br /&gt;            &lt;span style="color: blue;"&gt;catch &lt;/span&gt;(&lt;span style="color: #2b91af;"&gt;Exception &lt;/span&gt;ex)&lt;br /&gt;            {&lt;br /&gt;                &lt;span style="color: #2b91af;"&gt;Console&lt;/span&gt;.WriteLine(ex.ToString());&lt;br /&gt;            }&lt;br /&gt;            &lt;span style="color: #2b91af;"&gt;SaveFileDialog &lt;/span&gt;sfd = &lt;span style="color: blue;"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;SaveFileDialog&lt;/span&gt;();&lt;br /&gt;            sfd.Filter = &lt;span style="color: #a31515;"&gt;"CSV File|*.csv"&lt;/span&gt;;&lt;br /&gt;            sfd.Title = &lt;span style="color: #a31515;"&gt;"Save File"&lt;/span&gt;;&lt;br /&gt;            &lt;span style="color: blue;"&gt;if &lt;/span&gt;(sfd.ShowDialog() == &lt;span style="color: #2b91af;"&gt;DialogResult&lt;/span&gt;.OK)&lt;br /&gt;            {&lt;br /&gt;                &lt;span style="color: blue;"&gt;using &lt;/span&gt;(&lt;span style="color: blue;"&gt;var &lt;/span&gt;writer = &lt;span style="color: blue;"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;StreamWriter&lt;/span&gt;(sfd.FileName, &lt;span style="color: blue;"&gt;true&lt;/span&gt;))&lt;br /&gt;                {&lt;br /&gt;                    writer.WriteLine(sb.ToString());&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: blue;"&gt;public static string &lt;/span&gt;GetExtension(&lt;span style="color: blue;"&gt;string &lt;/span&gt;docLocation)&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: blue;"&gt;string &lt;/span&gt;extension = &lt;span style="color: blue;"&gt;string&lt;/span&gt;.Empty;&lt;br /&gt;            &lt;span style="color: blue;"&gt;if &lt;/span&gt;(docLocation.Substring(docLocation.Length - 4, 1) == &lt;span style="color: #a31515;"&gt;"."&lt;/span&gt;)&lt;br /&gt;            {&lt;br /&gt;                extension = docLocation.Substring(docLocation.Length - 3, 3);&lt;br /&gt;            }&lt;br /&gt;            &lt;span style="color: blue;"&gt;else if &lt;/span&gt;(docLocation.Substring(docLocation.Length - 5, 1) == &lt;span style="color: #a31515;"&gt;"."&lt;/span&gt;)&lt;br /&gt;            {&lt;br /&gt;                extension = docLocation.Substring(docLocation.Length - 4, 4);&lt;br /&gt;            }&lt;br /&gt;            &lt;span style="color: blue;"&gt;else&lt;br /&gt;            &lt;/span&gt;{&lt;br /&gt;                extension = &lt;span style="color: #a31515;"&gt;"folder"&lt;/span&gt;;&lt;br /&gt;            }&lt;br /&gt;            &lt;span style="color: blue;"&gt;return &lt;/span&gt;extension;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3280948321129906341-4471736806223281210?l=johnlivingstontech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johnlivingstontech.blogspot.com/feeds/4471736806223281210/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://johnlivingstontech.blogspot.com/2011/06/get-sharepoint-audit-details-across.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3280948321129906341/posts/default/4471736806223281210'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3280948321129906341/posts/default/4471736806223281210'/><link rel='alternate' type='text/html' href='http://johnlivingstontech.blogspot.com/2011/06/get-sharepoint-audit-details-across.html' title='Get SharePoint audit details across the farm for specific users'/><author><name>john.livingston</name><uri>http://www.blogger.com/profile/15046544302781486569</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_MMTaYTUqqA8/S_wm4ecIT6I/AAAAAAAACNM/UwxxaWdJLxY/S220/4283_90775887584_507792584_1737866_2361093_n.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3280948321129906341.post-3921584479710008809</id><published>2011-05-25T10:05:00.001-07:00</published><updated>2011-12-30T06:32:10.530-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>Determine auditing configuration details for all of your SharePoint site collections</title><content type='html'>I recently had a customer whose SharePoint audit tables had getting very large. They wanted to know which site collections had auditing enabled so they could meet with their end users to determine if auditing was really necessary. Here is a code snippet for finding out which SharePoint sites have auditing enabled. The code will loop through all site collections in the farm and then create a CSV file with auditing configuration details.&lt;br /&gt;&lt;strong&gt;Instructions&lt;/strong&gt;Create a c# Console Application in Visual Studio, add a reference to Microsoft.SharePoint, and then add the following code to Program.cs. This will work with SharePoint 2007 and 2010 as long as you reference the correct assembly. Don’t forget to make sure your Visual Studio project’s Platform Target is Any CPU or x64.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;pre class="code"&gt;&lt;span style="color: blue;"&gt;using &lt;/span&gt;System;&lt;br /&gt;&lt;span style="color: blue;"&gt;using &lt;/span&gt;System.IO;&lt;br /&gt;&lt;span style="color: blue;"&gt;using &lt;/span&gt;System.Text;&lt;br /&gt;&lt;span style="color: blue;"&gt;using &lt;/span&gt;System.Windows.Forms;&lt;br /&gt;&lt;span style="color: blue;"&gt;using &lt;/span&gt;Microsoft.SharePoint;&lt;br /&gt;&lt;span style="color: blue;"&gt;using &lt;/span&gt;Microsoft.SharePoint.Administration;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;namespace &lt;/span&gt;SPCheckAudit&lt;br /&gt;{&lt;br /&gt;   &lt;span style="color: blue;"&gt;class &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;Program&lt;br /&gt;   &lt;/span&gt;{&lt;br /&gt;       [&lt;span style="color: #2b91af;"&gt;STAThread&lt;/span&gt;]&lt;br /&gt;       &lt;span style="color: blue;"&gt;static void &lt;/span&gt;Main(&lt;span style="color: blue;"&gt;string&lt;/span&gt;[] args)&lt;br /&gt;       {&lt;br /&gt;           &lt;span style="color: #2b91af;"&gt;StringBuilder &lt;/span&gt;sb = &lt;span style="color: blue;"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;StringBuilder&lt;/span&gt;();&lt;br /&gt;           sb.Append(&lt;span style="color: #a31515;"&gt;"SiteID,SiteURL,ContentDB,"&lt;/span&gt;);&lt;br /&gt;           &lt;span style="color: blue;"&gt;foreach &lt;/span&gt;(&lt;span style="color: blue;"&gt;int &lt;/span&gt;value &lt;span style="color: blue;"&gt;in &lt;/span&gt;System.&lt;span style="color: #2b91af;"&gt;Enum&lt;/span&gt;.GetValues(&lt;span style="color: blue;"&gt;typeof&lt;/span&gt;(&lt;span style="color: #2b91af;"&gt;SPAuditMaskType&lt;/span&gt;)))&lt;br /&gt;           {&lt;br /&gt;               sb.Append(System.&lt;span style="color: #2b91af;"&gt;Enum&lt;/span&gt;.GetName(&lt;span style="color: blue;"&gt;typeof&lt;/span&gt;(&lt;span style="color: #2b91af;"&gt;SPAuditMaskType&lt;/span&gt;), value) + &lt;span style="color: #a31515;"&gt;","&lt;/span&gt;);&lt;br /&gt;           }&lt;br /&gt;           sb.Append(&lt;span style="color: #a31515;"&gt;"\r\n"&lt;/span&gt;);&lt;br /&gt;           &lt;span style="color: blue;"&gt;try&lt;br /&gt;           &lt;/span&gt;{&lt;br /&gt;               &lt;span style="color: #2b91af;"&gt;SPServiceCollection &lt;/span&gt;services = &lt;span style="color: #2b91af;"&gt;SPFarm&lt;/span&gt;.Local.Services;&lt;br /&gt;               &lt;span style="color: blue;"&gt;foreach &lt;/span&gt;(&lt;span style="color: #2b91af;"&gt;SPService &lt;/span&gt;curService &lt;span style="color: blue;"&gt;in &lt;/span&gt;services)&lt;br /&gt;               {&lt;br /&gt;                   &lt;span style="color: blue;"&gt;if &lt;/span&gt;(curService &lt;span style="color: blue;"&gt;is &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;SPWebService&lt;/span&gt;)&lt;br /&gt;                   {&lt;br /&gt;                       &lt;span style="color: #2b91af;"&gt;SPWebService &lt;/span&gt;webService = (&lt;span style="color: #2b91af;"&gt;SPWebService&lt;/span&gt;)curService;&lt;br /&gt;                       &lt;span style="color: blue;"&gt;foreach &lt;/span&gt;(&lt;span style="color: #2b91af;"&gt;SPWebApplication &lt;/span&gt;spWebApplication &lt;span style="color: blue;"&gt;in &lt;/span&gt;webService.WebApplications)&lt;br /&gt;                       {&lt;br /&gt;                           &lt;span style="color: blue;"&gt;foreach &lt;/span&gt;(&lt;span style="color: #2b91af;"&gt;SPSite &lt;/span&gt;site &lt;span style="color: blue;"&gt;in &lt;/span&gt;spWebApplication.Sites)&lt;br /&gt;                           {&lt;br /&gt;                               &lt;span style="color: blue;"&gt;if &lt;/span&gt;(site.Audit.AuditFlags != &lt;span style="color: #2b91af;"&gt;SPAuditMaskType&lt;/span&gt;.None)&lt;br /&gt;                               {&lt;br /&gt;                                   sb.Append(site.ID + &lt;span style="color: #a31515;"&gt;"," &lt;/span&gt;+ site.Url + &lt;span style="color: #a31515;"&gt;"," &lt;/span&gt;+ site.ContentDatabase.Name + &lt;span style="color: #a31515;"&gt;","&lt;/span&gt;);&lt;br /&gt;                                   &lt;span style="color: blue;"&gt;int &lt;/span&gt;enumLength = System.&lt;span style="color: #2b91af;"&gt;Enum&lt;/span&gt;.GetValues(&lt;span style="color: blue;"&gt;typeof&lt;/span&gt;(&lt;span style="color: #2b91af;"&gt;SPAuditMaskType&lt;/span&gt;)).Length - 1;&lt;br /&gt;                                   &lt;span style="color: blue;"&gt;int &lt;/span&gt;counter = 0;&lt;br /&gt;                                   &lt;span style="color: blue;"&gt;foreach &lt;/span&gt;(&lt;span style="color: blue;"&gt;int &lt;/span&gt;value &lt;span style="color: blue;"&gt;in &lt;/span&gt;System.&lt;span style="color: #2b91af;"&gt;Enum&lt;/span&gt;.GetValues(&lt;span style="color: blue;"&gt;typeof&lt;/span&gt;(&lt;span style="color: #2b91af;"&gt;SPAuditMaskType&lt;/span&gt;)))&lt;br /&gt;                                   {&lt;br /&gt;                                       sb.Append(((site.Audit.AuditFlags &amp;amp; (&lt;span style="color: #2b91af;"&gt;SPAuditMaskType&lt;/span&gt;)value) == (&lt;span style="color: #2b91af;"&gt;SPAuditMaskType&lt;/span&gt;)value).ToString());&lt;br /&gt;                                       &lt;span style="color: blue;"&gt;if &lt;/span&gt;(enumLength != counter)&lt;br /&gt;                                       {&lt;br /&gt;                                           sb.Append(&lt;span style="color: #a31515;"&gt;","&lt;/span&gt;);&lt;br /&gt;                                       }&lt;br /&gt;                                       counter++;&lt;br /&gt;                                   }&lt;br /&gt;                                   sb.Append(&lt;span style="color: #a31515;"&gt;"\r\n"&lt;/span&gt;);&lt;br /&gt;                               }&lt;br /&gt;                           }&lt;br /&gt;                       }&lt;br /&gt;                   }&lt;br /&gt;               }&lt;br /&gt;           }&lt;br /&gt;           &lt;span style="color: blue;"&gt;catch &lt;/span&gt;(&lt;span style="color: #2b91af;"&gt;Exception &lt;/span&gt;ex)&lt;br /&gt;           {&lt;br /&gt;               sb.Append(ex.ToString());&lt;br /&gt;           }&lt;br /&gt;           &lt;span style="color: #2b91af;"&gt;SaveFileDialog &lt;/span&gt;sfd = &lt;span style="color: blue;"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;SaveFileDialog&lt;/span&gt;();&lt;br /&gt;           sfd.Filter = &lt;span style="color: #a31515;"&gt;"CSV File|*.csv"&lt;/span&gt;;&lt;br /&gt;           sfd.Title = &lt;span style="color: #a31515;"&gt;"Save File"&lt;/span&gt;;&lt;br /&gt;           &lt;span style="color: blue;"&gt;if &lt;/span&gt;(sfd.ShowDialog() == &lt;span style="color: #2b91af;"&gt;DialogResult&lt;/span&gt;.OK)&lt;br /&gt;           {&lt;br /&gt;               &lt;span style="color: blue;"&gt;using &lt;/span&gt;(&lt;span style="color: blue;"&gt;var &lt;/span&gt;writer = &lt;span style="color: blue;"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;StreamWriter&lt;/span&gt;(sfd.FileName, &lt;span style="color: blue;"&gt;true&lt;/span&gt;))&lt;br /&gt;               {&lt;br /&gt;                   writer.WriteLine(sb.ToString());&lt;br /&gt;               }&lt;br /&gt;           }&lt;br /&gt;       }&lt;br /&gt;   }&lt;br /&gt;}&lt;/pre&gt;&lt;pre class="code"&gt;&lt;a href="http://lh4.ggpht.com/_MMTaYTUqqA8/Td0216qbtXI/AAAAAAAACvM/g8cHgNb5PTI/s1600-h/image%5B13%5D.png"&gt;&lt;img alt="image" border="0" height="401" src="http://lh4.ggpht.com/_MMTaYTUqqA8/Td022fkB2JI/AAAAAAAACvQ/PbnINCMRT1w/image_thumb%5B9%5D.png?imgmax=800" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="919" /&gt;&lt;/a&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3280948321129906341-3921584479710008809?l=johnlivingstontech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johnlivingstontech.blogspot.com/feeds/3921584479710008809/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://johnlivingstontech.blogspot.com/2011/05/determine-auditing-configuration.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3280948321129906341/posts/default/3921584479710008809'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3280948321129906341/posts/default/3921584479710008809'/><link rel='alternate' type='text/html' href='http://johnlivingstontech.blogspot.com/2011/05/determine-auditing-configuration.html' title='Determine auditing configuration details for all of your SharePoint site collections'/><author><name>john.livingston</name><uri>http://www.blogger.com/profile/15046544302781486569</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_MMTaYTUqqA8/S_wm4ecIT6I/AAAAAAAACNM/UwxxaWdJLxY/S220/4283_90775887584_507792584_1737866_2361093_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_MMTaYTUqqA8/Td022fkB2JI/AAAAAAAACvQ/PbnINCMRT1w/s72-c/image_thumb%5B9%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3280948321129906341.post-1479664791339052640</id><published>2011-04-13T10:00:00.001-07:00</published><updated>2011-12-30T06:32:34.935-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Development'/><category scheme='http://www.blogger.com/atom/ns#' term='User Interface'/><title type='text'>Create Rounded Corners And Gradient Images On The Fly!</title><content type='html'>I am often tasked with taking a mockup and branding a site. This usually involves a custom master page with tweaks to the CSS for the layout and color scheme. It also involves the creation of images used to compliment the UI, the holy grail for some being gradient images and rounded corners. For the amateur graphic designer like myself, this often becomes a tedious task that involves repetitive tweaks to an image. I once had a client tell me that I had the wrong shade of “pumpkin”. (Depending on your disposition, this could result in an act of either running full speed into a brick wall or rocking yourself to sleep every night.)&lt;br /&gt;Enter the poorly named Web Designer Tool! After some experimentation with the System.Drawing and System.Drawing.Drawing2D .NET 2.0 classes, I figured out a way to generate these images on the fly. Now I can rapidly create rounded corners and gradients and don't have to sweat it if a client needs a color or hue adjusted. The rounded corners include many options, including width, height, gradient and solid colors, radius corner size, and border. I also provide a preview feature that integrates the images into a sample html page and launches it in your default browser. I have successfully tested this in IE 6.0 ~ 8.0, Chrome 10.0, and Firefox 4.0.&lt;br /&gt;Note: Although this will fly in the face of CSS purists, I have decided to use a simple table based layout for the preview html. I do make an effort to use DIV based layouts for web design, but in this case I have yet to find approach that works flawlessly across browsers types and versions or that integrates nicely with SharePoint. If you are that CSS guru, I welcome you to take these images and come up with a better approach. If you are successful, I would love to try out your code. You are also welcome to use my Shapes.cs class below and build your own tool. Life will be much easier once CSS 3 has reached enough market penetration and we can simply use the &lt;a href="http://www.css3.info/preview/rounded-border/"&gt;border-radius&lt;/a&gt; property.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;&lt;a href="http://cid-a2379f7b2ea6f936.office.live.com/browse.aspx/Public/Projects/Web/Web%20Designer%20Tool"&gt;&lt;span style="color: #008040; font-size: large;"&gt;&lt;u&gt;Download Here&lt;/u&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-size: large;"&gt;Screenshots&lt;/span&gt;&lt;br /&gt;Rounded Corner Generator&lt;br /&gt;&lt;a href="http://lh3.ggpht.com/_MMTaYTUqqA8/Tah8bdyNMoI/AAAAAAAACtg/92LaZd2YATI/s1600-h/image101.png"&gt;&lt;img alt="image" border="0" height="870" src="http://lh3.ggpht.com/_MMTaYTUqqA8/Tah8c6_nnwI/AAAAAAAACtk/eUepuUdXAlk/image_thumb5.png?imgmax=800" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="659" /&gt;&lt;/a&gt;&lt;/strong&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;strong&gt;Rounded Corner Generator (Fit To Screen)&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://lh6.ggpht.com/_MMTaYTUqqA8/Tah8dLzZFcI/AAAAAAAACto/rcPs1SUDkro/s1600-h/image51.png"&gt;&lt;img alt="image" border="0" height="870" src="http://lh4.ggpht.com/_MMTaYTUqqA8/Tah8dmDljAI/AAAAAAAACts/rnlqcGGJ-5Y/image_thumb2.png?imgmax=800" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="659" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;Gradient Generator&lt;/strong&gt;&lt;a href="http://lh5.ggpht.com/_MMTaYTUqqA8/TaXWkfOS9LI/AAAAAAAACsw/1zsoM8D2TZc/s1600-h/image9.png"&gt;&lt;img alt="image" border="0" height="870" src="http://lh6.ggpht.com/_MMTaYTUqqA8/TaXWk9w5NHI/AAAAAAAACs0/9FPppVBp2Gg/image_thumb5.png?imgmax=800" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="659" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Sample Generated Images using Default Settings:&lt;/strong&gt;(Note: A folder is created using the top gradient color.)&lt;br /&gt;&lt;a href="http://lh6.ggpht.com/_MMTaYTUqqA8/Tah8d4J6jfI/AAAAAAAACtw/u2lwumu0jtw/s1600-h/image15.png"&gt;&lt;strong&gt;&lt;img alt="image" border="0" height="577" src="http://lh4.ggpht.com/_MMTaYTUqqA8/Tah8eF0TaFI/AAAAAAAACt0/07fqXR6PoC0/image_thumb8.png?imgmax=800" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="639" /&gt;&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Rounded Corners with Default Colors:&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://lh5.ggpht.com/_MMTaYTUqqA8/TaXWlEbrKAI/AAAAAAAACs4/9e7RlTev2i8/s1600-h/clip_image0015.png"&gt;&lt;img alt="clip_image001" border="0" height="325" src="http://lh5.ggpht.com/_MMTaYTUqqA8/TaXWle4y_NI/AAAAAAAACs8/ochscbwKVok/clip_image001_thumb2.png?imgmax=800" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="clip_image001" width="505" /&gt;&lt;/a&gt;&lt;strong&gt;&lt;br /&gt;Rounded Corners with Border Only&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://lh4.ggpht.com/_MMTaYTUqqA8/TaXWl-CLcXI/AAAAAAAACtA/V1eH0YpdxRs/s1600-h/clip_image0025.png"&gt;&lt;img alt="clip_image002" border="0" height="322" src="http://lh4.ggpht.com/_MMTaYTUqqA8/TaXWmGluolI/AAAAAAAACtE/DvH4YuR3lq8/clip_image002_thumb2.png?imgmax=800" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="clip_image002" width="505" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;Rounded Corners with Header, Footer, and Content using the same background color. Header and Content with the same text color.&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://lh6.ggpht.com/_MMTaYTUqqA8/TaXWmaAvS8I/AAAAAAAACtI/S7zA229vnVY/s1600-h/clip_image0035.png"&gt;&lt;img alt="clip_image003" border="0" height="325" src="http://lh4.ggpht.com/_MMTaYTUqqA8/TaXWm80jxAI/AAAAAAAACtM/fuczYrCqWnM/clip_image003_thumb2.png?imgmax=800" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="clip_image003" width="503" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;Rounded Corners with Footer using the same color as content&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://lh5.ggpht.com/_MMTaYTUqqA8/TaXWnafC5lI/AAAAAAAACtQ/YLCm9YhUl58/s1600-h/clip_image0045.png"&gt;&lt;img alt="clip_image004" border="0" height="321" src="http://lh3.ggpht.com/_MMTaYTUqqA8/TaXWnr7XyNI/AAAAAAAACtU/BS-pB6Pbbs8/clip_image004_thumb2.png?imgmax=800" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="clip_image004" width="503" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;Rounded Corners only on the Top Left and Bottom Right&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://lh4.ggpht.com/_MMTaYTUqqA8/Tah8ebnuPaI/AAAAAAAACt4/sR7gcmk-Td8/s1600-h/image9.png"&gt;&lt;img alt="image" border="0" height="386" src="http://lh3.ggpht.com/_MMTaYTUqqA8/Tah8e3i3wEI/AAAAAAAACt8/sgOsGKeocG4/image_thumb5%5B1%5D.png?imgmax=800" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="503" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Gradient using default colors. Example uses the following html: &lt;/strong&gt;&amp;lt;html&amp;gt;&amp;lt;body style="background-image:url('gradient.png');background-repeat:x"&amp;gt;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;a href="http://lh6.ggpht.com/_MMTaYTUqqA8/TaXWnzfRMvI/AAAAAAAACtY/6aJTiYetR44/s1600-h/image14.png"&gt;&lt;img alt="image" border="0" height="699" src="http://lh6.ggpht.com/_MMTaYTUqqA8/TaXWoG5U_MI/AAAAAAAACtc/kKH_xNqMMjk/image_thumb8.png?imgmax=800" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="798" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;Shapes Source Code:&lt;/strong&gt;This is the Shapes class I created to generate the rounded corners and gradient.&lt;br /&gt;&lt;pre class="code"&gt;&lt;span style="color: blue;"&gt;using &lt;/span&gt;System.Drawing;&lt;br /&gt;&lt;span style="color: blue;"&gt;using &lt;/span&gt;System.Drawing.Drawing2D;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;namespace &lt;/span&gt;WebDesignerTool&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: blue;"&gt;public class &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;Shapes&lt;br /&gt;    &lt;/span&gt;{&lt;br /&gt;        &lt;span style="color: blue;"&gt;public enum &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;CornerType &lt;/span&gt;{ TopLeft, TopRight, BottomLeft, BottomRight }&lt;br /&gt;        &lt;span style="color: blue;"&gt;public enum &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;MiddleType &lt;/span&gt;{ Top, Bottom }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: blue;"&gt;public static &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;Bitmap &lt;/span&gt;GetRectangleCorner(&lt;span style="color: blue;"&gt;int &lt;/span&gt;width, &lt;span style="color: blue;"&gt;int &lt;/span&gt;height, &lt;span style="color: #2b91af;"&gt;Color &lt;/span&gt;startColor, &lt;span style="color: #2b91af;"&gt;Color &lt;/span&gt;endColor, &lt;br /&gt;            &lt;span style="color: blue;"&gt;int &lt;/span&gt;radius, &lt;span style="color: #2b91af;"&gt;Color &lt;/span&gt;outlineColor, &lt;span style="color: blue;"&gt;int &lt;/span&gt;outlineThickness, &lt;span style="color: #2b91af;"&gt;CornerType &lt;/span&gt;cornerType)&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: #2b91af;"&gt;Bitmap &lt;/span&gt;bitmap = GetRectangle(width * 2, height * 2, startColor, endColor, radius, &lt;br /&gt;                outlineColor, outlineThickness);&lt;br /&gt;            &lt;span style="color: blue;"&gt;switch &lt;/span&gt;(cornerType)&lt;br /&gt;            {&lt;br /&gt;                &lt;span style="color: blue;"&gt;case &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;CornerType&lt;/span&gt;.TopLeft:&lt;br /&gt;                    bitmap = bitmap.Clone(&lt;span style="color: blue;"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;Rectangle&lt;/span&gt;(0, 0, width, height), bitmap.PixelFormat);&lt;br /&gt;                    &lt;span style="color: blue;"&gt;break&lt;/span&gt;;&lt;br /&gt;                &lt;span style="color: blue;"&gt;case &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;CornerType&lt;/span&gt;.TopRight:&lt;br /&gt;                    bitmap = bitmap.Clone(&lt;span style="color: blue;"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;Rectangle&lt;/span&gt;(width, 0, width, height), bitmap.PixelFormat);&lt;br /&gt;                    &lt;span style="color: blue;"&gt;break&lt;/span&gt;;&lt;br /&gt;                &lt;span style="color: blue;"&gt;case &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;CornerType&lt;/span&gt;.BottomLeft:&lt;br /&gt;                    bitmap = bitmap.Clone(&lt;span style="color: blue;"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;Rectangle&lt;/span&gt;(0, height, width, height), bitmap.PixelFormat);&lt;br /&gt;                    &lt;span style="color: blue;"&gt;break&lt;/span&gt;;&lt;br /&gt;                &lt;span style="color: blue;"&gt;case &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;CornerType&lt;/span&gt;.BottomRight:&lt;br /&gt;                    bitmap = bitmap.Clone(&lt;span style="color: blue;"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;Rectangle&lt;/span&gt;(width, height, width, height), bitmap.PixelFormat);&lt;br /&gt;                    &lt;span style="color: blue;"&gt;break&lt;/span&gt;;&lt;br /&gt;            }&lt;br /&gt;            &lt;span style="color: blue;"&gt;return &lt;/span&gt;bitmap;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: blue;"&gt;public static &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;Bitmap &lt;/span&gt;GetRectangleMiddle(&lt;span style="color: blue;"&gt;int &lt;/span&gt;width, &lt;span style="color: blue;"&gt;int &lt;/span&gt;height, &lt;span style="color: #2b91af;"&gt;Color &lt;/span&gt;startColor, &lt;span style="color: #2b91af;"&gt;Color &lt;/span&gt;endColor, &lt;br /&gt;            &lt;span style="color: blue;"&gt;int &lt;/span&gt;radius, &lt;span style="color: #2b91af;"&gt;Color &lt;/span&gt;outlineColor, &lt;span style="color: blue;"&gt;int &lt;/span&gt;outlineThickness, &lt;span style="color: #2b91af;"&gt;MiddleType &lt;/span&gt;middleType)&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: #2b91af;"&gt;Bitmap &lt;/span&gt;bitmap = GetRectangle((width + outlineThickness + radius) * 4, height * 2, &lt;br /&gt;                startColor, endColor, 20, outlineColor, outlineThickness);&lt;br /&gt;            &lt;span style="color: blue;"&gt;int &lt;/span&gt;z = width + outlineThickness;&lt;br /&gt;            &lt;span style="color: blue;"&gt;switch &lt;/span&gt;(middleType)&lt;br /&gt;            {&lt;br /&gt;                &lt;span style="color: blue;"&gt;case &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;MiddleType&lt;/span&gt;.Top:&lt;br /&gt;                    bitmap = bitmap.Clone(&lt;span style="color: blue;"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;Rectangle&lt;/span&gt;(bitmap.Width / 2 - width / 2, 0, width, height),&lt;br /&gt;                        bitmap.PixelFormat);&lt;br /&gt;                    &lt;span style="color: blue;"&gt;break&lt;/span&gt;;&lt;br /&gt;                &lt;span style="color: blue;"&gt;case &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;MiddleType&lt;/span&gt;.Bottom:&lt;br /&gt;                    bitmap = bitmap.Clone(&lt;span style="color: blue;"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;Rectangle&lt;/span&gt;(bitmap.Width / 2 - width / 2, height, width, height), &lt;br /&gt;                        bitmap.PixelFormat);&lt;br /&gt;                    &lt;span style="color: blue;"&gt;break&lt;/span&gt;;&lt;br /&gt;            }&lt;br /&gt;            &lt;span style="color: blue;"&gt;return &lt;/span&gt;bitmap;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: blue;"&gt;public static &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;Bitmap &lt;/span&gt;GetRectangle(&lt;span style="color: blue;"&gt;int &lt;/span&gt;width, &lt;span style="color: blue;"&gt;int &lt;/span&gt;height, &lt;span style="color: #2b91af;"&gt;Color &lt;/span&gt;startColor, &lt;span style="color: #2b91af;"&gt;Color &lt;/span&gt;endColor, &lt;span style="color: blue;"&gt;int &lt;/span&gt;radius, &lt;br /&gt;            &lt;span style="color: #2b91af;"&gt;Color &lt;/span&gt;outlineColor, &lt;span style="color: blue;"&gt;int &lt;/span&gt;outlineThickness)&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: #2b91af;"&gt;Pen &lt;/span&gt;pen = &lt;span style="color: blue;"&gt;new &lt;/span&gt;System.Drawing.&lt;span style="color: #2b91af;"&gt;Pen&lt;/span&gt;(outlineColor, outlineThickness);&lt;br /&gt;            &lt;span style="color: #2b91af;"&gt;Rectangle &lt;/span&gt;originalRectangle = &lt;span style="color: blue;"&gt;new &lt;/span&gt;System.Drawing.&lt;span style="color: #2b91af;"&gt;Rectangle&lt;/span&gt;(0, 0, width, height);&lt;br /&gt;            &lt;span style="color: #2b91af;"&gt;Rectangle &lt;/span&gt;rectangle = &lt;span style="color: blue;"&gt;new &lt;/span&gt;System.Drawing.&lt;span style="color: #2b91af;"&gt;Rectangle&lt;/span&gt;(0, 0, width, height);&lt;br /&gt;            &lt;span style="color: #2b91af;"&gt;Bitmap &lt;/span&gt;bitmap = &lt;span style="color: blue;"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;Bitmap&lt;/span&gt;(width, height);&lt;br /&gt;            &lt;span style="color: blue;"&gt;using &lt;/span&gt;(&lt;span style="color: #2b91af;"&gt;Graphics &lt;/span&gt;graphics = &lt;span style="color: #2b91af;"&gt;Graphics&lt;/span&gt;.FromImage(bitmap))&lt;br /&gt;            {&lt;br /&gt;                &lt;span style="color: blue;"&gt;if &lt;/span&gt;(radius &amp;gt; 0)&lt;br /&gt;                {&lt;br /&gt;                    graphics.SmoothingMode = &lt;span style="color: #2b91af;"&gt;SmoothingMode&lt;/span&gt;.HighQuality;&lt;br /&gt;                    rectangle = &lt;span style="color: blue;"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;Rectangle&lt;/span&gt;(0, 0, width - (&lt;span style="color: blue;"&gt;int&lt;/span&gt;)pen.Width, height - (&lt;span style="color: blue;"&gt;int&lt;/span&gt;)pen.Width);&lt;br /&gt;&lt;br /&gt;                    &lt;span style="color: blue;"&gt;if &lt;/span&gt;(rectangle.Width &amp;lt; 1)&lt;br /&gt;                        rectangle.Width = 1;&lt;br /&gt;                    &lt;span style="color: blue;"&gt;if &lt;/span&gt;(rectangle.Height &amp;lt; 1)&lt;br /&gt;                        rectangle.Height = 1;&lt;br /&gt;                    &lt;span style="color: blue;"&gt;if &lt;/span&gt;(rectangle.Width / 2 &amp;lt; radius)&lt;br /&gt;                        radius = rectangle.Width / 2;&lt;br /&gt;                    &lt;span style="color: blue;"&gt;if &lt;/span&gt;(rectangle.Height / 2 &amp;lt; radius)&lt;br /&gt;                        radius = rectangle.Height / 2;&lt;br /&gt;                    pen.EndCap = pen.StartCap = &lt;span style="color: #2b91af;"&gt;LineCap&lt;/span&gt;.Round;&lt;br /&gt;                    &lt;span style="color: #2b91af;"&gt;LinearGradientBrush &lt;/span&gt;brush = &lt;span style="color: blue;"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;LinearGradientBrush&lt;/span&gt;(&lt;span style="color: blue;"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;Rectangle&lt;/span&gt;(0, 0, rectangle.Width, &lt;br /&gt;                        rectangle.Height + (&lt;span style="color: blue;"&gt;int&lt;/span&gt;)pen.Width), startColor, endColor, &lt;span style="color: #2b91af;"&gt;LinearGradientMode&lt;/span&gt;.Vertical);&lt;br /&gt;                    &lt;span style="color: #2b91af;"&gt;GraphicsPath &lt;/span&gt;graphicsPath = &lt;span style="color: blue;"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;GraphicsPath&lt;/span&gt;();&lt;br /&gt;                    graphicsPath.AddArc(rectangle.X, rectangle.Y, radius, radius, 180, 90);&lt;br /&gt;                    graphicsPath.AddArc(rectangle.X + rectangle.Width - radius, rectangle.Y, radius, radius, 270, 90);&lt;br /&gt;                    graphicsPath.AddArc(rectangle.X + rectangle.Width - radius, &lt;br /&gt;                        rectangle.Y + rectangle.Height - radius, radius, radius, 0, 90);&lt;br /&gt;                    graphicsPath.AddArc(rectangle.X, rectangle.Y + rectangle.Height - radius, radius, radius, 90, 90);&lt;br /&gt;                    graphicsPath.CloseAllFigures();&lt;br /&gt;                    graphics.FillPath(brush, graphicsPath);&lt;br /&gt;                    &lt;span style="color: blue;"&gt;if &lt;/span&gt;(outlineThickness &amp;gt; 0)&lt;br /&gt;                    {&lt;br /&gt;                        graphics.DrawPath(pen, graphicsPath);&lt;br /&gt;                    }&lt;br /&gt;                }&lt;br /&gt;                &lt;span style="color: blue;"&gt;else&lt;br /&gt;                &lt;/span&gt;{&lt;br /&gt;                    &lt;span style="color: #2b91af;"&gt;LinearGradientBrush &lt;/span&gt;brush = &lt;span style="color: blue;"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;LinearGradientBrush&lt;/span&gt;(&lt;span style="color: blue;"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;Rectangle&lt;/span&gt;(0, 0, rectangle.Width, &lt;br /&gt;                        rectangle.Height + (&lt;span style="color: blue;"&gt;int&lt;/span&gt;)pen.Width), startColor, endColor, &lt;span style="color: #2b91af;"&gt;LinearGradientMode&lt;/span&gt;.Vertical);&lt;br /&gt;                    graphics.FillRectangle(brush, &lt;span style="color: blue;"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;Rectangle&lt;/span&gt;(0, 0, width, height));&lt;br /&gt;                    &lt;span style="color: blue;"&gt;if &lt;/span&gt;(outlineThickness &amp;gt; 0)&lt;br /&gt;                    {&lt;br /&gt;                        graphics.DrawRectangle(pen, rectangle);&lt;br /&gt;                    }&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;            &lt;span style="color: blue;"&gt;return &lt;/span&gt;bitmap;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3280948321129906341-1479664791339052640?l=johnlivingstontech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johnlivingstontech.blogspot.com/feeds/1479664791339052640/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://johnlivingstontech.blogspot.com/2011/04/create-rounded-corners-and-gradient.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3280948321129906341/posts/default/1479664791339052640'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3280948321129906341/posts/default/1479664791339052640'/><link rel='alternate' type='text/html' href='http://johnlivingstontech.blogspot.com/2011/04/create-rounded-corners-and-gradient.html' title='Create Rounded Corners And Gradient Images On The Fly!'/><author><name>john.livingston</name><uri>http://www.blogger.com/profile/15046544302781486569</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_MMTaYTUqqA8/S_wm4ecIT6I/AAAAAAAACNM/UwxxaWdJLxY/S220/4283_90775887584_507792584_1737866_2361093_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_MMTaYTUqqA8/Tah8c6_nnwI/AAAAAAAACtk/eUepuUdXAlk/s72-c/image_thumb5.png?imgmax=800' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3280948321129906341.post-5218191825546744151</id><published>2011-02-11T15:58:00.001-08:00</published><updated>2011-02-11T15:58:48.250-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WPF'/><category scheme='http://www.blogger.com/atom/ns#' term='Silverlight'/><title type='text'>Custom Control with Connecting Lines using WPF / Silverlight</title><content type='html'>&lt;p&gt;Recently I was developing a migration tool that incorporates two TreeView controls and allows a user to draw lines between controls. After a bit of a struggle, I finally came up with a solution that works pretty well. The control inherits from the Grid control and uses drag and drop event handlers to draw connecting lines between controls of the same type. Because it is a Grid control, it also gives you the ability to add multiple controls and style it as you wish. In this example, I simply embedded a border control with some rounded corners and line gradients. Within the Border control, I simply added a TextBlock with the necessary text. A random color algorithm (courtesy of &lt;a href="http://philosophil.spaces.live.com/blog/cns!7E55D8EFA2AEE5D6!201.entry"&gt;Philosophil Blog&lt;/a&gt;) determines what color is used. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Custom Properties&lt;br&gt;&lt;/strong&gt;ConnectedControl – When two controls are connected, they are able to reference each other through this property.&lt;br&gt;ConnectedLine – This contains a reference to the line that is added.&lt;br&gt;AllowMultipleConnections – This determines if the control to connect to multiple items.&lt;br&gt;ConnectionType – This is an enum that determines whether a control can connect to other controls based on their connection type. The values Both, Source, and Target. Both is the default and says that the control can connect to any other control. Source controls can only connect to Target controls and vice versa.&lt;br&gt;LineThickness – This determines how thick the connecting line is.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Steps&lt;br&gt;&lt;/strong&gt;In order to use this control, you simply need to create a class called ConnectingControl.cs and copy and paste the code below your WPF project. (Of course, you will need to update your namespace.) In order to add the control to your page, simply add a reference to your local assembly and then add the control. At the very least, you will also need to nest another control like a TextBlock or Image. I have included the source code for my MainWindow.xaml below.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Screenshot&lt;br&gt;&lt;br&gt;&lt;a href="http://lh6.ggpht.com/_MMTaYTUqqA8/TVXNNZxjRxI/AAAAAAAACsI/8WUPCcD5-zs/s1600-h/ConnectingLines%5B7%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="ConnectingLines" border="0" alt="ConnectingLines" src="http://lh3.ggpht.com/_MMTaYTUqqA8/TVXNN0xem3I/AAAAAAAACsM/11iXiysYG9g/ConnectingLines_thumb%5B3%5D.png?imgmax=800" width="529" height="354"&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;MainWindow.xaml&lt;/strong&gt;&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Window &lt;/span&gt;&lt;span style="color: red"&gt;x&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;Class&lt;/span&gt;&lt;span style="color: blue"&gt;="ConnectingLines.MainWindow"&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: red"&gt;xmlns&lt;/span&gt;&lt;span style="color: blue"&gt;="http://schemas.microsoft.com/winfx/2006/xaml/presentation"&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: red"&gt;xmlns&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;x&lt;/span&gt;&lt;span style="color: blue"&gt;="http://schemas.microsoft.com/winfx/2006/xaml"&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: red"&gt;xmlns&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;local&lt;/span&gt;&lt;span style="color: blue"&gt;="clr-namespace:ConnectingLines"&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: red"&gt;Title&lt;/span&gt;&lt;span style="color: blue"&gt;="Connecting Lines" &lt;/span&gt;&lt;span style="color: red"&gt;Height&lt;/span&gt;&lt;span style="color: blue"&gt;="350" &lt;/span&gt;&lt;span style="color: red"&gt;Width&lt;/span&gt;&lt;span style="color: blue"&gt;="525"&amp;gt;&lt;br /&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Window.Resources&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br /&gt;        &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Style &lt;/span&gt;&lt;span style="color: red"&gt;x&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;Key&lt;/span&gt;&lt;span style="color: blue"&gt;="ConnectingGridBorderSource" &lt;/span&gt;&lt;span style="color: red"&gt;TargetType&lt;/span&gt;&lt;span style="color: blue"&gt;="Border"&amp;gt;&lt;br /&gt;            &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Setter &lt;/span&gt;&lt;span style="color: red"&gt;Property&lt;/span&gt;&lt;span style="color: blue"&gt;="Background" &lt;/span&gt;&lt;span style="color: red"&gt;Value&lt;/span&gt;&lt;span style="color: blue"&gt;="{&lt;/span&gt;&lt;span style="color: #a31515"&gt;DynamicResource &lt;/span&gt;&lt;span style="color: red"&gt;BoxBrushSource&lt;/span&gt;&lt;span style="color: blue"&gt;}" /&amp;gt;&lt;br /&gt;            &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Setter &lt;/span&gt;&lt;span style="color: red"&gt;Property&lt;/span&gt;&lt;span style="color: blue"&gt;="CornerRadius" &lt;/span&gt;&lt;span style="color: red"&gt;Value&lt;/span&gt;&lt;span style="color: blue"&gt;="0,35,0,35" /&amp;gt;&lt;br /&gt;            &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Setter &lt;/span&gt;&lt;span style="color: red"&gt;Property&lt;/span&gt;&lt;span style="color: blue"&gt;="Margin" &lt;/span&gt;&lt;span style="color: red"&gt;Value&lt;/span&gt;&lt;span style="color: blue"&gt;="0" /&amp;gt;&lt;br /&gt;        &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Style&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br /&gt;        &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Style &lt;/span&gt;&lt;span style="color: red"&gt;x&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;Key&lt;/span&gt;&lt;span style="color: blue"&gt;="ConnectingGridBorderTarget" &lt;/span&gt;&lt;span style="color: red"&gt;TargetType&lt;/span&gt;&lt;span style="color: blue"&gt;="Border"&amp;gt;&lt;br /&gt;            &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Setter &lt;/span&gt;&lt;span style="color: red"&gt;Property&lt;/span&gt;&lt;span style="color: blue"&gt;="Background" &lt;/span&gt;&lt;span style="color: red"&gt;Value&lt;/span&gt;&lt;span style="color: blue"&gt;="{&lt;/span&gt;&lt;span style="color: #a31515"&gt;DynamicResource &lt;/span&gt;&lt;span style="color: red"&gt;BoxBrushTarget&lt;/span&gt;&lt;span style="color: blue"&gt;}" /&amp;gt;&lt;br /&gt;            &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Setter &lt;/span&gt;&lt;span style="color: red"&gt;Property&lt;/span&gt;&lt;span style="color: blue"&gt;="CornerRadius" &lt;/span&gt;&lt;span style="color: red"&gt;Value&lt;/span&gt;&lt;span style="color: blue"&gt;="0,35,0,35" /&amp;gt;&lt;br /&gt;            &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Setter &lt;/span&gt;&lt;span style="color: red"&gt;Property&lt;/span&gt;&lt;span style="color: blue"&gt;="Margin" &lt;/span&gt;&lt;span style="color: red"&gt;Value&lt;/span&gt;&lt;span style="color: blue"&gt;="0" /&amp;gt;&lt;br /&gt;        &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Style&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;        &lt;br /&gt;        &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Style &lt;/span&gt;&lt;span style="color: red"&gt;x&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;Key&lt;/span&gt;&lt;span style="color: blue"&gt;="ConnectingGridSource" &lt;/span&gt;&lt;span style="color: red"&gt;TargetType&lt;/span&gt;&lt;span style="color: blue"&gt;="local:ConnectingControl"&amp;gt;&lt;br /&gt;            &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Setter &lt;/span&gt;&lt;span style="color: red"&gt;Property&lt;/span&gt;&lt;span style="color: blue"&gt;="Margin" &lt;/span&gt;&lt;span style="color: red"&gt;Value&lt;/span&gt;&lt;span style="color: blue"&gt;="10" /&amp;gt;&lt;br /&gt;            &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Setter &lt;/span&gt;&lt;span style="color: red"&gt;Property&lt;/span&gt;&lt;span style="color: blue"&gt;="AllowMultipleConnections" &lt;/span&gt;&lt;span style="color: red"&gt;Value&lt;/span&gt;&lt;span style="color: blue"&gt;="False" /&amp;gt;&lt;br /&gt;            &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Setter &lt;/span&gt;&lt;span style="color: red"&gt;Property&lt;/span&gt;&lt;span style="color: blue"&gt;="ConnectionType" &lt;/span&gt;&lt;span style="color: red"&gt;Value&lt;/span&gt;&lt;span style="color: blue"&gt;="Source" /&amp;gt;&lt;br /&gt;            &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Setter &lt;/span&gt;&lt;span style="color: red"&gt;Property&lt;/span&gt;&lt;span style="color: blue"&gt;="LineThickness" &lt;/span&gt;&lt;span style="color: red"&gt;Value&lt;/span&gt;&lt;span style="color: blue"&gt;="3" /&amp;gt;&lt;br /&gt;        &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Style&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br /&gt;        &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Style &lt;/span&gt;&lt;span style="color: red"&gt;x&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;Key&lt;/span&gt;&lt;span style="color: blue"&gt;="ConnectingGridTarget" &lt;/span&gt;&lt;span style="color: red"&gt;TargetType&lt;/span&gt;&lt;span style="color: blue"&gt;="local:ConnectingControl"&amp;gt;&lt;br /&gt;            &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Setter &lt;/span&gt;&lt;span style="color: red"&gt;Property&lt;/span&gt;&lt;span style="color: blue"&gt;="Margin" &lt;/span&gt;&lt;span style="color: red"&gt;Value&lt;/span&gt;&lt;span style="color: blue"&gt;="10" /&amp;gt;&lt;br /&gt;            &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Setter &lt;/span&gt;&lt;span style="color: red"&gt;Property&lt;/span&gt;&lt;span style="color: blue"&gt;="AllowMultipleConnections" &lt;/span&gt;&lt;span style="color: red"&gt;Value&lt;/span&gt;&lt;span style="color: blue"&gt;="False" /&amp;gt;&lt;br /&gt;            &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Setter &lt;/span&gt;&lt;span style="color: red"&gt;Property&lt;/span&gt;&lt;span style="color: blue"&gt;="ConnectionType" &lt;/span&gt;&lt;span style="color: red"&gt;Value&lt;/span&gt;&lt;span style="color: blue"&gt;="Target" /&amp;gt;&lt;br /&gt;            &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Setter &lt;/span&gt;&lt;span style="color: red"&gt;Property&lt;/span&gt;&lt;span style="color: blue"&gt;="LineThickness" &lt;/span&gt;&lt;span style="color: red"&gt;Value&lt;/span&gt;&lt;span style="color: blue"&gt;="3" /&amp;gt;&lt;br /&gt;        &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Style&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;        &lt;br /&gt;        &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Style &lt;/span&gt;&lt;span style="color: red"&gt;x&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;Key&lt;/span&gt;&lt;span style="color: blue"&gt;="ConnectingGridTextBlock" &lt;/span&gt;&lt;span style="color: red"&gt;TargetType&lt;/span&gt;&lt;span style="color: blue"&gt;="TextBlock"&amp;gt;&lt;br /&gt;            &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Setter &lt;/span&gt;&lt;span style="color: red"&gt;Property&lt;/span&gt;&lt;span style="color: blue"&gt;="Foreground" &lt;/span&gt;&lt;span style="color: red"&gt;Value&lt;/span&gt;&lt;span style="color: blue"&gt;="AliceBlue" /&amp;gt;&lt;br /&gt;            &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Setter &lt;/span&gt;&lt;span style="color: red"&gt;Property&lt;/span&gt;&lt;span style="color: blue"&gt;="FontSize" &lt;/span&gt;&lt;span style="color: red"&gt;Value&lt;/span&gt;&lt;span style="color: blue"&gt;="24" /&amp;gt;&lt;br /&gt;            &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Setter &lt;/span&gt;&lt;span style="color: red"&gt;Property&lt;/span&gt;&lt;span style="color: blue"&gt;="FontWeight" &lt;/span&gt;&lt;span style="color: red"&gt;Value&lt;/span&gt;&lt;span style="color: blue"&gt;="Bold" /&amp;gt;&lt;br /&gt;            &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Setter &lt;/span&gt;&lt;span style="color: red"&gt;Property&lt;/span&gt;&lt;span style="color: blue"&gt;="VerticalAlignment" &lt;/span&gt;&lt;span style="color: red"&gt;Value&lt;/span&gt;&lt;span style="color: blue"&gt;="Center" /&amp;gt;&lt;br /&gt;            &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Setter &lt;/span&gt;&lt;span style="color: red"&gt;Property&lt;/span&gt;&lt;span style="color: blue"&gt;="HorizontalAlignment" &lt;/span&gt;&lt;span style="color: red"&gt;Value&lt;/span&gt;&lt;span style="color: blue"&gt;="Center" /&amp;gt;&lt;br /&gt;        &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Style&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br /&gt;        &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;LinearGradientBrush &lt;/span&gt;&lt;span style="color: red"&gt;x&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;Key&lt;/span&gt;&lt;span style="color: blue"&gt;="BoxBrushSource" &lt;/span&gt;&lt;span style="color: red"&gt;StartPoint&lt;/span&gt;&lt;span style="color: blue"&gt;="0,0" &lt;/span&gt;&lt;span style="color: red"&gt;EndPoint&lt;/span&gt;&lt;span style="color: blue"&gt;="0,1"&amp;gt;&lt;br /&gt;            &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;LinearGradientBrush.GradientStops&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br /&gt;                &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;GradientStop &lt;/span&gt;&lt;span style="color: red"&gt;Color&lt;/span&gt;&lt;span style="color: blue"&gt;="AliceBlue" &lt;/span&gt;&lt;span style="color: red"&gt;Offset&lt;/span&gt;&lt;span style="color: blue"&gt;="0.0" /&amp;gt;&lt;br /&gt;                &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;GradientStop &lt;/span&gt;&lt;span style="color: red"&gt;Color&lt;/span&gt;&lt;span style="color: blue"&gt;="Green" &lt;/span&gt;&lt;span style="color: red"&gt;Offset&lt;/span&gt;&lt;span style="color: blue"&gt;="0.4" /&amp;gt;&lt;br /&gt;            &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;LinearGradientBrush.GradientStops&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br /&gt;        &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;LinearGradientBrush&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br /&gt;        &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;LinearGradientBrush &lt;/span&gt;&lt;span style="color: red"&gt;x&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;Key&lt;/span&gt;&lt;span style="color: blue"&gt;="BoxBrushTarget" &lt;/span&gt;&lt;span style="color: red"&gt;StartPoint&lt;/span&gt;&lt;span style="color: blue"&gt;="0,0" &lt;/span&gt;&lt;span style="color: red"&gt;EndPoint&lt;/span&gt;&lt;span style="color: blue"&gt;="0,1"&amp;gt;&lt;br /&gt;            &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;LinearGradientBrush.GradientStops&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br /&gt;                &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;GradientStop &lt;/span&gt;&lt;span style="color: red"&gt;Color&lt;/span&gt;&lt;span style="color: blue"&gt;="AliceBlue" &lt;/span&gt;&lt;span style="color: red"&gt;Offset&lt;/span&gt;&lt;span style="color: blue"&gt;="0" /&amp;gt;&lt;br /&gt;                &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;GradientStop &lt;/span&gt;&lt;span style="color: red"&gt;Color&lt;/span&gt;&lt;span style="color: blue"&gt;="DarkBlue" &lt;/span&gt;&lt;span style="color: red"&gt;Offset&lt;/span&gt;&lt;span style="color: blue"&gt;=".4" /&amp;gt;&lt;br /&gt;            &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;LinearGradientBrush.GradientStops&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br /&gt;        &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;LinearGradientBrush&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;        &lt;br /&gt;    &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Window.Resources&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br /&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Grid&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br /&gt;        &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Grid.ColumnDefinitions&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br /&gt;            &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;ColumnDefinition &lt;/span&gt;&lt;span style="color: blue"&gt;/&amp;gt;&lt;br /&gt;            &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;ColumnDefinition &lt;/span&gt;&lt;span style="color: blue"&gt;/&amp;gt;&lt;br /&gt;            &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;ColumnDefinition &lt;/span&gt;&lt;span style="color: blue"&gt;/&amp;gt;&lt;br /&gt;        &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Grid.ColumnDefinitions&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br /&gt;        &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Grid.RowDefinitions&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br /&gt;            &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;RowDefinition &lt;/span&gt;&lt;span style="color: blue"&gt;/&amp;gt;&lt;br /&gt;            &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;RowDefinition &lt;/span&gt;&lt;span style="color: blue"&gt;/&amp;gt;&lt;br /&gt;            &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;RowDefinition &lt;/span&gt;&lt;span style="color: blue"&gt;/&amp;gt;&lt;br /&gt;        &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Grid.RowDefinitions&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br /&gt;        &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;local&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;ConnectingControl  &lt;/span&gt;&lt;span style="color: red"&gt;Style&lt;/span&gt;&lt;span style="color: blue"&gt;="{&lt;/span&gt;&lt;span style="color: #a31515"&gt;StaticResource &lt;/span&gt;&lt;span style="color: red"&gt;ConnectingGridSource&lt;/span&gt;&lt;span style="color: blue"&gt;}" &lt;/span&gt;&lt;span style="color: red"&gt;Grid.Row&lt;/span&gt;&lt;span style="color: blue"&gt;="0" &lt;/span&gt;&lt;span style="color: red"&gt;Grid.Column&lt;/span&gt;&lt;span style="color: blue"&gt;="0"&amp;gt;&lt;br /&gt;            &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Border &lt;/span&gt;&lt;span style="color: red"&gt;Style&lt;/span&gt;&lt;span style="color: blue"&gt;="{&lt;/span&gt;&lt;span style="color: #a31515"&gt;StaticResource &lt;/span&gt;&lt;span style="color: red"&gt;ConnectingGridBorderSource&lt;/span&gt;&lt;span style="color: blue"&gt;}"&amp;gt;&lt;br /&gt;                &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;TextBlock &lt;/span&gt;&lt;span style="color: red"&gt;Text&lt;/span&gt;&lt;span style="color: blue"&gt;="Banana" &lt;/span&gt;&lt;span style="color: red"&gt;Style&lt;/span&gt;&lt;span style="color: blue"&gt;="{&lt;/span&gt;&lt;span style="color: #a31515"&gt;StaticResource &lt;/span&gt;&lt;span style="color: red"&gt;ConnectingGridTextBlock&lt;/span&gt;&lt;span style="color: blue"&gt;}" /&amp;gt;&lt;br /&gt;            &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Border&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br /&gt;        &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;local&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;ConnectingControl&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br /&gt;        &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;local&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;ConnectingControl  &lt;/span&gt;&lt;span style="color: red"&gt;Style&lt;/span&gt;&lt;span style="color: blue"&gt;="{&lt;/span&gt;&lt;span style="color: #a31515"&gt;StaticResource &lt;/span&gt;&lt;span style="color: red"&gt;ConnectingGridSource&lt;/span&gt;&lt;span style="color: blue"&gt;}" &lt;/span&gt;&lt;span style="color: red"&gt;Grid.Row&lt;/span&gt;&lt;span style="color: blue"&gt;="1" &lt;/span&gt;&lt;span style="color: red"&gt;Grid.Column&lt;/span&gt;&lt;span style="color: blue"&gt;="0"&amp;gt;&lt;br /&gt;            &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Border &lt;/span&gt;&lt;span style="color: red"&gt;Style&lt;/span&gt;&lt;span style="color: blue"&gt;="{&lt;/span&gt;&lt;span style="color: #a31515"&gt;StaticResource &lt;/span&gt;&lt;span style="color: red"&gt;ConnectingGridBorderSource&lt;/span&gt;&lt;span style="color: blue"&gt;}"&amp;gt;&lt;br /&gt;                &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;TextBlock &lt;/span&gt;&lt;span style="color: red"&gt;Text&lt;/span&gt;&lt;span style="color: blue"&gt;="Spinach" &lt;/span&gt;&lt;span style="color: red"&gt;Style&lt;/span&gt;&lt;span style="color: blue"&gt;="{&lt;/span&gt;&lt;span style="color: #a31515"&gt;StaticResource &lt;/span&gt;&lt;span style="color: red"&gt;ConnectingGridTextBlock&lt;/span&gt;&lt;span style="color: blue"&gt;}" /&amp;gt;&lt;br /&gt;            &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Border&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br /&gt;        &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;local&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;ConnectingControl&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br /&gt;        &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;local&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;ConnectingControl  &lt;/span&gt;&lt;span style="color: red"&gt;Style&lt;/span&gt;&lt;span style="color: blue"&gt;="{&lt;/span&gt;&lt;span style="color: #a31515"&gt;StaticResource &lt;/span&gt;&lt;span style="color: red"&gt;ConnectingGridSource&lt;/span&gt;&lt;span style="color: blue"&gt;}" &lt;/span&gt;&lt;span style="color: red"&gt;Grid.Row&lt;/span&gt;&lt;span style="color: blue"&gt;="2" &lt;/span&gt;&lt;span style="color: red"&gt;Grid.Column&lt;/span&gt;&lt;span style="color: blue"&gt;="0"&amp;gt;&lt;br /&gt;            &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Border &lt;/span&gt;&lt;span style="color: red"&gt;Style&lt;/span&gt;&lt;span style="color: blue"&gt;="{&lt;/span&gt;&lt;span style="color: #a31515"&gt;StaticResource &lt;/span&gt;&lt;span style="color: red"&gt;ConnectingGridBorderSource&lt;/span&gt;&lt;span style="color: blue"&gt;}"&amp;gt;&lt;br /&gt;                &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;TextBlock &lt;/span&gt;&lt;span style="color: red"&gt;Text&lt;/span&gt;&lt;span style="color: blue"&gt;="Feta" &lt;/span&gt;&lt;span style="color: red"&gt;Style&lt;/span&gt;&lt;span style="color: blue"&gt;="{&lt;/span&gt;&lt;span style="color: #a31515"&gt;StaticResource &lt;/span&gt;&lt;span style="color: red"&gt;ConnectingGridTextBlock&lt;/span&gt;&lt;span style="color: blue"&gt;}" /&amp;gt;&lt;br /&gt;            &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Border&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br /&gt;        &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;local&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;ConnectingControl&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br /&gt;        &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;local&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;ConnectingControl  &lt;/span&gt;&lt;span style="color: red"&gt;Style&lt;/span&gt;&lt;span style="color: blue"&gt;="{&lt;/span&gt;&lt;span style="color: #a31515"&gt;StaticResource &lt;/span&gt;&lt;span style="color: red"&gt;ConnectingGridTarget&lt;/span&gt;&lt;span style="color: blue"&gt;}" &lt;/span&gt;&lt;span style="color: red"&gt;Grid.Row&lt;/span&gt;&lt;span style="color: blue"&gt;="0" &lt;/span&gt;&lt;span style="color: red"&gt;Grid.Column&lt;/span&gt;&lt;span style="color: blue"&gt;="2"&amp;gt;&lt;br /&gt;            &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Border &lt;/span&gt;&lt;span style="color: red"&gt;Style&lt;/span&gt;&lt;span style="color: blue"&gt;="{&lt;/span&gt;&lt;span style="color: #a31515"&gt;StaticResource &lt;/span&gt;&lt;span style="color: red"&gt;ConnectingGridBorderTarget&lt;/span&gt;&lt;span style="color: blue"&gt;}"&amp;gt;&lt;br /&gt;                &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;TextBlock &lt;/span&gt;&lt;span style="color: red"&gt;Text&lt;/span&gt;&lt;span style="color: blue"&gt;="Cheese" &lt;/span&gt;&lt;span style="color: red"&gt;Style&lt;/span&gt;&lt;span style="color: blue"&gt;="{&lt;/span&gt;&lt;span style="color: #a31515"&gt;StaticResource &lt;/span&gt;&lt;span style="color: red"&gt;ConnectingGridTextBlock&lt;/span&gt;&lt;span style="color: blue"&gt;}" /&amp;gt;&lt;br /&gt;            &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Border&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br /&gt;        &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;local&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;ConnectingControl&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br /&gt;        &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;local&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;ConnectingControl  &lt;/span&gt;&lt;span style="color: red"&gt;Style&lt;/span&gt;&lt;span style="color: blue"&gt;="{&lt;/span&gt;&lt;span style="color: #a31515"&gt;StaticResource &lt;/span&gt;&lt;span style="color: red"&gt;ConnectingGridTarget&lt;/span&gt;&lt;span style="color: blue"&gt;}" &lt;/span&gt;&lt;span style="color: red"&gt;Grid.Row&lt;/span&gt;&lt;span style="color: blue"&gt;="1" &lt;/span&gt;&lt;span style="color: red"&gt;Grid.Column&lt;/span&gt;&lt;span style="color: blue"&gt;="2"&amp;gt;&lt;br /&gt;            &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Border &lt;/span&gt;&lt;span style="color: red"&gt;Style&lt;/span&gt;&lt;span style="color: blue"&gt;="{&lt;/span&gt;&lt;span style="color: #a31515"&gt;StaticResource &lt;/span&gt;&lt;span style="color: red"&gt;ConnectingGridBorderTarget&lt;/span&gt;&lt;span style="color: blue"&gt;}"&amp;gt;&lt;br /&gt;                &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;TextBlock &lt;/span&gt;&lt;span style="color: red"&gt;Text&lt;/span&gt;&lt;span style="color: blue"&gt;="Fruit" &lt;/span&gt;&lt;span style="color: red"&gt;Style&lt;/span&gt;&lt;span style="color: blue"&gt;="{&lt;/span&gt;&lt;span style="color: #a31515"&gt;StaticResource &lt;/span&gt;&lt;span style="color: red"&gt;ConnectingGridTextBlock&lt;/span&gt;&lt;span style="color: blue"&gt;}" /&amp;gt;&lt;br /&gt;            &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Border&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br /&gt;        &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;local&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;ConnectingControl&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br /&gt;        &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;local&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;ConnectingControl  &lt;/span&gt;&lt;span style="color: red"&gt;Style&lt;/span&gt;&lt;span style="color: blue"&gt;="{&lt;/span&gt;&lt;span style="color: #a31515"&gt;StaticResource &lt;/span&gt;&lt;span style="color: red"&gt;ConnectingGridTarget&lt;/span&gt;&lt;span style="color: blue"&gt;}" &lt;/span&gt;&lt;span style="color: red"&gt;Grid.Row&lt;/span&gt;&lt;span style="color: blue"&gt;="2" &lt;/span&gt;&lt;span style="color: red"&gt;Grid.Column&lt;/span&gt;&lt;span style="color: blue"&gt;="2"&amp;gt;&lt;br /&gt;            &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Border &lt;/span&gt;&lt;span style="color: red"&gt;Style&lt;/span&gt;&lt;span style="color: blue"&gt;="{&lt;/span&gt;&lt;span style="color: #a31515"&gt;StaticResource &lt;/span&gt;&lt;span style="color: red"&gt;ConnectingGridBorderTarget&lt;/span&gt;&lt;span style="color: blue"&gt;}"&amp;gt;&lt;br /&gt;                &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;TextBlock &lt;/span&gt;&lt;span style="color: red"&gt;Text&lt;/span&gt;&lt;span style="color: blue"&gt;="Vegetable" &lt;/span&gt;&lt;span style="color: red"&gt;Style&lt;/span&gt;&lt;span style="color: blue"&gt;="{&lt;/span&gt;&lt;span style="color: #a31515"&gt;StaticResource &lt;/span&gt;&lt;span style="color: red"&gt;ConnectingGridTextBlock&lt;/span&gt;&lt;span style="color: blue"&gt;}" /&amp;gt;&lt;br /&gt;            &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Border&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br /&gt;        &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;local&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;ConnectingControl&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br /&gt;    &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Grid&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br /&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Window&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;ConnectingControl.cs&lt;/strong&gt;&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color: blue"&gt;using &lt;/span&gt;System;&lt;br /&gt;&lt;span style="color: blue"&gt;using &lt;/span&gt;System.ComponentModel;&lt;br /&gt;&lt;span style="color: blue"&gt;using &lt;/span&gt;System.Windows;&lt;br /&gt;&lt;span style="color: blue"&gt;using &lt;/span&gt;System.Windows.Controls;&lt;br /&gt;&lt;span style="color: blue"&gt;using &lt;/span&gt;System.Windows.Input;&lt;br /&gt;&lt;span style="color: blue"&gt;using &lt;/span&gt;System.Windows.Media;&lt;br /&gt;&lt;span style="color: blue"&gt;using &lt;/span&gt;System.Windows.Shapes;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: blue"&gt;namespace &lt;/span&gt;ConnectingLines&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: blue"&gt;public class &lt;/span&gt;&lt;span style="color: #2b91af"&gt;ConnectingControl &lt;/span&gt;: &lt;span style="color: #2b91af"&gt;Grid&lt;br /&gt;    &lt;/span&gt;{&lt;br /&gt;        &lt;span style="color: blue"&gt;#region &lt;/span&gt;PROPERTIES&lt;br /&gt;        &lt;span style="color: blue"&gt;public enum &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Connection &lt;/span&gt;{ Both, Source, Target };&lt;br /&gt;        &lt;span style="color: blue"&gt;private &lt;/span&gt;&lt;span style="color: #2b91af"&gt;ConnectingControl &lt;/span&gt;ConnectedControl { &lt;span style="color: blue"&gt;get&lt;/span&gt;; &lt;span style="color: blue"&gt;set&lt;/span&gt;; }&lt;br /&gt;        &lt;span style="color: blue"&gt;private &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Line &lt;/span&gt;ConnectedLine { &lt;span style="color: blue"&gt;get&lt;/span&gt;; &lt;span style="color: blue"&gt;set&lt;/span&gt;; }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: blue"&gt;new private bool &lt;/span&gt;AllowDrop { &lt;span style="color: blue"&gt;get&lt;/span&gt;; &lt;span style="color: blue"&gt;set&lt;/span&gt;; }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: blue"&gt;#region &lt;/span&gt;DEPENDENCY PROPERTIES&lt;br /&gt;        &lt;span style="color: blue"&gt;public event &lt;/span&gt;&lt;span style="color: #2b91af"&gt;PropertyChangedEventHandler &lt;/span&gt;PropertyChanged;&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: blue"&gt;private void &lt;/span&gt;NotifyPropertyChanged(&lt;span style="color: #2b91af"&gt;String &lt;/span&gt;info)&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: blue"&gt;if &lt;/span&gt;(PropertyChanged != &lt;span style="color: blue"&gt;null&lt;/span&gt;)&lt;br /&gt;            {&lt;br /&gt;                PropertyChanged(&lt;span style="color: blue"&gt;this&lt;/span&gt;, &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;PropertyChangedEventArgs&lt;/span&gt;(info));&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: blue"&gt;public static readonly &lt;/span&gt;&lt;span style="color: #2b91af"&gt;DependencyProperty &lt;/span&gt;AllowMultipleConnectionsProperty = &lt;span style="color: #2b91af"&gt;DependencyProperty&lt;/span&gt;.Register(&lt;span style="color: #a31515"&gt;"AllowMultipleConnections"&lt;/span&gt;, &lt;span style="color: blue"&gt;typeof&lt;/span&gt;(&lt;span style="color: blue"&gt;bool&lt;/span&gt;), &lt;span style="color: blue"&gt;typeof&lt;/span&gt;(&lt;span style="color: #2b91af"&gt;ConnectingControl&lt;/span&gt;));&lt;br /&gt;        &lt;span style="color: blue"&gt;public static readonly &lt;/span&gt;&lt;span style="color: #2b91af"&gt;DependencyProperty &lt;/span&gt;ConnectionTypeProperty = &lt;span style="color: #2b91af"&gt;DependencyProperty&lt;/span&gt;.Register(&lt;span style="color: #a31515"&gt;"ConnectionType"&lt;/span&gt;, &lt;span style="color: blue"&gt;typeof&lt;/span&gt;(&lt;span style="color: #2b91af"&gt;Connection&lt;/span&gt;), &lt;span style="color: blue"&gt;typeof&lt;/span&gt;(&lt;span style="color: #2b91af"&gt;ConnectingControl&lt;/span&gt;));&lt;br /&gt;        &lt;span style="color: blue"&gt;public static readonly &lt;/span&gt;&lt;span style="color: #2b91af"&gt;DependencyProperty &lt;/span&gt;LineThicknessProperty = &lt;span style="color: #2b91af"&gt;DependencyProperty&lt;/span&gt;.Register(&lt;span style="color: #a31515"&gt;"LineThickness"&lt;/span&gt;, &lt;span style="color: blue"&gt;typeof&lt;/span&gt;(&lt;span style="color: blue"&gt;double&lt;/span&gt;), &lt;span style="color: blue"&gt;typeof&lt;/span&gt;(&lt;span style="color: #2b91af"&gt;ConnectingControl&lt;/span&gt;));&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: blue"&gt;public bool &lt;/span&gt;AllowMultipleConnections&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: blue"&gt;get &lt;br /&gt;            &lt;/span&gt;{ &lt;br /&gt;                &lt;span style="color: blue"&gt;return &lt;/span&gt;(&lt;span style="color: blue"&gt;bool&lt;/span&gt;)GetValue(AllowMultipleConnectionsProperty); }&lt;br /&gt;            &lt;span style="color: blue"&gt;set&lt;br /&gt;            &lt;/span&gt;{&lt;br /&gt;                SetValue(AllowMultipleConnectionsProperty, &lt;span style="color: blue"&gt;value&lt;/span&gt;);&lt;br /&gt;                NotifyPropertyChanged(&lt;span style="color: #a31515"&gt;"AllowMultipleConnections"&lt;/span&gt;);&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: blue"&gt;public &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Connection &lt;/span&gt;ConnectionType&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: blue"&gt;get &lt;/span&gt;{ &lt;span style="color: blue"&gt;return &lt;/span&gt;(&lt;span style="color: #2b91af"&gt;Connection&lt;/span&gt;)GetValue(ConnectionTypeProperty); }&lt;br /&gt;            &lt;span style="color: blue"&gt;set&lt;br /&gt;            &lt;/span&gt;{&lt;br /&gt;                SetValue(ConnectionTypeProperty, &lt;span style="color: blue"&gt;value&lt;/span&gt;);&lt;br /&gt;                NotifyPropertyChanged(&lt;span style="color: #a31515"&gt;"ConnectionType"&lt;/span&gt;);&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: blue"&gt;public double &lt;/span&gt;LineThickness&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: blue"&gt;get &lt;br /&gt;            &lt;/span&gt;{&lt;br /&gt;                &lt;span style="color: blue"&gt;double &lt;/span&gt;thickness = (&lt;span style="color: blue"&gt;double&lt;/span&gt;)GetValue(LineThicknessProperty);&lt;br /&gt;                &lt;span style="color: blue"&gt;if &lt;/span&gt;(thickness == 0)&lt;br /&gt;                {&lt;br /&gt;                    thickness = 3;&lt;br /&gt;                }&lt;br /&gt;                &lt;span style="color: blue"&gt;return &lt;/span&gt;thickness; &lt;br /&gt;            }&lt;br /&gt;            &lt;span style="color: blue"&gt;set&lt;br /&gt;            &lt;/span&gt;{&lt;br /&gt;                SetValue(LineThicknessProperty, &lt;span style="color: blue"&gt;value&lt;/span&gt;);&lt;br /&gt;                NotifyPropertyChanged(&lt;span style="color: #a31515"&gt;"LineThickness"&lt;/span&gt;);&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        &lt;span style="color: blue"&gt;#endregion&lt;br /&gt;        #endregion&lt;br /&gt;&lt;br /&gt;        #region &lt;/span&gt;CONSTRUCTOR AND INITIALIZER&lt;br /&gt;        &lt;span style="color: blue"&gt;public &lt;/span&gt;ConnectingControl()&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: blue"&gt;this&lt;/span&gt;.DragEnter += &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;DragEventHandler&lt;/span&gt;(CustomButton_DragEnter);&lt;br /&gt;            &lt;span style="color: blue"&gt;this&lt;/span&gt;.Drop += &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;DragEventHandler&lt;/span&gt;(CustomButton_Drop);&lt;br /&gt;            &lt;span style="color: blue"&gt;this&lt;/span&gt;.PreviewMouseLeftButtonDown += &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;MouseButtonEventHandler&lt;/span&gt;(CustomButton_PreviewMouseLeftButtonDown);&lt;br /&gt;        }&lt;br /&gt;        &lt;br /&gt;        &lt;span style="color: blue"&gt;protected override void &lt;/span&gt;OnInitialized(System.&lt;span style="color: #2b91af"&gt;EventArgs &lt;/span&gt;e)&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: blue"&gt;base&lt;/span&gt;.AllowDrop = &lt;span style="color: blue"&gt;true&lt;/span&gt;;&lt;br /&gt;            &lt;span style="color: blue"&gt;base&lt;/span&gt;.OnInitialized(e);            &lt;br /&gt;            PreviewMouseLeftButtonDown += &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;MouseButtonEventHandler&lt;/span&gt;(CustomButton_PreviewMouseLeftButtonDown);&lt;br /&gt;            Drop += &lt;span style="color: blue"&gt;new &lt;/span&gt;System.Windows.&lt;span style="color: #2b91af"&gt;DragEventHandler&lt;/span&gt;(CustomButton_Drop);&lt;br /&gt;            DragEnter += &lt;span style="color: blue"&gt;new &lt;/span&gt;System.Windows.&lt;span style="color: #2b91af"&gt;DragEventHandler&lt;/span&gt;(CustomButton_DragEnter);&lt;br /&gt;        }&lt;br /&gt;        &lt;span style="color: blue"&gt;#endregion&lt;br /&gt;&lt;br /&gt;        #region &lt;/span&gt;EVENT HANDLERS AND METHODS&lt;br /&gt;        &lt;span style="color: blue"&gt;protected void &lt;/span&gt;CustomButton_PreviewMouseLeftButtonDown(&lt;span style="color: blue"&gt;object &lt;/span&gt;sender, System.Windows.Input.&lt;span style="color: #2b91af"&gt;MouseButtonEventArgs &lt;/span&gt;e)&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: #2b91af"&gt;ConnectingControl &lt;/span&gt;item = (&lt;span style="color: #2b91af"&gt;ConnectingControl&lt;/span&gt;)sender;&lt;br /&gt;            &lt;span style="color: #2b91af"&gt;DataObject &lt;/span&gt;dragData = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;DataObject&lt;/span&gt;(&lt;span style="color: #a31515"&gt;"source"&lt;/span&gt;, (&lt;span style="color: #2b91af"&gt;ConnectingControl&lt;/span&gt;)sender);&lt;br /&gt;            &lt;span style="color: #2b91af"&gt;DragDrop&lt;/span&gt;.DoDragDrop((&lt;span style="color: #2b91af"&gt;ConnectingControl&lt;/span&gt;)sender, dragData, &lt;span style="color: #2b91af"&gt;DragDropEffects&lt;/span&gt;.Move);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: blue"&gt;protected void &lt;/span&gt;CustomButton_DragEnter(&lt;span style="color: blue"&gt;object &lt;/span&gt;sender, System.Windows.&lt;span style="color: #2b91af"&gt;DragEventArgs &lt;/span&gt;e)&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: blue"&gt;if &lt;/span&gt;(!e.Data.GetDataPresent(&lt;span style="color: #a31515"&gt;"source"&lt;/span&gt;) || sender == e.Source)&lt;br /&gt;            {&lt;br /&gt;                e.Effects = &lt;span style="color: #2b91af"&gt;DragDropEffects&lt;/span&gt;.None;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: blue"&gt;protected void &lt;/span&gt;CustomButton_Drop(&lt;span style="color: blue"&gt;object &lt;/span&gt;sender, System.Windows.&lt;span style="color: #2b91af"&gt;DragEventArgs &lt;/span&gt;e)&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: blue"&gt;if &lt;/span&gt;(e.Data.GetDataPresent(&lt;span style="color: #a31515"&gt;"source"&lt;/span&gt;))&lt;br /&gt;            {&lt;br /&gt;                &lt;span style="color: #2b91af"&gt;ConnectingControl &lt;/span&gt;source = e.Data.GetData(&lt;span style="color: #a31515"&gt;"source"&lt;/span&gt;) &lt;span style="color: blue"&gt;as &lt;/span&gt;&lt;span style="color: #2b91af"&gt;ConnectingControl&lt;/span&gt;;&lt;br /&gt;                ConnectedControl = source;&lt;br /&gt;                ConnectControls();&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        &lt;br /&gt;        &lt;span style="color: blue"&gt;private void &lt;/span&gt;ConnectControls()&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: blue"&gt;bool &lt;/span&gt;connect = &lt;span style="color: blue"&gt;false&lt;/span&gt;;&lt;br /&gt;            &lt;span style="color: blue"&gt;if &lt;/span&gt;(&lt;span style="color: blue"&gt;this&lt;/span&gt;.ConnectionType == &lt;span style="color: #2b91af"&gt;Connection&lt;/span&gt;.Both)&lt;br /&gt;            {&lt;br /&gt;                connect = &lt;span style="color: blue"&gt;true&lt;/span&gt;;&lt;br /&gt;            }&lt;br /&gt;            &lt;span style="color: blue"&gt;else&lt;br /&gt;            &lt;/span&gt;{&lt;br /&gt;                &lt;span style="color: blue"&gt;if &lt;/span&gt;(&lt;span style="color: blue"&gt;this&lt;/span&gt;.ConnectionType == ConnectedControl.ConnectionType)&lt;br /&gt;                {&lt;br /&gt;                    connect = &lt;span style="color: blue"&gt;false&lt;/span&gt;;&lt;br /&gt;                }&lt;br /&gt;                &lt;span style="color: blue"&gt;else&lt;br /&gt;                &lt;/span&gt;{&lt;br /&gt;                    connect = &lt;span style="color: blue"&gt;true&lt;/span&gt;;&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;            &lt;span style="color: blue"&gt;if &lt;/span&gt;(connect)&lt;br /&gt;            {&lt;br /&gt;                &lt;span style="color: #2b91af"&gt;Panel &lt;/span&gt;parent = GetRoot(&lt;span style="color: blue"&gt;this&lt;/span&gt;);&lt;br /&gt;                &lt;span style="color: #2b91af"&gt;Line &lt;/span&gt;line = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Line&lt;/span&gt;() { StrokeThickness = LineThickness, Stroke = GetRandomBrush() };&lt;br /&gt;                &lt;span style="color: #2b91af"&gt;GeneralTransform &lt;/span&gt;sourceTransform = ConnectedControl.TransformToVisual(parent);&lt;br /&gt;                &lt;span style="color: #2b91af"&gt;Point &lt;/span&gt;sourcePoint = sourceTransform.Transform(&lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Point&lt;/span&gt;(0, 0));&lt;br /&gt;                &lt;span style="color: #2b91af"&gt;GeneralTransform &lt;/span&gt;targetTransform = &lt;span style="color: blue"&gt;this&lt;/span&gt;.TransformToVisual(parent);&lt;br /&gt;                &lt;span style="color: #2b91af"&gt;Point &lt;/span&gt;targetPoint = targetTransform.Transform(&lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Point&lt;/span&gt;(0, 0));&lt;br /&gt;                &lt;span style="color: blue"&gt;if &lt;/span&gt;(sourcePoint.X &amp;lt; targetPoint.X)&lt;br /&gt;                {&lt;br /&gt;                    line.X1 = sourcePoint.X + ConnectedControl.ActualWidth;&lt;br /&gt;                    line.Y1 = sourcePoint.Y + ConnectedControl.ActualHeight / 2;&lt;br /&gt;                    line.X2 = targetPoint.X;&lt;br /&gt;                    line.Y2 = targetPoint.Y + &lt;span style="color: blue"&gt;this&lt;/span&gt;.ActualHeight / 2;&lt;br /&gt;                }&lt;br /&gt;                &lt;span style="color: blue"&gt;else&lt;br /&gt;                &lt;/span&gt;{&lt;br /&gt;                    line.X1 = targetPoint.X + &lt;span style="color: blue"&gt;this&lt;/span&gt;.ActualWidth;&lt;br /&gt;                    line.Y1 = targetPoint.Y + &lt;span style="color: blue"&gt;this&lt;/span&gt;.ActualHeight / 2;&lt;br /&gt;                    line.X2 = sourcePoint.X;&lt;br /&gt;                    line.Y2 = sourcePoint.Y + ConnectedControl.ActualHeight / 2;&lt;br /&gt;                }&lt;br /&gt;                &lt;span style="color: blue"&gt;if &lt;/span&gt;(parent.GetType() == &lt;span style="color: blue"&gt;typeof&lt;/span&gt;(&lt;span style="color: #2b91af"&gt;Grid&lt;/span&gt;))&lt;br /&gt;                {&lt;br /&gt;                    line.SetValue(&lt;span style="color: #2b91af"&gt;Grid&lt;/span&gt;.ColumnSpanProperty, ((&lt;span style="color: #2b91af"&gt;Grid&lt;/span&gt;)parent).ColumnDefinitions.Count);&lt;br /&gt;                    line.SetValue(&lt;span style="color: #2b91af"&gt;Grid&lt;/span&gt;.RowSpanProperty, ((&lt;span style="color: #2b91af"&gt;Grid&lt;/span&gt;)parent).RowDefinitions.Count);&lt;br /&gt;                }&lt;br /&gt;                &lt;span style="color: blue"&gt;if &lt;/span&gt;(!AllowMultipleConnections)&lt;br /&gt;                {&lt;br /&gt;                    &lt;span style="color: blue"&gt;if &lt;/span&gt;(ConnectedLine != &lt;span style="color: blue"&gt;null&lt;/span&gt;)&lt;br /&gt;                    {&lt;br /&gt;                        parent.Children.Remove(ConnectedLine);&lt;br /&gt;                    }&lt;br /&gt;                    &lt;span style="color: blue"&gt;if &lt;/span&gt;(ConnectedControl != &lt;span style="color: blue"&gt;null&lt;/span&gt;)&lt;br /&gt;                    {&lt;br /&gt;                        &lt;span style="color: blue"&gt;if &lt;/span&gt;(ConnectedControl.ConnectedLine != &lt;span style="color: blue"&gt;null&lt;/span&gt;)&lt;br /&gt;                        {&lt;br /&gt;                            GetRoot(&lt;span style="color: blue"&gt;this&lt;/span&gt;).Children.Remove(ConnectedControl.ConnectedLine);&lt;br /&gt;                        }&lt;br /&gt;                    }&lt;br /&gt;                }&lt;br /&gt;                ConnectedLine = line;&lt;br /&gt;                ConnectedControl.ConnectedLine = line;&lt;br /&gt;                parent.Children.Add(line);&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        &lt;span style="color: blue"&gt;#endregion&lt;br /&gt;&lt;br /&gt;        #region &lt;/span&gt;MISC METHODS&lt;br /&gt;        &lt;span style="color: blue"&gt;private &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Panel &lt;/span&gt;GetRoot(&lt;span style="color: #2b91af"&gt;FrameworkElement &lt;/span&gt;child)&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: blue"&gt;var &lt;/span&gt;parent = child.Parent &lt;span style="color: blue"&gt;as &lt;/span&gt;&lt;span style="color: #2b91af"&gt;FrameworkElement&lt;/span&gt;;&lt;br /&gt;            &lt;span style="color: blue"&gt;if &lt;/span&gt;(parent == &lt;span style="color: blue"&gt;null&lt;/span&gt;)&lt;br /&gt;            {&lt;br /&gt;                &lt;span style="color: blue"&gt;if &lt;/span&gt;(child &lt;span style="color: blue"&gt;is &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Window&lt;/span&gt;)&lt;br /&gt;                {&lt;br /&gt;                    &lt;span style="color: blue"&gt;if &lt;/span&gt;(((&lt;span style="color: #2b91af"&gt;Window&lt;/span&gt;)child).Content.GetType().BaseType == &lt;span style="color: blue"&gt;typeof&lt;/span&gt;(&lt;span style="color: #2b91af"&gt;Panel&lt;/span&gt;))&lt;br /&gt;                    {&lt;br /&gt;                        &lt;span style="color: blue"&gt;return &lt;/span&gt;((&lt;span style="color: #2b91af"&gt;Window&lt;/span&gt;)child).Content &lt;span style="color: blue"&gt;as &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Panel&lt;/span&gt;;&lt;br /&gt;                    }&lt;br /&gt;                    &lt;span style="color: blue"&gt;else&lt;br /&gt;                    &lt;/span&gt;{&lt;br /&gt;                        &lt;span style="color: blue"&gt;throw new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Exception&lt;/span&gt;(&lt;span style="color: #a31515"&gt;"The root content element is an unexpected type. It should be a Panel instead of a " &lt;/span&gt;+&lt;br /&gt;                            ((&lt;span style="color: #2b91af"&gt;Window&lt;/span&gt;)child).Content.GetType().BaseType.ToString() + &lt;span style="color: #a31515"&gt;"."&lt;/span&gt;);&lt;br /&gt;                    }&lt;br /&gt;                }&lt;br /&gt;                &lt;span style="color: blue"&gt;else&lt;br /&gt;                &lt;/span&gt;{&lt;br /&gt;                    &lt;span style="color: blue"&gt;throw new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Exception&lt;/span&gt;(&lt;span style="color: #a31515"&gt;"The root element is an unexpected type. It should be a Window instead of a" &lt;/span&gt;+&lt;br /&gt;                        child.GetType().ToString() + &lt;span style="color: #a31515"&gt;"."&lt;/span&gt;);&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;            &lt;span style="color: blue"&gt;return &lt;/span&gt;GetRoot(parent);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: green"&gt;//COLOR GENERATOR CODE Courtesy of: http://philosophil.spaces.live.com/blog/cns!7E55D8EFA2AEE5D6!201.entry&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: blue"&gt;private &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Brush &lt;/span&gt;GetRandomBrush()&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: #2b91af"&gt;Random &lt;/span&gt;randomColor = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Random&lt;/span&gt;();&lt;br /&gt;            &lt;span style="color: #2b91af"&gt;SolidColorBrush &lt;/span&gt;brush = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;SolidColorBrush&lt;/span&gt;();&lt;br /&gt;            &lt;span style="color: blue"&gt;double &lt;/span&gt;r, g, b;&lt;br /&gt;            &lt;span style="color: blue"&gt;double &lt;/span&gt;lightness = randomColor.NextDouble() * 0.5 + 0.4; &lt;span style="color: green"&gt;// not too dark nor too light&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: blue"&gt;double &lt;/span&gt;hue = randomColor.NextDouble() * 360.0; &lt;span style="color: green"&gt;// full hue spectrum&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: blue"&gt;double &lt;/span&gt;saturation = randomColor.NextDouble() * 0.8 + 0.2; &lt;span style="color: green"&gt;// not too grayish&lt;br /&gt;            &lt;/span&gt;HSLtoRGB(hue, saturation, lightness, &lt;span style="color: blue"&gt;out &lt;/span&gt;r, &lt;span style="color: blue"&gt;out &lt;/span&gt;g, &lt;span style="color: blue"&gt;out &lt;/span&gt;b);&lt;br /&gt;            brush.Color = System.Windows.Media.&lt;span style="color: #2b91af"&gt;Color&lt;/span&gt;.FromRgb((&lt;span style="color: blue"&gt;byte&lt;/span&gt;)(r * 255.0), (&lt;span style="color: blue"&gt;byte&lt;/span&gt;)(g * 255.0), (&lt;span style="color: blue"&gt;byte&lt;/span&gt;)(b * 255.0));&lt;br /&gt;            &lt;span style="color: blue"&gt;return &lt;/span&gt;brush;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: blue"&gt;public static void &lt;/span&gt;HSLtoRGB(&lt;span style="color: blue"&gt;double &lt;/span&gt;hue, &lt;span style="color: blue"&gt;double &lt;/span&gt;saturation, &lt;span style="color: blue"&gt;double &lt;/span&gt;luminance, &lt;span style="color: blue"&gt;out double &lt;/span&gt;red, &lt;span style="color: blue"&gt;out double &lt;/span&gt;green, &lt;span style="color: blue"&gt;out double &lt;/span&gt;blue)&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: blue"&gt;double &lt;/span&gt;q;&lt;br /&gt;            &lt;span style="color: blue"&gt;double &lt;/span&gt;p;&lt;br /&gt;            &lt;span style="color: blue"&gt;if &lt;/span&gt;(luminance &amp;lt; 0.5)&lt;br /&gt;            {&lt;br /&gt;                q = luminance * (1.0 + saturation);&lt;br /&gt;            }&lt;br /&gt;            &lt;span style="color: blue"&gt;else&lt;br /&gt;            &lt;/span&gt;{&lt;br /&gt;                q = luminance + saturation - (luminance * saturation);&lt;br /&gt;            }&lt;br /&gt;            p = 2 * luminance - q;&lt;br /&gt;            &lt;span style="color: blue"&gt;double &lt;/span&gt;hk = hue / 360.0;&lt;br /&gt;            &lt;span style="color: blue"&gt;double &lt;/span&gt;tr = hk + 1.0 / 3.0;&lt;br /&gt;            &lt;span style="color: blue"&gt;double &lt;/span&gt;tg = hk;&lt;br /&gt;            &lt;span style="color: blue"&gt;double &lt;/span&gt;tb = hk - 1.0 / 3.0;&lt;br /&gt;            tr = Normalize(tr);&lt;br /&gt;            tg = Normalize(tg);&lt;br /&gt;            tb = Normalize(tb);&lt;br /&gt;            red = ComputeColor(q, p, tr);&lt;br /&gt;            green = ComputeColor(q, p, tg);&lt;br /&gt;            blue = ComputeColor(q, p, tb);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: blue"&gt;private static double &lt;/span&gt;ComputeColor(&lt;span style="color: blue"&gt;double &lt;/span&gt;q, &lt;span style="color: blue"&gt;double &lt;/span&gt;p, &lt;span style="color: blue"&gt;double &lt;/span&gt;tc)&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: blue"&gt;if &lt;/span&gt;(tc &amp;lt; 1.0 / 6.0)&lt;br /&gt;            {&lt;br /&gt;                &lt;span style="color: blue"&gt;return &lt;/span&gt;p + ((q - p) * 6.0 * tc);&lt;br /&gt;            }&lt;br /&gt;            &lt;span style="color: blue"&gt;if &lt;/span&gt;(tc &amp;lt; 0.5)&lt;br /&gt;            {&lt;br /&gt;                &lt;span style="color: blue"&gt;return &lt;/span&gt;q;&lt;br /&gt;            }&lt;br /&gt;            &lt;span style="color: blue"&gt;if &lt;/span&gt;(tc &amp;lt; 2.0 / 3.0)&lt;br /&gt;            {&lt;br /&gt;                &lt;span style="color: blue"&gt;return &lt;/span&gt;p + ((q - p) * 6.0 * (2.0 / 3.0 - tc));&lt;br /&gt;            }&lt;br /&gt;            &lt;span style="color: blue"&gt;return &lt;/span&gt;p;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: blue"&gt;private static double &lt;/span&gt;Normalize(&lt;span style="color: blue"&gt;double &lt;/span&gt;tr)&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: blue"&gt;if &lt;/span&gt;(tr &amp;lt; 0)&lt;br /&gt;            {&lt;br /&gt;                &lt;span style="color: blue"&gt;return &lt;/span&gt;tr + 1.0;&lt;br /&gt;            }&lt;br /&gt;            &lt;span style="color: blue"&gt;if &lt;/span&gt;(tr &amp;gt; 1.0)&lt;br /&gt;            {&lt;br /&gt;                &lt;span style="color: blue"&gt;return &lt;/span&gt;tr - 1.0;&lt;br /&gt;            }&lt;br /&gt;            &lt;span style="color: blue"&gt;return &lt;/span&gt;tr;&lt;br /&gt;        }&lt;br /&gt;        &lt;span style="color: blue"&gt;#endregion&lt;br /&gt;    &lt;/span&gt;}&lt;br /&gt;}&lt;/pre&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3280948321129906341-5218191825546744151?l=johnlivingstontech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johnlivingstontech.blogspot.com/feeds/5218191825546744151/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://johnlivingstontech.blogspot.com/2011/02/custom-control-with-connecting-lines.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3280948321129906341/posts/default/5218191825546744151'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3280948321129906341/posts/default/5218191825546744151'/><link rel='alternate' type='text/html' href='http://johnlivingstontech.blogspot.com/2011/02/custom-control-with-connecting-lines.html' title='Custom Control with Connecting Lines using WPF / Silverlight'/><author><name>john.livingston</name><uri>http://www.blogger.com/profile/15046544302781486569</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_MMTaYTUqqA8/S_wm4ecIT6I/AAAAAAAACNM/UwxxaWdJLxY/S220/4283_90775887584_507792584_1737866_2361093_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_MMTaYTUqqA8/TVXNN0xem3I/AAAAAAAACsM/11iXiysYG9g/s72-c/ConnectingLines_thumb%5B3%5D.png?imgmax=800' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3280948321129906341.post-216810027651415092</id><published>2011-02-11T11:44:00.001-08:00</published><updated>2011-02-11T18:28:25.399-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WPF'/><title type='text'>A simple WPF fading popup control</title><content type='html'>&lt;p&gt;&lt;strong&gt;Steps:&lt;br&gt;&lt;br&gt;&lt;/strong&gt;1.) Create a WPF Project in Visual Studio.&amp;nbsp; I named mine FadingPopup. (Note: You can use 3.5 or 4.0, but you will need to use 4.0 if you want to take advantage of the animation EasingFunctions.)&lt;br&gt;2.) Add a User Control with the following code:&lt;/p&gt; &lt;p&gt;&lt;strong&gt;FadingPopupControl.xaml&lt;/strong&gt;&lt;br&gt;&lt;pre class="code"&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;UserControl &lt;/span&gt;&lt;span style="color: red"&gt;x&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;Class&lt;/span&gt;&lt;span style="color: blue"&gt;="FadingPopup.FadingPopupControl"&lt;br /&gt;             &lt;/span&gt;&lt;span style="color: red"&gt;xmlns&lt;/span&gt;&lt;span style="color: blue"&gt;="http://schemas.microsoft.com/winfx/2006/xaml/presentation"&lt;br /&gt;             &lt;/span&gt;&lt;span style="color: red"&gt;xmlns&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;x&lt;/span&gt;&lt;span style="color: blue"&gt;="http://schemas.microsoft.com/winfx/2006/xaml"&lt;br /&gt;             &lt;/span&gt;&lt;span style="color: red"&gt;xmlns&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;mc&lt;/span&gt;&lt;span style="color: blue"&gt;="http://schemas.openxmlformats.org/markup-compatibility/2006" &lt;br /&gt;             &lt;/span&gt;&lt;span style="color: red"&gt;xmlns&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;d&lt;/span&gt;&lt;span style="color: blue"&gt;="http://schemas.microsoft.com/expression/blend/2008" &lt;br /&gt;             &lt;/span&gt;&lt;span style="color: red"&gt;mc&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;Ignorable&lt;/span&gt;&lt;span style="color: blue"&gt;="d" &lt;/span&gt;&lt;span style="color: red"&gt;BorderThickness&lt;/span&gt;&lt;span style="color: blue"&gt;="0" &lt;/span&gt;&lt;span style="color: red"&gt;Margin&lt;/span&gt;&lt;span style="color: blue"&gt;="0"&amp;gt;&lt;br /&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;UserControl.Resources&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br /&gt;        &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Storyboard &lt;/span&gt;&lt;span style="color: red"&gt;x&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;Name&lt;/span&gt;&lt;span style="color: blue"&gt;="StatusFader" &lt;/span&gt;&lt;span style="color: red"&gt;x&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;Key&lt;/span&gt;&lt;span style="color: blue"&gt;="StatusFader" &lt;/span&gt;&lt;span style="color: red"&gt;Completed&lt;/span&gt;&lt;span style="color: blue"&gt;="StatusFader_Completed"&amp;gt;&lt;br /&gt;            &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;DoubleAnimation &lt;/span&gt;&lt;span style="color: red"&gt;Storyboard.TargetName&lt;/span&gt;&lt;span style="color: blue"&gt;="popupBackground" &lt;/span&gt;&lt;span style="color: red"&gt;Storyboard.TargetProperty&lt;/span&gt;&lt;span style="color: blue"&gt;="Opacity" &lt;/span&gt;&lt;span style="color: red"&gt;From&lt;/span&gt;&lt;span style="color: blue"&gt;="0.7" &lt;/span&gt;&lt;span style="color: red"&gt;To&lt;/span&gt;&lt;span style="color: blue"&gt;="0" &lt;/span&gt;&lt;span style="color: red"&gt;BeginTime&lt;/span&gt;&lt;span style="color: blue"&gt;="0:0:0"  &lt;/span&gt;&lt;span style="color: red"&gt;Duration&lt;/span&gt;&lt;span style="color: blue"&gt;="0:0:1.5"&amp;gt;&lt;br /&gt;                &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;DoubleAnimation.EasingFunction&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br /&gt;                    &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;ExponentialEase &lt;/span&gt;&lt;span style="color: red"&gt;Exponent&lt;/span&gt;&lt;span style="color: blue"&gt;="10" &lt;/span&gt;&lt;span style="color: red"&gt;EasingMode&lt;/span&gt;&lt;span style="color: blue"&gt;="EaseIn" /&amp;gt;&lt;br /&gt;                &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;DoubleAnimation.EasingFunction&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br /&gt;            &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;DoubleAnimation&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br /&gt;        &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Storyboard&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br /&gt;    &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;UserControl.Resources&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br /&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Popup &lt;/span&gt;&lt;span style="color: red"&gt;Name&lt;/span&gt;&lt;span style="color: blue"&gt;="popup" &lt;/span&gt;&lt;span style="color: red"&gt;Placement&lt;/span&gt;&lt;span style="color: blue"&gt;="Center" &lt;/span&gt;&lt;span style="color: red"&gt;PopupAnimation&lt;/span&gt;&lt;span style="color: blue"&gt;="Fade" &lt;/span&gt;&lt;span style="color: red"&gt;AllowsTransparency&lt;/span&gt;&lt;span style="color: blue"&gt;="True"&amp;gt;&lt;br /&gt;        &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Grid &lt;/span&gt;&lt;span style="color: red"&gt;Background&lt;/span&gt;&lt;span style="color: blue"&gt;="Transparent"&amp;gt;&lt;br /&gt;            &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Grid &lt;/span&gt;&lt;span style="color: red"&gt;Name&lt;/span&gt;&lt;span style="color: blue"&gt;="popupBackground" &lt;/span&gt;&lt;span style="color: red"&gt;Background&lt;/span&gt;&lt;span style="color: blue"&gt;="Black" &lt;/span&gt;&lt;span style="color: red"&gt;Grid.Column&lt;/span&gt;&lt;span style="color: blue"&gt;="0" &lt;/span&gt;&lt;span style="color: red"&gt;Grid.Row&lt;/span&gt;&lt;span style="color: blue"&gt;="0" /&amp;gt;&lt;br /&gt;            &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Label &lt;/span&gt;&lt;span style="color: red"&gt;Name&lt;/span&gt;&lt;span style="color: blue"&gt;="popupLabel" &lt;/span&gt;&lt;span style="color: red"&gt;DockPanel.Dock&lt;/span&gt;&lt;span style="color: blue"&gt;="Bottom" &lt;/span&gt;&lt;span style="color: red"&gt;HorizontalAlignment&lt;/span&gt;&lt;span style="color: blue"&gt;="Center" &lt;/span&gt;&lt;span style="color: red"&gt;Foreground&lt;/span&gt;&lt;span style="color: blue"&gt;="White" &lt;/span&gt;&lt;span style="color: red"&gt;VerticalAlignment&lt;/span&gt;&lt;span style="color: blue"&gt;="Center" &lt;/span&gt;&lt;span style="color: red"&gt;Background&lt;/span&gt;&lt;span style="color: blue"&gt;="Transparent" &lt;/span&gt;&lt;span style="color: red"&gt;Grid.Column&lt;/span&gt;&lt;span style="color: blue"&gt;="0" &lt;/span&gt;&lt;span style="color: red"&gt;Grid.Row&lt;/span&gt;&lt;span style="color: blue"&gt;="0"/&amp;gt;&lt;br /&gt;        &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Grid&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br /&gt;    &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Popup&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br /&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;UserControl&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;FadingPopupControl.xaml.cs&lt;br&gt;&lt;br&gt;&lt;pre class="code"&gt;&lt;span style="color: blue"&gt;using &lt;/span&gt;System;&lt;br /&gt;&lt;span style="color: blue"&gt;using &lt;/span&gt;System.Windows;&lt;br /&gt;&lt;span style="color: blue"&gt;using &lt;/span&gt;System.Windows.Controls;&lt;br /&gt;&lt;span style="color: blue"&gt;using &lt;/span&gt;System.Windows.Media.Animation;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: blue"&gt;namespace &lt;/span&gt;FadingPopup&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: blue"&gt;public partial class &lt;/span&gt;&lt;span style="color: #2b91af"&gt;FadingPopupControl &lt;/span&gt;: &lt;span style="color: #2b91af"&gt;UserControl&lt;br /&gt;    &lt;/span&gt;{&lt;br /&gt;        &lt;span style="color: #2b91af"&gt;Window &lt;/span&gt;ParentWindow { &lt;span style="color: blue"&gt;get&lt;/span&gt;; &lt;span style="color: blue"&gt;set&lt;/span&gt;; }&lt;br /&gt;        &lt;span style="color: blue"&gt;public &lt;/span&gt;FadingPopupControl()&lt;br /&gt;        {&lt;br /&gt;            InitializeComponent();&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: blue"&gt;protected override void &lt;/span&gt;OnInitialized(&lt;span style="color: #2b91af"&gt;EventArgs &lt;/span&gt;e)&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: blue"&gt;base&lt;/span&gt;.OnInitialized(e);            &lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: blue"&gt;public void &lt;/span&gt;ShowDialogBox(&lt;span style="color: #2b91af"&gt;Window &lt;/span&gt;parentWindow, &lt;span style="color: blue"&gt;string &lt;/span&gt;message)&lt;br /&gt;        {&lt;br /&gt;            ParentWindow = parentWindow;&lt;br /&gt;            popupLabel.Content = message;&lt;br /&gt;            &lt;span style="color: #2b91af"&gt;Storyboard &lt;/span&gt;StatusFader = (&lt;span style="color: #2b91af"&gt;Storyboard&lt;/span&gt;)Resources[&lt;span style="color: #a31515"&gt;"StatusFader"&lt;/span&gt;];&lt;br /&gt;            ParentWindow.IsEnabled = &lt;span style="color: blue"&gt;false&lt;/span&gt;;&lt;br /&gt;            &lt;span style="color: #2b91af"&gt;FrameworkElement &lt;/span&gt;root = (&lt;span style="color: #2b91af"&gt;FrameworkElement&lt;/span&gt;)ParentWindow.Content;&lt;br /&gt;            &lt;span style="color: blue"&gt;this&lt;/span&gt;.Height = root.ActualHeight;&lt;br /&gt;            &lt;span style="color: blue"&gt;this&lt;/span&gt;.Width = root.ActualWidth;&lt;br /&gt;            &lt;span style="color: green"&gt;//TODO: Determine why there is 1 pixel extra whitespace.&lt;br /&gt;            //Tried playing with Margins and Alignment to no avail.&lt;br /&gt;            &lt;/span&gt;popup.Height = root.ActualHeight + 1; &lt;br /&gt;            popup.Width = root.ActualWidth + 1;            &lt;br /&gt;            popup.IsOpen = &lt;span style="color: blue"&gt;true&lt;/span&gt;;&lt;br /&gt;            StatusFader.Begin(popupBackground);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: blue"&gt;void &lt;/span&gt;StatusFader_Completed(&lt;span style="color: blue"&gt;object &lt;/span&gt;sender, &lt;span style="color: #2b91af"&gt;EventArgs &lt;/span&gt;e)&lt;br /&gt;        {&lt;br /&gt;            popup.IsOpen = &lt;span style="color: blue"&gt;false&lt;/span&gt;;&lt;br /&gt;            ParentWindow.IsEnabled = &lt;span style="color: blue"&gt;true&lt;/span&gt;;            &lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/h2&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;&lt;pre class="code"&gt;&lt;/strong&gt;3.) In the MainWindow.xaml, add a Button with a PreviewMouseLeftButtonDown event handler.&lt;br&gt;4.) Add a local reference and then your popup control.&lt;br&gt;5.) In your button event handler, initiate the popup.&lt;/pre&gt;&lt;br /&gt;&lt;h2&gt;MainWindow.xaml&lt;/h2&gt;&lt;br&gt;&lt;pre class="csharpcode"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;pre class="code"&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Window &lt;/span&gt;&lt;span style="color: red"&gt;x&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;Class&lt;/span&gt;&lt;span style="color: blue"&gt;="FadingPopup.MainWindow"&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: red"&gt;xmlns&lt;/span&gt;&lt;span style="color: blue"&gt;="http://schemas.microsoft.com/winfx/2006/xaml/presentation"&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: red"&gt;xmlns&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;x&lt;/span&gt;&lt;span style="color: blue"&gt;="http://schemas.microsoft.com/winfx/2006/xaml"&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: red"&gt;xmlns&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;local&lt;/span&gt;&lt;span style="color: blue"&gt;="clr-namespace:FadingPopup"&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: red"&gt;xmlns&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;controls&lt;/span&gt;&lt;span style="color: blue"&gt;="clr-namespace:System.Windows.Controls;assembly=PresentationFramework"&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: red"&gt;Title&lt;/span&gt;&lt;span style="color: blue"&gt;="MainWindow" &lt;/span&gt;&lt;span style="color: red"&gt;Height&lt;/span&gt;&lt;span style="color: blue"&gt;="350" &lt;/span&gt;&lt;span style="color: red"&gt;Width&lt;/span&gt;&lt;span style="color: blue"&gt;="525"&amp;gt;&lt;br /&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Grid&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br /&gt;        &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Button &lt;/span&gt;&lt;span style="color: red"&gt;x&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;Name&lt;/span&gt;&lt;span style="color: blue"&gt;="Test1" &lt;/span&gt;&lt;span style="color: red"&gt;Height&lt;/span&gt;&lt;span style="color: blue"&gt;="40" &lt;/span&gt;&lt;span style="color: red"&gt;Width&lt;/span&gt;&lt;span style="color: blue"&gt;="80" &lt;/span&gt;&lt;span style="color: red"&gt;Content&lt;/span&gt;&lt;span style="color: blue"&gt;="Test1" &lt;/span&gt;&lt;span style="color: red"&gt;Grid.Column&lt;/span&gt;&lt;span style="color: blue"&gt;="0" &lt;/span&gt;&lt;span style="color: red"&gt;AllowDrop&lt;/span&gt;&lt;span style="color: blue"&gt;="False" &lt;/span&gt;&lt;span style="color: red"&gt;PreviewMouseLeftButtonDown&lt;/span&gt;&lt;span style="color: blue"&gt;="Test1_PreviewMouseLeftButtonDown" /&amp;gt;&lt;br /&gt;        &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;local&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: #a31515"&gt;FadingPopupControl &lt;/span&gt;&lt;span style="color: red"&gt;x&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;Name&lt;/span&gt;&lt;span style="color: blue"&gt;="popup" /&amp;gt;&lt;br /&gt;    &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Grid&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;br /&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Window&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;br /&gt;&lt;h2&gt;&lt;strong&gt;MainWindow.xaml.cs&lt;/strong&gt;&lt;/h2&gt;&lt;strong&gt;&lt;/strong&gt;&lt;pre class="csharpcode"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;span style="color: blue"&gt;using &lt;/span&gt;System.Windows;&lt;br /&gt;&lt;span style="color: blue"&gt;using &lt;/span&gt;System.Windows.Input;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: blue"&gt;namespace &lt;/span&gt;FadingPopup&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: blue"&gt;public partial class &lt;/span&gt;&lt;span style="color: #2b91af"&gt;MainWindow &lt;/span&gt;: &lt;span style="color: #2b91af"&gt;Window&lt;br /&gt;    &lt;/span&gt;{&lt;br /&gt;        &lt;span style="color: blue"&gt;public &lt;/span&gt;MainWindow()&lt;br /&gt;        {&lt;br /&gt;            InitializeComponent();&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: blue"&gt;private void &lt;/span&gt;Test1_PreviewMouseLeftButtonDown(&lt;span style="color: blue"&gt;object &lt;/span&gt;sender, &lt;span style="color: #2b91af"&gt;MouseButtonEventArgs &lt;/span&gt;e)&lt;br /&gt;        {&lt;br /&gt;            popup.ShowDialogBox(Test1, &lt;span style="color: #a31515"&gt;"The is a sample message..."&lt;/span&gt;);&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/pre&gt;&lt;br /&gt;&lt;h2&gt;&lt;strong&gt;&lt;strong&gt;Screenshots&lt;/strong&gt;&lt;/strong&gt;&lt;/h2&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh5.ggpht.com/_MMTaYTUqqA8/TVWRpt35HVI/AAAAAAAACr4/4Ppf9eQYFHY/s1600-h/Fading2%5B3%5D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Fading2" border="0" alt="Fading2" src="http://lh4.ggpht.com/_MMTaYTUqqA8/TVWRp61ny9I/AAAAAAAACr8/xCsr_0sRiGg/Fading2_thumb%5B1%5D.png?imgmax=800" width="529" height="354"&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;This fades out in 1.2 seconds&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh5.ggpht.com/_MMTaYTUqqA8/TVWRqLQrXRI/AAAAAAAACsA/PWK9HrJD3nE/s1600-h/Fading%5B3%5D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Fading" border="0" alt="Fading" src="http://lh5.ggpht.com/_MMTaYTUqqA8/TVWRqkktabI/AAAAAAAACsE/s4ty_noXePc/Fading_thumb%5B1%5D.png?imgmax=800" width="529" height="354"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3280948321129906341-216810027651415092?l=johnlivingstontech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johnlivingstontech.blogspot.com/feeds/216810027651415092/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://johnlivingstontech.blogspot.com/2011/02/simple-wpf-fading-popup-control.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3280948321129906341/posts/default/216810027651415092'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3280948321129906341/posts/default/216810027651415092'/><link rel='alternate' type='text/html' href='http://johnlivingstontech.blogspot.com/2011/02/simple-wpf-fading-popup-control.html' title='A simple WPF fading popup control'/><author><name>john.livingston</name><uri>http://www.blogger.com/profile/15046544302781486569</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_MMTaYTUqqA8/S_wm4ecIT6I/AAAAAAAACNM/UwxxaWdJLxY/S220/4283_90775887584_507792584_1737866_2361093_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_MMTaYTUqqA8/TVWRp61ny9I/AAAAAAAACr8/xCsr_0sRiGg/s72-c/Fading2_thumb%5B1%5D.png?imgmax=800' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3280948321129906341.post-5172605521027840087</id><published>2011-02-01T15:15:00.000-08:00</published><updated>2011-02-01T15:55:02.453-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>PowerShell for SharePoint on Steroids!</title><content type='html'>&lt;div&gt;I created this script as an effort to quickly deploy an entire site structure into a DEV and QA (and potentially PROD) environment. I also wanted something I could easily edit on the fly. You can copy and paste the source code and save it as a ps1 file or download the code. You must run it on a SharePoint server with farm administrator privileges.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;b&gt;      This script includes the following functions:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;      - Creating Web Application&lt;br /&gt;      - Creating Site Collections&lt;br /&gt;      - Creating Subsites&lt;br /&gt;      - Setting Master Pages recursively.&lt;br /&gt;      - Adding Features&lt;br /&gt;      - Adding Site Columns&lt;br /&gt;      - Creating Lists&lt;br /&gt;      - Adding folders to Lists&lt;br /&gt;      - Adding Site Column to Lists&lt;br /&gt;      - Creating Views&lt;br /&gt;      - Enabling/Disabling Publishing, Checkin, and Approvals&lt;br /&gt;      - Creating Sample Items for Links, Announcements, and Calendar lists with permissions.&lt;br /&gt;      - Creating Publishing Pages&lt;br /&gt;      - Creating Groups with default owners&lt;br /&gt;      - Set Group permissions for subsites&lt;br /&gt;      - Add Content Query Web Parts (CQWP) for site and subsite lists.&lt;br /&gt;&lt;br /&gt;&lt;b&gt; Tools&lt;/b&gt;&lt;/div&gt;&lt;div&gt;You can easily use Notepad to edit this file, but I highly recommend PowerGUI.&lt;br /&gt;      It it is free and has a great interface and provides things like debugging, Intellisense, formatting,&lt;br /&gt;      and plug-ins. Power GUI: http://www.powergui.org&lt;br /&gt;&lt;br /&gt; Developer Notes: I am not a PowerShell pro by any stretch of imagination and am still learning the intricacies of the language. There is no use of classes, collections, and exception handling is sparse. Some of this is due to my ignorance on the subject. That being said, I have no doubt there are areas that can be written more efficiently.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" &gt;CreateSamplePublishingPortal Function&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;b&gt; Description&lt;/b&gt;&lt;/div&gt;&lt;div&gt;This function will use all of the scripts functions and create an entire web application and site collection with subsites, site columns, lists, sample list items, and permissions. You can easily comment out or change&lt;br /&gt;&lt;b&gt;&lt;br /&gt; Parameters&lt;/b&gt;&lt;/div&gt;&lt;div&gt;If you choose false for either, ensure that all of the variables in the function are correct.&lt;br /&gt;      $createWebApplication - Boolean to determine if Web Application is created.&lt;br /&gt;      $createSiteCollection - Boolean to determine if Site Collection is created.&lt;br /&gt;      $env - Determines the environment. Valid values are: "dev", "qa", or "prod".&lt;br /&gt;      Variables within the function must be updated to use this functionality.&lt;br /&gt;&lt;br /&gt;&lt;b&gt; Global Variables&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;/b&gt;Before running the script, you will want to make sure and update all Global Variabes in this script&lt;br /&gt;      to ensure they will work with your environment. You can also comment out parts of the script that you don't want to run.&lt;br /&gt;&lt;br /&gt;&lt;b&gt; Lists&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;/b&gt;The multichoice "Site Visibility" site column is added to all lists. It include the values&lt;br /&gt;       "Private Team", "Public Team", and "Intranet".&lt;br /&gt;      - Corresponding views are created for each "Site Visibility" value.&lt;br /&gt;      - A "public" folder added to each list and read permissions added to allow users outside of the private site.&lt;br /&gt;      - Sample items are also added to the lists and every combination of "Site Visibility" is used. If the&lt;br /&gt;       value for the item has a "Site Visibility" that contains "Public Team" or "Intranet" it is moved into the "public" folder.&lt;br /&gt;       This allows permissions to stay at the folder level and not the item level.&lt;br /&gt;      - Note: A workflow still needs to be created to ensure that when items are created or changed they go to the public folder.&lt;br /&gt;&lt;br /&gt;&lt;b&gt; Permissions&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;/b&gt;All departmental private team sites disinherit the top level permissions so that unique permissions can be created. For example, Human Resources would include the following groups:&lt;br /&gt;     &lt;br /&gt;      Group Name  Permission&lt;br /&gt;      HR Owners  Full Control&lt;br /&gt;      HR Members  Contribue&lt;br /&gt;      HR Visitors  Read&lt;br /&gt;&lt;br /&gt;      The script also applies a default owner for all groups. This is an array variable that can be updated before running the script.&lt;br /&gt;      &lt;br /&gt;&lt;b&gt; Aggregate Views&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;/b&gt;Aggregate views using Content Query Web Parts (CQWP) are added to the Intranet and Public departmental team sites. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt; Extras&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;/b&gt;The script also does a few extra things like disabling publishing and approval, changing master page to v4.master, enabling Team Collaboration Features. I did this for a little more flexibility, especially for DEV and QA mode. These can all be easily disabled or changed back by using one of the functions in this file. For example, if you already have a web application, you can comment out "CreateWebApplication".&lt;br /&gt;&lt;br /&gt;&lt;b&gt; Execution Time&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;/b&gt;My notebook is not virtual, has an Intel i7 an 8 GB RAM. It takes around 8 minutes to run the entire script. Of that 8 minutes. Rough creation times (in seconds): Web Applicatoin: 110 s. / Site collection: 75 s. / Site: 30 s.&lt;br /&gt;&lt;br /&gt;&lt;b&gt; Site Hierarchy&lt;/b&gt;  &lt;/div&gt;&lt;div&gt;The following site hierarchy is created with this function. You can easily change this hierarchy by updating the variables in the function.&lt;br /&gt;&lt;br /&gt;  Intranet (Web Application)&lt;br /&gt;   Intranet        Site Collection  *(See notes below)&lt;br /&gt;      Departments (Publishing Site)&lt;br /&gt;         Private (Publishing Site)&lt;br /&gt;            Finance (Publishing Site)&lt;br /&gt;               Announcements (Announcements List)&lt;br /&gt;               News (News List)&lt;/div&gt;&lt;div&gt;               Team (Calendar   Calendar)&lt;br /&gt;               I Want To (Links List)&lt;br /&gt;               Staff Roles (Publishing Page)&lt;br /&gt;               Training (Publishing Page)&lt;br /&gt;               New Hires (Publishing Page)&lt;br /&gt;            Human Resources (Publishing Site)&lt;br /&gt;&lt;div&gt;               Announcements (Announcements List)&lt;br /&gt;               News (News List)&lt;/div&gt;&lt;div&gt;               Team (Calendar  Calendar)&lt;br /&gt;               I Want To (Links List)&lt;br /&gt;               Staff Roles (Publishing Page)&lt;br /&gt;               Training (Publishing Page)&lt;br /&gt;&lt;/div&gt;               New Hires (Publishing Page)&lt;br /&gt;            Information Technology  Publishing Site&lt;br /&gt;&lt;div&gt;               Announcements (Announcements List)&lt;br /&gt;               News (News List)&lt;/div&gt;&lt;div&gt;               Team (Calendar  Calendar)&lt;br /&gt;               I Want To (Links List)&lt;br /&gt;               Staff Roles (Publishing Page)&lt;br /&gt;               Training (Publishing Page)&lt;br /&gt;               New Hires (Publishing Page)&lt;/div&gt;            Marketing (Publishing Site)&lt;br /&gt;&lt;div&gt;               Announcements (Announcements List)&lt;br /&gt;               News (News List)&lt;/div&gt;&lt;div&gt;               Team (Calendar  Calendar)&lt;br /&gt;               I Want To (Links List)&lt;br /&gt;               Staff Roles (Publishing Page)&lt;br /&gt;               Training (Publishing Page)&lt;br /&gt;               New Hires (Publishing Page)&lt;/div&gt;&lt;div&gt;         Public       Publishing Site&lt;/div&gt;            Finance (Publishing Site)  **(See notes below)&lt;/div&gt;&lt;div&gt;            Human Resources (Publishing Site)  **(See notes below)&lt;br /&gt;            Information Technology (Publishing Site)  **(See notes below)&lt;br /&gt;            Marketing (Publishing Site)  **(See notes below)&lt;br /&gt; &lt;br /&gt; * Intranet Home page includes CQWPs that point to Lists from all departmental Private departmental sites. These are filtered by "Site Visibility" column where the value contains "Intranet".&lt;br /&gt;&lt;br /&gt; ** TODO: Departmental Public Home page includes CQWPs that aggregate Lists from corresponding Private departmental site.&lt;br /&gt;  These are filtered by "Site Visibility" column where the value contains "Public Team".&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Download Link&lt;/b&gt;&lt;br /&gt;&lt;a href="https://docs.google.com/leaf?id=0B1MCTZREBbeeNzM1M2JjMGUtODBhMy00MzQ3LTk3MDUtYzA4YWI2OTVmNzQ0&amp;amp;hl=en"&gt;SharePoint 2010 Portal Builder.ps1&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Source Code&lt;/b&gt;&lt;/div&gt;&lt;div&gt;(Unfortunately, blogspot destroyed any decent formatting I had, so I recommend downloading the file.)&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;#--------------------------------Sharepoint 2010 Portal Builder-------------------------------------------------------&lt;/div&gt;&lt;div&gt;#&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Description: &lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;I created this script as an effort to deploy an entire site structure &lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;into a DEV and QA (and potentially PROD) environment up and running quick. &lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;I also wanted something I could easily edit on the fly.&lt;/div&gt;&lt;div&gt;#&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;This script includes the following functions:&lt;/div&gt;&lt;div&gt;#&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;- Creating Web Application&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;- Creating Site Collections&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;- Creating Subsites&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;- Setting Master Pages recursively.&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;- Adding Features&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;- Adding Site Columns&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;- Creating Lists &lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;- Adding folders to Lists&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;- Adding Site Column to Lists&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;- Creating Views&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;- Enabling/Disabling Publishing, Checkin, and Approvals&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;- Creating Sample Items for Links, Announcements, and Calendar lists with permissions.&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;- Creating Publishing Pages&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;- Creating Groups with default owners&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;- Set Group permissions for subsites&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;- Add Content Query Web Parts (CQWP) for site and subsite lists.&lt;/div&gt;&lt;div&gt;#&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Tools:&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;You can easily use Notepad to edit this file, but I highly recommend PowerGUI. &lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;It it is free and has a great interface and provides things like debugging, Intellisense, formatting, &lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;and plug-ins.&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Power GUI:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;http://www.powergui.org&lt;/div&gt;&lt;div&gt;#&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Developer Notes:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;I am not a PowerShell pro by any stretch of imagination and am still learning the intricacies of the language.&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;There is no use of classes, collections, and exception handling is sparse. Some of this is due to my ingorance&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;on the subject. That being said, I have no doubt there are areas that can be written more efficiently.&lt;/div&gt;&lt;div&gt;#&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Author:&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;John Livingston&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Website:&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;http://johnlivingstontech.blogspot.com&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Created Date:&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;2/1/2011&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Updated Date:&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;2/1/2011&lt;/div&gt;&lt;div&gt;#&lt;/div&gt;&lt;div&gt;#--------------------------------CreateSamplePublishingPortal Function-------------------------------------------------------&lt;/div&gt;&lt;div&gt;#&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Description:&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;This function will use all of the scripts functions and create an entire web application and site collection&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;with subsites, site columns, lists, sample list items, and permissions. You can easily comment out or change &lt;/div&gt;&lt;div&gt;#&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Parameters:&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;If you choose false for either, ensure that all of the variables in the function are correct.&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;$createWebApplication - Boolean to determine if Web Application is created.&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;$createSiteCollection - Boolean to determine if Site Collection is created.&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;$env - Determines the environment. Valid values are: "dev", "qa", or "prod". &lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;Variables within the function must be updated to use this functionality.&lt;/div&gt;&lt;div&gt;#&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Global Variables:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Before running the script, you will want to make sure and update all Global Variabes in this script&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;to ensure they will work with your environment. You can also comment out parts of the script that you don't want to run.&lt;/div&gt;&lt;div&gt;#&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Lists:&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;-&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;The multichoice "Site Visibility" site column is added to all lists. It include the values &lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;       &lt;/span&gt;"Private Team", "Public Team", and "Intranet".&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;-&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Corresponding views are created for each "Site Visibility" value.&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;-&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;A "public" folder added to each list and read permissions added to allow users outside of the private site.&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;-&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Sample items are also added to the lists and every combination of "Site Visibility" is used. If the &lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;       &lt;/span&gt;value for the item has a "Site Visibility" that contains "Public Team" or "Intranet" it is moved into the "public" folder.&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;       &lt;/span&gt;This allows permissions to stay at the folder level and not the item level. &lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;-&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Note: A workflow still needs to be created&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;       &lt;/span&gt;to ensure that when items are created or changed they go to the public folder.&lt;/div&gt;&lt;div&gt;#&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Permissions:&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;All departmental private team sites disinherit the top level permissions so that unique permissions can be created.&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;For example, Human Resources would include the following groups:&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;     &lt;/span&gt;&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;Group Name&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;Permission&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;HR Owners&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;Full Control&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;HR Members&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;Contribue&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;HR Visitors&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;Read&lt;/div&gt;&lt;div&gt;#&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;The script also applies a default owner for all groups. This is an array variable that can be updated before running the script.&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Aggregate Views:&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Aggregate views using Content Query Web Parts (CQWP) are added to the Intranet and Public departmental team sites.&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;and aggregate views CQWP that use list views&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;created from the private team sites.&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;It also does a few extra things like disabling publishing and approval, changing master page to v4.master, &lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;enabling Team Collaboration Features.&lt;/div&gt;&lt;div&gt;#&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Extras:&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;The script also does a few extra things like disabling publishing and approval, changing master page to v4.master, &lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;enabling Team Collaboration Features. I did this for a little more flexibility, especially for DEV and QA mode.&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;These can all be easily disabled or changed back by using one of the functions in this file. For example, if you already&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;have a web application, you can comment out "CreateWebApplication".&lt;/div&gt;&lt;div&gt;#&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Execution Time:&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;My notebook is not virtual, has an Intel i7 an 8 GB RAM. It takes around 8 minutes to run the entire script. Of that 8 minutes.&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;Rough creation times (in seconds): Web Applicatoin: 110 s. / Site collection: 75 s. / Site: 30 s. &lt;/div&gt;&lt;div&gt;#&lt;/div&gt;&lt;div&gt;#&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Site Hierarchy:&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;The following site hierarchy is created with this function. &lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;You can easily change this hierarchy by updating the variables in the function.&lt;/div&gt;&lt;div&gt;#&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;Intranet&lt;span class="Apple-tab-span" style="white-space:pre"&gt;        &lt;/span&gt;Web Application&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;Intranet&lt;span class="Apple-tab-span" style="white-space:pre"&gt;        &lt;/span&gt;Site Collection&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;*(See notes below)&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;Departments&lt;span class="Apple-tab-span" style="white-space:pre"&gt;       &lt;/span&gt;Publishing Site&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;Private&lt;span class="Apple-tab-span" style="white-space:pre"&gt;       &lt;/span&gt;Publishing Site&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;     &lt;/span&gt;Finance&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;Publishing Site&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;Announcements&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;Announcements List&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;News&lt;span class="Apple-tab-span" style="white-space:pre"&gt;     &lt;/span&gt;News List&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;Team Calendar&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;Calendar&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;I Want To&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;Links List&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;Staff Roles&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;Publishing Page&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;Training&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;Publishing Page&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;New Hires&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;Publishing Page&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;     &lt;/span&gt;Human Resources&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;Publishing Site&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;Announcements&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;Announcements List&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;News&lt;span class="Apple-tab-span" style="white-space:pre"&gt;     &lt;/span&gt;News List&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;Team Calendar&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;Calendar&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;I Want To&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;Links List&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;Staff Roles&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;Publishing Page&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;Training&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;Publishing Page&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;New Hires&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;Publishing Page&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;     &lt;/span&gt;Information Technology&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;Publishing Site&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;Announcements&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;Announcements List&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;News&lt;span class="Apple-tab-span" style="white-space:pre"&gt;     &lt;/span&gt;News List&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;Team Calendar&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;Calendar&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;I Want To&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;Links List&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;Staff Roles&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;Publishing Page&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;Training&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;Publishing Page&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;New Hires&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;Publishing Page&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;     &lt;/span&gt;Marketing&lt;span class="Apple-tab-span" style="white-space:pre"&gt;     &lt;/span&gt;Publishing Site&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;Announcements&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;Announcements List&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;News&lt;span class="Apple-tab-span" style="white-space:pre"&gt;     &lt;/span&gt;News List&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;Team Calendar&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;Calendar&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;I Want To&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;Links List&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;Staff Roles&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;Publishing Page&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;Training&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;Publishing Page&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;New Hires&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;Publishing Page&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;Public&lt;span class="Apple-tab-span" style="white-space:pre"&gt;       &lt;/span&gt;Publishing Site&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;     &lt;/span&gt;Finance&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;Publishing Site&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;**(See notes below)&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;     &lt;/span&gt;Human Resources&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;Publishing Site&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;**(See notes below)&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;     &lt;/span&gt;Information Technology&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;Publishing Site&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;**(See notes below)&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;     &lt;/span&gt;Marketing&lt;span class="Apple-tab-span" style="white-space:pre"&gt;     &lt;/span&gt;Publishing Site&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;**(See notes below)&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;*&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Intranet Home page includes CQWPs that point to Lists from all departmental Private departmental sites.&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;These are filtered by "Site Visibility" column where the value contains "Intranet".&lt;/div&gt;&lt;div&gt;#&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;**&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;TODO: Departmental Public Home page includes CQWPs that aggregate Lists from corresponding Private departmental site.&lt;/div&gt;&lt;div&gt;#&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;These are filtered by "Site Visibility" column where the value contains "Public Team".&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;function CreateWebApplication ($webApplicationName, $appPoolUserName, $appPoolPassword, $portNumber, $serverName, $timeZoneId) &lt;/div&gt;&lt;div&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;#--------------CONCATENATED VARIABLES (UPDATE FORMAT IF NECESSARY)-----------------&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$appPoolName = $webApplicationName + "_AppPool"&lt;span class="Apple-tab-span" style="white-space:pre"&gt;         &lt;/span&gt;##########GLOBAL VARIABLE (UPDATE IF NECESSARY)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$databaseServer = $webApplicationName + "_ContentDB"&lt;span class="Apple-tab-span" style="white-space:pre"&gt;       &lt;/span&gt;##########GLOBAL VARIABLE (UPDATE IF NECESSARY)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$rootDirectory = "C:\Inetpub\wwwroot\wss\VirtualDirectories\" + $portNumber&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;##########GLOBAL VARIABLE (UPDATE IF NECESSARY)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;#--------------CREATING WEB APP-----------------&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Write-Host "Creating Web Application - "$webApplicationName&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$farm = [microsoft.sharepoint.administration.spfarm]::local&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$WebAppBuilder = new-object microsoft.sharepoint.administration.SPWebApplicationBuilder($farm)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$WebAppBuilder.ApplicationPoolId = $appPoolName&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$WebAppBuilder.ApplicationPoolUsername = $appPoolUserName&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$WebAppBuilder.ApplicationPoolPassword = $appPoolPassword&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$WebAppBuilder.IdentityType = [Microsoft.SharePoint.Administration.IdentityType]::SpecificUser&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$WebAppBuilder.Port = $portNumber&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$WebAppBuilder.ServerComment = $webApplicationName&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$WebAppBuilder.CreateNewDatabase = $true&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$WebAppBuilder.DatabaseServer = $serverName&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$WebAppBuilder.DatabaseName = $databaseServer&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$WebAppBuilder.RootDirectory = $rootDirectory&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$WebAppBuilder.UseSecureSocketsLayer = $false&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$WebAppBuilder.AllowAnonymousAccess = $false&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$webapp = $WebAppBuilder.Create()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$webapp.ProvisionGlobally()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$webapp.DefaultTimeZone = $timeZoneId&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$webapp.Update()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Write-Host "Finished Creating Web Application - "$webApplicationName&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;function CreateSiteCollection($siteName, $siteUrl, $siteOwner, $siteTemplate, $removeLibraryApprovalWorkflow, $disableCheckoutModeration, $addTeamCollaborationFeature)&lt;/div&gt;&lt;div&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Write-Host "Creating Site Collection - "$siteName&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;New-SPSite -Name $siteName -Url $siteUrl -OwnerAlias $siteOwner -Template $siteTemplate&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Write-Host "Finished Creating Site Collection - "$siteName&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;if($disableCheckoutModeration)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;EnableMasterPageModerationCheckout $siteUrl $disableCheckoutModeration&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;if($removeLibraryApprovalWorkflow)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;$listNames = @("Pages", "Documents", "Images") #Publishing Site Default Lists&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;RemoveApprovalWorkflows $siteUrl "" $listNames "Page Approval"&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;}&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;if($addTeamCollaborationFeature)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;$teamCollaborationGuid = New-Object System.Guid("00bfea71-4ea5-48d4-a4ad-7ea5c011abe5") #Team Collaboration Feature (Allows for more content types)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;AddWebFeature $siteUrl "" $teamCollaborationGuid&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;}&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;function CreateWeb($siteUrl, $webUrl, $mappedPath, $webName, $webOwner, $webTemplate, $removeLibraryApprovalWorkflow, $addTeamCollaborationFeature)&lt;/div&gt;&lt;div&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Write-Host "Creating Web - "$webName&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;New-SPWeb -Name $webName -Url ($siteUrl+$webUrl) -Template $webTemplate&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;if($removeLibraryApprovalWorkflow)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;$listNames = @("Pages", "Documents", "Images") #Publishing Site Default Lists&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;if($removeLibraryApprovalWorkflow)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;RemoveApprovalWorkflows $siteUrl $webRelativeUrl $listNames "Page Approval"&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;}&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;if($addTeamCollaborationFeature)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$teamCollaborationGuid = New-Object System.Guid("00bfea71-4ea5-48d4-a4ad-7ea5c011abe5") #Team Collaboration Feature (Allows for more content types)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;AddWebFeature $siteUrl ($mappedPath+$webUrl) $teamCollaborationGuid&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Write-Host "Finished Creating Web - "$webName&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;function AddWebFeature($siteUrl, $webUrl, $featureGuid)&lt;/div&gt;&lt;div&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$site = Get-SPSite $siteUrl&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;try&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;$web = $site.OpenWeb($webUrl)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;try&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;{&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;    $web.Features.Add($featureGuid)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;Write-Host "Finished Adding Feature - ("+$featureGuid+") "+$siteUrl$webUrl&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;finally&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$web.Dispose()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;finally&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;$site.Dispose()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;}&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Write-Host "Finished Creating List - "$listName "for" $webUrl&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;function AddContentByQueryWebPart($siteUrl, $webPartSourceWebUrl, $webPartWebUrl, $queryListWebUrl, $webPartPageUrl, $queryListName, $webPartTitle, $filterField, $filterValue, $filterDisplayValue, $itemLimit, $zoneId, $zoneIndex)&lt;/div&gt;&lt;div&gt;{&lt;/div&gt;&lt;div&gt;    $listId = ""&lt;/div&gt;&lt;div&gt;    try &lt;/div&gt;&lt;div&gt;    {&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;$site = Get-SPSite $siteUrl&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;try&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;        &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$web = $site.OpenWeb($queryListWebUrl)&lt;/div&gt;&lt;div&gt;            $list = $web.Lists[$queryListName]&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$listId = $list.ID&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;finally&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$web.Dispose()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;}&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;try&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;        &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$web = $site.OpenWeb($webPartSourceWebUrl)&lt;/div&gt;&lt;div&gt;            $web.AllowUnsafeUpdates = $true&lt;/div&gt;&lt;div&gt;            $file = $web.GetFile($webPartPageUrl)&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;try&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;$list = $web.Lists["Pages"]&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;if($list.ForceCheckout -eq $true)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;     &lt;/span&gt;$file.CheckOut()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;     &lt;/span&gt;$file.Update()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;}&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;            &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$mgr = $file.GetLimitedWebPartManager([System.Web.UI.WebControls.WebParts.PersonalizationScope]::Shared)&lt;/div&gt;&lt;div&gt;                $cqwp = New-Object Microsoft.SharePoint.Publishing.WebControls.ContentByQueryWebPart&lt;/div&gt;&lt;div&gt;                $cqwp.DisplayColumns = 1&lt;/div&gt;&lt;div&gt;                $cqwp.FeedEnabled = $false&lt;/div&gt;&lt;div&gt;                $cqwp.Filter1ChainingOperator = 0#Microsoft.SharePoint.Publishing.WebControls.ContentByQueryWebPart.FilterChainingOperator.And&lt;/div&gt;&lt;div&gt;                $cqwp.Filter1IsCustomValue = $false&lt;/div&gt;&lt;div&gt;                $cqwp.FilterByAudience = $false&lt;/div&gt;&lt;div&gt;                $cqwp.FilterDisplayValue1 = $filterDisplayValue&lt;/div&gt;&lt;div&gt;                $cqwp.FilterField1 = $filterField&lt;/div&gt;&lt;div&gt;                $cqwp.FilterIncludeChildren1 = $false&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;&lt;/div&gt;&lt;div&gt;                $cqwp.FilterOperator1 = "Contains"#1#Microsoft.SharePoint.Publishing.WebControls.ContentByQueryWebPart.FilterFieldQueryOperator.Contains&lt;/div&gt;&lt;div&gt;                $cqwp.FilterType1 = "MultiChoice"&lt;/div&gt;&lt;div&gt;                $cqwp.FilterValue1 = $filterValue&lt;/div&gt;&lt;div&gt;                $cqwp.GroupByDirection = 1#Microsoft.SharePoint.Publishing.WebControls.ContentByQueryWebPart.SortDirection.Desc&lt;/div&gt;&lt;div&gt;                $cqwp.GroupStyle = "DefaultHeader"&lt;/div&gt;&lt;div&gt;                $cqwp.ItemLimit = $itemLimit&lt;/div&gt;&lt;div&gt;                $cqwp.ItemStyle = "Default"&lt;/div&gt;&lt;div&gt;                $cqwp.ListGuid = $listId&lt;/div&gt;&lt;div&gt;                $cqwp.ListName = $queryListName&lt;/div&gt;&lt;div&gt;                $cqwp.PlayMediaInBrowser = $true&lt;/div&gt;&lt;div&gt;                $cqwp.ServerTemplate = "104"&lt;/div&gt;&lt;div&gt;                $cqwp.ShowUntargetedItems = $false&lt;/div&gt;&lt;div&gt;                $cqwp.SortBy = "Created"&lt;/div&gt;&lt;div&gt;                $cqwp.SortByDirection = 1#Microsoft.SharePoint.Publishing.WebControls.ContentByQueryWebPart.SortDirection.Desc&lt;/div&gt;&lt;div&gt;                $cqwp.SortByFieldType = "DateTime"&lt;/div&gt;&lt;div&gt;                $cqwp.Title = $webPartTitle&lt;/div&gt;&lt;div&gt;                $cqwp.UseCache = $true&lt;/div&gt;&lt;div&gt;                $cqwp.UseCopyUtil = $true&lt;/div&gt;&lt;div&gt;                $cqwp.WebUrl = $webPartWebUrl&lt;/div&gt;&lt;div&gt;                $mgr.AddWebPart($cqwp, $zoneId, $zoneIndex) &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;if($list.ForceCheckout -eq $true)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;     &lt;/span&gt;$file.Update()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;     &lt;/span&gt;$file.CheckIn("")&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;     &lt;/span&gt;$file.Publish("")&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;     &lt;/span&gt;$file.Approve("")&lt;span class="Apple-tab-span" style="white-space:pre"&gt;     &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;$web.Update()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;Write-Host "Finished Adding Content Query Web Part - "$siteUrl$webPartWebUrl" from "$queryListWebUrl "("$queryListName")"&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;finally&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;$mgr.Dispose()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;        }&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;finally&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$web.Dispose()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;}&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;/div&gt;&lt;div&gt;    }&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;finally&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;$site.Dispose()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;function CreateList($siteUrl, $webUrl, $listName, $listDescription, $listTemplate)&lt;/div&gt;&lt;div&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$site = Get-SPSite $siteUrl&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;try&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;$web = $site.OpenWeb($webUrl)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;try&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;{&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;    $web.Lists.Add($listName, $listDescription, $listTemplate)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$web.Update()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;Write-Host "Finished Creating List - "$webUrl"/"$listName&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;finally&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$web.Dispose()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;finally&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;$site.Dispose()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;}&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Write-Host "Finished Creating List - "$listName "for" $webUrl&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;function AddListFolder($siteUrl, $webUrl, $listName, $folderName, $isList)&lt;/div&gt;&lt;div&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$site = Get-SPSite $siteUrl&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;try&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;$web = $site.OpenWeb($webUrl)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;try&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;{&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;            $list = $web.Lists[$listName]&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;if($isList)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;{&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;$folder = $list.Items.Add($list.RootFolder.ServerRelativeUrl, [Microsoft.SharePoint.SPFileSystemObjectType]::Folder, $folderName)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;else&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;            &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$folder = $list.RootFolder.SubFolders.Add($folderName).Item&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;if(!($folder.ModerationInformation -eq $null))&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;            &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$folder.ModerationInformation.Status = [Microsoft.SharePoint.SPModerationStatusType]::Approved&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;            $folder.Update()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;Write-Host "Finished Creating Folder - "$folderName" on "$siteUrl$webUrl"/"$listName"/"&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;finally&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$web.Dispose()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;finally&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;$site.Dispose()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;}&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;function AddListSiteColumn($siteUrl, $webUrl, $listName, $fieldName)&lt;/div&gt;&lt;div&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$site = Get-SPSite $siteUrl&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;try&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;$web = $site.OpenWeb($webUrl)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;try&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;{&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;           &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$list = $web.Lists[$listName]&lt;/div&gt;&lt;div&gt;            $field = $site.RootWeb.Fields[$fieldName]&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$list.Fields.Add($field)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$list.Update()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$view = $list.DefaultView&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$view.ViewFields.Add($fieldName)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$view.Update()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;Write-Host "Finished Adding Site Column - "$fieldName" to "$siteUrl$webUrl"/"$listName"/"&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;finally&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$web.Dispose()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;finally&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;$site.Dispose()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;}&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;function AddListView($siteUrl, $webUrl, $listName, $viewName, $fieldNames, $camlQuery, $rowLimit, $paged, $defaultView, $showFolders)&lt;/div&gt;&lt;div&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$site = Get-SPSite $siteUrl&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;try&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;$web = $site.OpenWeb($webUrl)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;try&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;{&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;            $list = $web.Lists[$listName]&lt;/div&gt;&lt;div&gt;            $colViews = $list.Views&lt;/div&gt;&lt;div&gt;            $collViewFields = New-Object System.Collections.Specialized.StringCollection&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;foreach($fieldName in $fieldNames)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;            &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$collViewFields.Add($fieldName)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;            $strQuery = ($camlQuery)&lt;/div&gt;&lt;div&gt;            $colViews.Add($viewName, $collViewFields, $strQuery, $rowLimit, $paged, $defaultView)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;if($showFolders -eq $false)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;$view = $list.Views[$viewName]&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;$view.Scope = [Microsoft.SharePoint.SPViewScope]::Recursive&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;$view.Update()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;}&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;Write-Host "Finished Adding List View - "$viewName" to "$siteUrl$webUrl"/"$listName"/"&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;finally&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$web.Dispose()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;finally&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;$site.Dispose()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;}&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;function SetListFolderPermissions($siteUrl, $webUrl, $listName, $folderName, $groupName, $roleDefinition)&lt;/div&gt;&lt;div&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$site = Get-SPSite $siteUrl&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;try&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;$web = $site.OpenWeb($webUrl)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;try&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;{&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;            $list = $web.Lists[$listName]&lt;/div&gt;&lt;div&gt;            $folder = $list.RootFolder.SubFolders[$folderName].Item&lt;/div&gt;&lt;div&gt;            $folder.BreakRoleInheritance($true)&lt;/div&gt;&lt;div&gt;            $web.AllowUnsafeUpdates = $true&lt;/div&gt;&lt;div&gt;            $group = $web.SiteGroups[$groupName]&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;/div&gt;&lt;div&gt;            $roleAssignment = New-Object Microsoft.SharePoint.SPRoleAssignment($group)&lt;/div&gt;&lt;div&gt;            $roleAssignment.RoleDefinitionBindings.Add($web.RoleDefinitions[$roleDefinition])&lt;/div&gt;&lt;div&gt;            $folder.RoleAssignments.Add($roleAssignment)&lt;/div&gt;&lt;div&gt;            $folder.Update()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;Write-Host "Finished Adding Permissions to folder "$folderName" on "$siteUrl$webUrl"/"$listName" ("$groupName" - "$roleDefinition")"&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;finally&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$web.Dispose()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;finally&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;$site.Dispose()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;}&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;function CreateSiteColumnMultiChoice($siteUrl, $fieldName, $fieldChoices, $defaultValue, $group, $required)&lt;/div&gt;&lt;div&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$site = Get-SPSite $siteUrl&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;try&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;$web = $site.OpenWeb()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;try&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;{&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$web.Fields.Add($fieldName, [Microsoft.SharePoint.SPFieldType]::MultiChoice, $required)&lt;/div&gt;&lt;div&gt;            $field = $web.Fields[$fieldName]&lt;/div&gt;&lt;div&gt;            foreach($fieldChoice in $fieldChoices)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;$field.Choices.Add($fieldChoice)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;}            &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$field.DefaultValue = $defaultValue&lt;/div&gt;&lt;div&gt;            $field.Group = $group&lt;/div&gt;&lt;div&gt;            $field.Update()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;Write-Host "Finished Adding Site Column ("$fieldName") to web "$siteUrl&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;finally&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$web.Dispose()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;finally&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;$site.Dispose()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;}&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;function SetRoleInheritance($siteUrl, $webUrl, $breakInheritance)&lt;/div&gt;&lt;div&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$site = Get-SPSite $siteUrl&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;try&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;$web = $site.OpenWeb($webUrl)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;try&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;{&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;if($breakInheritance)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;    &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$web.BreakRoleInheritance($breakInheritance)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;else&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;$web.ResetRoleInheritance()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;finally&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$web.Dispose()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;finally&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;$site.Dispose()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;}&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Write-Host "Finished Setting Inheritance - "$siteUrl$webUrl&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;" (Break Inheritance - "$breakInheritance")"&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;function AddSiteGroup($siteUrl, $groupName, $defaultUser, $ownerGroup, $description)&lt;/div&gt;&lt;div&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$site = Get-SPSite $siteUrl&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;try&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;$web = $site.OpenWeb()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;try&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;{&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$web.SiteGroups.Add($groupName, $web.SiteGroups[$ownerGroup], $web.SiteUsers[$defaultUser], $description) &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;finally&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$web.Dispose()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;finally&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;$site.Dispose()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;}&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Write-Host "Finished Adding Site Group - "$groupName" to "$siteUrl&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;function AddGroupPermission($siteUrl, $webUrl, $groupName, $roleDefinitionName)&lt;/div&gt;&lt;div&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$site = Get-SPSite $siteUrl&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;try&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;$web = $site.OpenWeb($webUrl)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;try&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;{&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$web.AllowUnsafeUpdates = $true&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$group = $site.RootWeb.SiteGroups[$groupName]&lt;/div&gt;&lt;div&gt;            $roleAssignment = New-Object Microsoft.SharePoint.SPRoleAssignment($group)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$roleDefinition = $site.RootWeb.RoleDefinitions[$roleDefinitionName]&lt;/div&gt;&lt;div&gt;            $roleAssignment.RoleDefinitionBindings.Add($roleDefinition)&lt;/div&gt;&lt;div&gt;            $web.RoleAssignments.Add($roleAssignment)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$web.Update()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;finally&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$web.Dispose()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;finally&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;$site.Dispose()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;}&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Write-Host "Finished Adding Group Permission - "$groupName "("$roleDefinitionName") to "$siteUrl$webUrl&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;function RemoveGroupPermission($siteUrl, $webUrl, $groupName)&lt;/div&gt;&lt;div&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$site = Get-SPSite $siteUrl&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;try&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;$web = $site.OpenWeb($webUrl)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;try&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;{&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$web.AllowUnsafeUpdates = $true&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$group = $site.RootWeb.SiteGroups[$groupName]&lt;/div&gt;&lt;div&gt;            $web.RoleAssignments.Remove($group)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$web.Update()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;finally&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$web.Dispose()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;finally&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;$site.Dispose()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;}&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Write-Host "Finished Removing Group Permission - "$groupName "from" $siteUrl$webUrl&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;function CreatePublishingPage($siteUrl, $webUrl, $pageFileName, $pageName)&lt;/div&gt;&lt;div&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$site = Get-SPSite $siteUrl&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;try&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;$web = $site.OpenWeb($webUrl)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;try&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;{&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;    $publishingWeb = [Microsoft.SharePoint.Publishing.PublishingWeb]::GetPublishingWeb($web)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;    $pageLayouts = $publishingWeb.GetAvailablePageLayouts()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;    $currPageLayout = $pageLayouts[0]&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;    $pages = $publishingWeb.GetPublishingPages()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;    $newPage = $pages.Add($pageFileName, $currPageLayout)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$newPage.Title = $pageName&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;    $newPage.Update()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;    $newPage.CheckIn("")&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$newPage.ListItem.File.Approve("")&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;Write-Host "Finished Creating Page - "$pageName "for" $webUrl&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;finally&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$web.Dispose()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;finally&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;$site.Dispose()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;}&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;function RemoveApprovalWorkflows($siteUrl, $webUrl, $listNames, $workFlowName)&lt;/div&gt;&lt;div&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;foreach($listName in $listNames)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;RemoveApprovalWorkflow $siteUrl $webUrl $listName $workFlowName&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;}&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;function RemoveApprovalWorkflow($siteUrl, $webUrl, $listName, $workFlowName)&lt;/div&gt;&lt;div&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$site = Get-SPSite $siteUrl&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;try&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;$web = $site.OpenWeb($webUrl)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;try&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;{&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$list = $web.Lists[$listName]&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;if(!($list -eq $null))&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;$wa = $list.WorkflowAssociations.GetAssociationByName($workFlowName, [System.Globalization.CultureInfo]::CurrentCulture)&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;if(!($wa -eq $null))&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;{&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;     &lt;/span&gt;Write-Host "Removing" $wa.Name "from" $listName&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;     &lt;/span&gt;$list.WorkflowAssociations.Remove($wa)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;     &lt;/span&gt;Write-Host "Finished Removing Workflow "$workFlowName" from "$siteUrl$webUrl"/"$listName&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;}&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;}&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;finally&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$web.Dispose()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;finally&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;$site.Dispose()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;}&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;function AddApprovalWorkflow($siteUrl, $webUrl, $listName, $workflowTemplateName, $workflowName, $workflowTaskName, $workflowHistoryName)&lt;/div&gt;&lt;div&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$site = Get-SPSite $siteUrl&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;try&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;$web = $site.OpenWeb($webUrl)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;try&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;{&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$list = $web.Lists[$listName]&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;if(!($list -eq $null))&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;$wfTemp = $web.WorkflowTemplates.GetTemplateByName($workflowTemplateName, [System.Globalization.CultureInfo]::CurrentCulture);&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;$wf = [Microsoft.SharePoint.Workflow.SPWorkflowAssociation]::CreateListAssociation($wfTemp, $workflowName, $web.Lists[$workflowTaskName], $web.Lists[$workflowHistoryName]);&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;$list.WorkflowAssociations.Add($wf)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;$list.DefaultContentApprovalWorkflowId = $wf.Id&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;$list.Update()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;Write-Host "Finished Adding Workflow "$workflowTemplateName" to "$siteUrl$webUrl"/"$listName&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;finally&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$web.Dispose()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;finally&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;$site.Dispose()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;}&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;function EnableMasterPageModerationCheckout($siteUrl, $enable)&lt;/div&gt;&lt;div&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$site = Get-SPSite $siteUrl&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;try&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;{&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;$list = $site.GetCatalog([Microsoft.SharePoint.SPListTemplateType]::MasterPageCatalog)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;$list.EnableModeration = $enable&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;$list.ForceCheckout = $enable&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;$list.Update()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;Write-Host "MasterPage Moderation and Checkout on "$siteUrl" set to "$enable&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;finally&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;$site.Dispose()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;function UpdateMasterPageUrl($siteUrl, $webUrl, $masterPageUrl, $inheritMasterPage)&lt;/div&gt;&lt;div&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$site = Get-SPSite $siteUrl&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;try&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;$web = $site.OpenWeb($webUrl)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;try&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;{&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$web.CustomMasterUrl = $masterPageUrl&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;if(!($web -eq $null))&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;if($inheritMasterPage)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;     &lt;/span&gt;$web.AllProperties["__InheritsCustomMasterUrl"] = "True";&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;     &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;else&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;     &lt;/span&gt;$web.AllProperties["__InheritsCustomMasterUrl"] = "False";&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;Write-Host "MasterPage Updated for "$siteUrl"/"$webUrl" (Custom URL:"$masterPageUrl" / Inheritance:"$inheritMasterPage")"&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$web.Update()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;finally&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$web.Dispose()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;finally&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;$site.Dispose()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;function AddSampleAnnouncements($siteUrl, $webUrl, $webName, $listName)&lt;/div&gt;&lt;div&gt;{&lt;/div&gt;&lt;div&gt;    $title = "Announcement"&lt;/div&gt;&lt;div&gt;    $site = Get-SPSite $siteUrl&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;try&lt;/div&gt;&lt;div&gt;    {                &lt;/div&gt;&lt;div&gt;        $web = $site.OpenWeb($webUrl)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;try&lt;/div&gt;&lt;div&gt;        {&lt;/div&gt;&lt;div&gt;            $list = $web.Lists[$listName]&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$listItems = $list.Items&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$itemCount = ($listItems.Count - 1)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;for($i=0; $i -lt $itemCount; $i++)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;if(!($item.FileSystemObjectType -eq [Microsoft.SharePoint.SPFileSystemObjectType]::Folder))&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;     &lt;/span&gt;$listItems.Delete($i)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;}&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;}&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;#Private Team Item&lt;/div&gt;&lt;div&gt;            $item = $list.Items.Add()&lt;/div&gt;&lt;div&gt;            $item["Title"] = ($webName + " " + $title + " -  1")&lt;/div&gt;&lt;div&gt;            $item["Body"] = "Lorem ipsum dolor sit amet, consectetur adipiscing elit."&lt;/div&gt;&lt;div&gt;            $siteVisValue = New-Object Microsoft.SharePoint.SPFieldMultiChoiceValue&lt;/div&gt;&lt;div&gt;            $siteVisValue.Add("Private Team")&lt;/div&gt;&lt;div&gt;            $item["Site Visibility"] = $siteVisValue&lt;/div&gt;&lt;div&gt;            $item.Update()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;#Public Team Item&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$folder = $list.RootFolder.SubFolders["public"]&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;/div&gt;&lt;div&gt;            $item = $list.Items.Add($folder.ServerRelativeUrl, [Microsoft.SharePoint.SPFileSystemObjectType]::File)&lt;/div&gt;&lt;div&gt;            $item["Title"] = ($webName + " " + $title + " -  2")&lt;/div&gt;&lt;div&gt;            $item["Body"] = "Lorem ipsum dolor sit amet, consectetur adipiscing elit."&lt;/div&gt;&lt;div&gt;            $siteVisValue = New-Object Microsoft.SharePoint.SPFieldMultiChoiceValue&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;/div&gt;&lt;div&gt;            $siteVisValue.Add("Public Team")&lt;/div&gt;&lt;div&gt;            $item["Site Visibility"] = $siteVisValue&lt;/div&gt;&lt;div&gt;            $item.Update()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;#Intranet Item&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$folder = $list.RootFolder.SubFolders["public"]&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;/div&gt;&lt;div&gt;            $item = $list.Items.Add($folder.ServerRelativeUrl, [Microsoft.SharePoint.SPFileSystemObjectType]::File)&lt;/div&gt;&lt;div&gt;            $item["Title"] = ($webName + " " + $title + " -  3")&lt;/div&gt;&lt;div&gt;            $item["Body"] = "Lorem ipsum dolor sit amet, consectetur adipiscing elit."&lt;/div&gt;&lt;div&gt;            $siteVisValue = New-Object Microsoft.SharePoint.SPFieldMultiChoiceValue&lt;/div&gt;&lt;div&gt;            $siteVisValue.Add("Intranet")&lt;/div&gt;&lt;div&gt;            $item["Site Visibility"] = $siteVisValue&lt;/div&gt;&lt;div&gt;            $item.Update()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;#Private Team and Public Team&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$folder = $list.RootFolder.SubFolders["public"]&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;/div&gt;&lt;div&gt;            $item = $list.Items.Add($folder.ServerRelativeUrl, [Microsoft.SharePoint.SPFileSystemObjectType]::File)&lt;/div&gt;&lt;div&gt;            $item["Title"] = ($webName + " " + $title + " -  4")&lt;/div&gt;&lt;div&gt;            $item["Body"] = "Lorem ipsum dolor sit amet, consectetur adipiscing elit."&lt;/div&gt;&lt;div&gt;            $siteVisValue = New-Object Microsoft.SharePoint.SPFieldMultiChoiceValue&lt;/div&gt;&lt;div&gt;            $siteVisValue.Add("Private Team")&lt;/div&gt;&lt;div&gt;            $siteVisValue.Add("Public Team")&lt;/div&gt;&lt;div&gt;            $item["Site Visibility"] = $siteVisValue&lt;/div&gt;&lt;div&gt;            $item.Update()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;#Private Team, Public Team, and Intranet Item&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$folder = $list.RootFolder.SubFolders["public"]&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;/div&gt;&lt;div&gt;            $item = $list.Items.Add($folder.ServerRelativeUrl, [Microsoft.SharePoint.SPFileSystemObjectType]::File)&lt;/div&gt;&lt;div&gt;            $item["Title"] = ($webName + " " + $title + " -  5")&lt;/div&gt;&lt;div&gt;            $item["Body"] = "Lorem ipsum dolor sit amet, consectetur adipiscing elit."&lt;/div&gt;&lt;div&gt;            $siteVisValue = New-Object Microsoft.SharePoint.SPFieldMultiChoiceValue&lt;/div&gt;&lt;div&gt;            $siteVisValue.Add("Private Team")&lt;/div&gt;&lt;div&gt;            $siteVisValue.Add("Public Team")&lt;/div&gt;&lt;div&gt;            $siteVisValue.Add("Intranet")&lt;/div&gt;&lt;div&gt;            $item["Site Visibility"] = $siteVisValue&lt;/div&gt;&lt;div&gt;            $item.Update()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;#Public Team and Itranet Item&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$folder = $list.RootFolder.SubFolders["public"]&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;/div&gt;&lt;div&gt;            $item = $list.Items.Add($folder.ServerRelativeUrl, [Microsoft.SharePoint.SPFileSystemObjectType]::File)&lt;/div&gt;&lt;div&gt;            $item["Title"] = ($webName + " " + $title + " -  6")&lt;/div&gt;&lt;div&gt;            $item["Body"] = "Lorem ipsum dolor sit amet, consectetur adipiscing elit."&lt;/div&gt;&lt;div&gt;            $siteVisValue = New-Object Microsoft.SharePoint.SPFieldMultiChoiceValue&lt;/div&gt;&lt;div&gt;            $siteVisValue.Add("Public Team")&lt;/div&gt;&lt;div&gt;            $siteVisValue.Add("Intranet")&lt;/div&gt;&lt;div&gt;            $item["Site Visibility"] = $siteVisValue&lt;/div&gt;&lt;div&gt;            $item.Update()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;#Private Team and Intranet Iteam&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$folder = $list.RootFolder.SubFolders["public"]&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;/div&gt;&lt;div&gt;            $item = $list.Items.Add($folder.ServerRelativeUrl, [Microsoft.SharePoint.SPFileSystemObjectType]::File)&lt;/div&gt;&lt;div&gt;            $item["Title"] = ($webName + " " + $title + " -  7")&lt;/div&gt;&lt;div&gt;            $item["Body"] = "Lorem ipsum dolor sit amet, consectetur adipiscing elit."&lt;/div&gt;&lt;div&gt;            $siteVisValue = New-Object Microsoft.SharePoint.SPFieldMultiChoiceValue&lt;/div&gt;&lt;div&gt;            $siteVisValue.Add("Private Team")&lt;/div&gt;&lt;div&gt;            $siteVisValue.Add("Intranet")&lt;/div&gt;&lt;div&gt;            $item["Site Visibility"] = $siteVisValue&lt;/div&gt;&lt;div&gt;            $item.Update()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;Write-Host "Finished Adding Sample Announcements to "$siteUrl$webUrl" ("$listName")"&lt;/div&gt;&lt;div&gt;        }&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;finally&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;    $web.Dispose()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;    }&lt;/div&gt;&lt;div&gt;    finally&lt;/div&gt;&lt;div&gt;    {&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;$site.Dispose()&lt;/div&gt;&lt;div&gt;    }&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;function AddSampleLinks($siteUrl, $webUrl, $webName, $listName)&lt;/div&gt;&lt;div&gt;{&lt;/div&gt;&lt;div&gt;    $title = "Link"&lt;/div&gt;&lt;div&gt;    $site = Get-SPSite $siteUrl&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;try&lt;/div&gt;&lt;div&gt;    {                &lt;/div&gt;&lt;div&gt;        $web = $site.OpenWeb($webUrl)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;try&lt;/div&gt;&lt;div&gt;        {&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;#Private Team Item&lt;/div&gt;&lt;div&gt;            $list = $web.Lists[$listName]&lt;/div&gt;&lt;div&gt;            $item = $list.Items.Add()&lt;/div&gt;&lt;div&gt;            $item["Title"] = ($webName + " " + $title + " -  1")&lt;/div&gt;&lt;div&gt;            $urlValue = New-Object Microsoft.SharePoint.SPFieldUrlValue&lt;/div&gt;&lt;div&gt;            $urlValue.Description = $webName + " - " + $title + " 1"&lt;/div&gt;&lt;div&gt;            $urlValue.Url = "http://www.google.com"&lt;/div&gt;&lt;div&gt;            $item["URL"] = $urlValue&lt;/div&gt;&lt;div&gt;            $siteVisValue = New-Object Microsoft.SharePoint.SPFieldMultiChoiceValue&lt;/div&gt;&lt;div&gt;            $siteVisValue.Add("Private Team")&lt;/div&gt;&lt;div&gt;            $item["Site Visibility"] = $siteVisValue&lt;/div&gt;&lt;div&gt;            $item.Update()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;#Public Team Item&lt;/div&gt;&lt;div&gt;            $folder = $list.RootFolder.SubFolders["public"]&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;/div&gt;&lt;div&gt;            $item = $list.Items.Add($folder.ServerRelativeUrl, [Microsoft.SharePoint.SPFileSystemObjectType]::File)&lt;/div&gt;&lt;div&gt;            $item["Title"] = ($webName + " " + $title + " -  2")&lt;/div&gt;&lt;div&gt;            $urlValue = New-Object Microsoft.SharePoint.SPFieldUrlValue&lt;/div&gt;&lt;div&gt;            $urlValue.Description = $webName + " - " + $title + " 2"&lt;/div&gt;&lt;div&gt;            $urlValue.Url = "http://www.google.com"&lt;/div&gt;&lt;div&gt;            $item["URL"] = $urlValue&lt;/div&gt;&lt;div&gt;            $siteVisValue = New-Object Microsoft.SharePoint.SPFieldMultiChoiceValue&lt;/div&gt;&lt;div&gt;            $siteVisValue.Add("Public Team")&lt;/div&gt;&lt;div&gt;            $item["Site Visibility"] = $siteVisValue&lt;/div&gt;&lt;div&gt;            $item.Update()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;#Intranet Item&lt;/div&gt;&lt;div&gt;            $folder = $list.RootFolder.SubFolders["public"]&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;/div&gt;&lt;div&gt;            $item = $list.Items.Add($folder.ServerRelativeUrl, [Microsoft.SharePoint.SPFileSystemObjectType]::File)&lt;/div&gt;&lt;div&gt;            $item["Title"] = ($webName + " " + $title + " -  3")&lt;/div&gt;&lt;div&gt;            $urlValue = New-Object Microsoft.SharePoint.SPFieldUrlValue&lt;/div&gt;&lt;div&gt;            $urlValue.Description = $webName + " - " + $title + " 3"&lt;/div&gt;&lt;div&gt;            $urlValue.Url = "http://www.google.com"&lt;/div&gt;&lt;div&gt;            $item["URL"] = $urlValue&lt;/div&gt;&lt;div&gt;            $siteVisValue = New-Object Microsoft.SharePoint.SPFieldMultiChoiceValue&lt;/div&gt;&lt;div&gt;            $siteVisValue.Add("Intranet")&lt;/div&gt;&lt;div&gt;            $item["Site Visibility"] = $siteVisValue&lt;/div&gt;&lt;div&gt;            $item.Update()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;#Private Team and Public Team&lt;/div&gt;&lt;div&gt;            $folder = $list.RootFolder.SubFolders["public"]&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;/div&gt;&lt;div&gt;            $item = $list.Items.Add($folder.ServerRelativeUrl, [Microsoft.SharePoint.SPFileSystemObjectType]::File)&lt;/div&gt;&lt;div&gt;            $item["Title"] = ($webName + " " + $title + " -  4")&lt;/div&gt;&lt;div&gt;            $urlValue = New-Object Microsoft.SharePoint.SPFieldUrlValue&lt;/div&gt;&lt;div&gt;            $urlValue.Description = $webName + " - " + $title + " 4"&lt;/div&gt;&lt;div&gt;            $urlValue.Url = "http://www.google.com"&lt;/div&gt;&lt;div&gt;            $item["URL"] = $urlValue&lt;/div&gt;&lt;div&gt;            $siteVisValue = New-Object Microsoft.SharePoint.SPFieldMultiChoiceValue&lt;/div&gt;&lt;div&gt;            $siteVisValue.Add("Private Team")&lt;/div&gt;&lt;div&gt;            $siteVisValue.Add("Public Team")&lt;/div&gt;&lt;div&gt;            $item["Site Visibility"] = $siteVisValue&lt;/div&gt;&lt;div&gt;            $item.Update()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;#Private Team, Public Team, and Intranet Team&lt;/div&gt;&lt;div&gt;            $folder = $list.RootFolder.SubFolders["public"]&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;/div&gt;&lt;div&gt;            $item = $list.Items.Add($folder.ServerRelativeUrl, [Microsoft.SharePoint.SPFileSystemObjectType]::File)&lt;/div&gt;&lt;div&gt;            $item["Title"] = ($webName + " " + $title + " -  5")&lt;/div&gt;&lt;div&gt;            $urlValue = New-Object Microsoft.SharePoint.SPFieldUrlValue&lt;/div&gt;&lt;div&gt;            $urlValue.Description = $webName + " - " + $title + " 5"&lt;/div&gt;&lt;div&gt;            $urlValue.Url = "http://www.google.com"&lt;/div&gt;&lt;div&gt;            $item["URL"] = $urlValue&lt;/div&gt;&lt;div&gt;            $siteVisValue = New-Object Microsoft.SharePoint.SPFieldMultiChoiceValue&lt;/div&gt;&lt;div&gt;            $siteVisValue.Add("Private Team")&lt;/div&gt;&lt;div&gt;            $siteVisValue.Add("Public Team")&lt;/div&gt;&lt;div&gt;            $siteVisValue.Add("Intranet")&lt;/div&gt;&lt;div&gt;            $item["Site Visibility"] = $siteVisValue&lt;/div&gt;&lt;div&gt;            $item.Update()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;#Public Team and Intranet Item&lt;/div&gt;&lt;div&gt;            $folder = $list.RootFolder.SubFolders["public"]&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;/div&gt;&lt;div&gt;            $item = $list.Items.Add($folder.ServerRelativeUrl, [Microsoft.SharePoint.SPFileSystemObjectType]::File)&lt;/div&gt;&lt;div&gt;            $item["Title"] = ($webName + " " + $title + " -  6")&lt;/div&gt;&lt;div&gt;            $urlValue = New-Object Microsoft.SharePoint.SPFieldUrlValue&lt;/div&gt;&lt;div&gt;            $urlValue.Description = $webName + " - " + $title + " 6"&lt;/div&gt;&lt;div&gt;            $urlValue.Url = "http://www.google.com"&lt;/div&gt;&lt;div&gt;            $item["URL"] = $urlValue&lt;/div&gt;&lt;div&gt;            $siteVisValue = New-Object Microsoft.SharePoint.SPFieldMultiChoiceValue&lt;/div&gt;&lt;div&gt;            $siteVisValue.Add("Public Team")&lt;/div&gt;&lt;div&gt;            $siteVisValue.Add("Intranet")&lt;/div&gt;&lt;div&gt;            $item["Site Visibility"] = $siteVisValue&lt;/div&gt;&lt;div&gt;            $item.Update()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;#Private Team and Intranet Item&lt;/div&gt;&lt;div&gt;            $folder = $list.RootFolder.SubFolders["public"]&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;/div&gt;&lt;div&gt;            $item = $list.Items.Add($folder.ServerRelativeUrl, [Microsoft.SharePoint.SPFileSystemObjectType]::File)&lt;/div&gt;&lt;div&gt;            $item["Title"] = ($webName + " " + $title + " -  7")&lt;/div&gt;&lt;div&gt;            $urlValue = New-Object Microsoft.SharePoint.SPFieldUrlValue&lt;/div&gt;&lt;div&gt;            $urlValue.Description = $webName + " - " + $title + " 7"&lt;/div&gt;&lt;div&gt;            $urlValue.Url = "http://www.google.com"&lt;/div&gt;&lt;div&gt;            $item["URL"] = $urlValue&lt;/div&gt;&lt;div&gt;            $siteVisValue = New-Object Microsoft.SharePoint.SPFieldMultiChoiceValue&lt;/div&gt;&lt;div&gt;            $siteVisValue.Add("Private Team")&lt;/div&gt;&lt;div&gt;            $siteVisValue.Add("Intranet")&lt;/div&gt;&lt;div&gt;            $item["Site Visibility"] = $siteVisValue&lt;/div&gt;&lt;div&gt;            $item.Update()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;Write-Host "Finished Adding Sample Links to "$siteUrl$webUrl" ("$listName")"&lt;/div&gt;&lt;div&gt;        }&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;finally&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;    $web.Dispose()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;    }&lt;/div&gt;&lt;div&gt;    finally&lt;/div&gt;&lt;div&gt;    {&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;$site.Dispose()&lt;/div&gt;&lt;div&gt;    }&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;function AddSampleCalendarEvents($siteUrl, $webUrl, $webName, $listName)&lt;/div&gt;&lt;div&gt;{&lt;/div&gt;&lt;div&gt;    $title = "Event"&lt;/div&gt;&lt;div&gt;    $site = Get-SPSite $siteUrl&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;try&lt;/div&gt;&lt;div&gt;    {                &lt;/div&gt;&lt;div&gt;        $web = $site.OpenWeb($webUrl)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;try&lt;/div&gt;&lt;div&gt;        {&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;#Private Team Site Item&lt;/div&gt;&lt;div&gt;            $list = $web.Lists[$listName]&lt;/div&gt;&lt;div&gt;            $item = $list.Items.Add()&lt;/div&gt;&lt;div&gt;            $item["Title"] = ($webName + " " + $title + " -  1")&lt;/div&gt;&lt;div&gt;            $item["Description"] = "Lorem ipsum dolor sit amet, consectetur adipiscing elit."&lt;/div&gt;&lt;div&gt;            $siteVisValue = New-Object Microsoft.SharePoint.SPFieldMultiChoiceValue&lt;/div&gt;&lt;div&gt;            $siteVisValue.Add("Private Team")&lt;/div&gt;&lt;div&gt;            $item["Site Visibility"] = $siteVisValue&lt;/div&gt;&lt;div&gt;            $item.Update()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;#Public Team Site Item&lt;/div&gt;&lt;div&gt;            $folder = $list.RootFolder.SubFolders["public"]&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;/div&gt;&lt;div&gt;            $item = $list.Items.Add($folder.ServerRelativeUrl, [Microsoft.SharePoint.SPFileSystemObjectType]::File)&lt;/div&gt;&lt;div&gt;            $item["Title"] = ($webName + " " + $title + " -  2")&lt;/div&gt;&lt;div&gt;            $item["Description"] = "Lorem ipsum dolor sit amet, consectetur adipiscing elit."&lt;/div&gt;&lt;div&gt;            $siteVisValue = New-Object Microsoft.SharePoint.SPFieldMultiChoiceValue&lt;/div&gt;&lt;div&gt;            $siteVisValue.Add("Public Team")&lt;/div&gt;&lt;div&gt;            $item["Site Visibility"] = $siteVisValue&lt;/div&gt;&lt;div&gt;            $item.Update()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;#Intranet Item&lt;/div&gt;&lt;div&gt;            $folder = $list.RootFolder.SubFolders["public"]&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;/div&gt;&lt;div&gt;            $item = $list.Items.Add($folder.ServerRelativeUrl, [Microsoft.SharePoint.SPFileSystemObjectType]::File)&lt;/div&gt;&lt;div&gt;            $item["Title"] = ($webName + " " + $title + " -  3")&lt;/div&gt;&lt;div&gt;            $item["Description"] = "Lorem ipsum dolor sit amet, consectetur adipiscing elit."&lt;/div&gt;&lt;div&gt;            $siteVisValue = New-Object Microsoft.SharePoint.SPFieldMultiChoiceValue&lt;/div&gt;&lt;div&gt;            $siteVisValue.Add("Intranet")&lt;/div&gt;&lt;div&gt;            $item["Site Visibility"] = $siteVisValue&lt;/div&gt;&lt;div&gt;            $item.Update()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;#Private Team and Public Team Item&lt;/div&gt;&lt;div&gt;            $folder = $list.RootFolder.SubFolders["public"]&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;/div&gt;&lt;div&gt;            $item = $list.Items.Add($folder.ServerRelativeUrl, [Microsoft.SharePoint.SPFileSystemObjectType]::File)&lt;/div&gt;&lt;div&gt;            $item["Title"] = ($webName + " " + $title + " -  4")&lt;/div&gt;&lt;div&gt;            $item["Description"] = "Lorem ipsum dolor sit amet, consectetur adipiscing elit."&lt;/div&gt;&lt;div&gt;            $siteVisValue = New-Object Microsoft.SharePoint.SPFieldMultiChoiceValue&lt;/div&gt;&lt;div&gt;            $siteVisValue.Add("Private Team")&lt;/div&gt;&lt;div&gt;            $siteVisValue.Add("Public Team")&lt;/div&gt;&lt;div&gt;            $item["Site Visibility"] = $siteVisValue&lt;/div&gt;&lt;div&gt;            $item.Update()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;#Private Team, Public Team, and Intranet Item&lt;/div&gt;&lt;div&gt;            $folder = $list.RootFolder.SubFolders["public"]&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;/div&gt;&lt;div&gt;            $item = $list.Items.Add($folder.ServerRelativeUrl, [Microsoft.SharePoint.SPFileSystemObjectType]::File)&lt;/div&gt;&lt;div&gt;            $item["Title"] = ($webName + " " + $title + " -  5")&lt;/div&gt;&lt;div&gt;            $item["Description"] = "Lorem ipsum dolor sit amet, consectetur adipiscing elit."&lt;/div&gt;&lt;div&gt;            $siteVisValue = New-Object Microsoft.SharePoint.SPFieldMultiChoiceValue&lt;/div&gt;&lt;div&gt;            $siteVisValue.Add("Private Team")&lt;/div&gt;&lt;div&gt;            $siteVisValue.Add("Public Team")&lt;/div&gt;&lt;div&gt;            $siteVisValue.Add("Intranet")&lt;/div&gt;&lt;div&gt;            $item["Site Visibility"] = $siteVisValue&lt;/div&gt;&lt;div&gt;            $item.Update()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;#Public Team and Intranet Item&lt;/div&gt;&lt;div&gt;            $folder = $list.RootFolder.SubFolders["public"]&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;/div&gt;&lt;div&gt;            $item = $list.Items.Add($folder.ServerRelativeUrl, [Microsoft.SharePoint.SPFileSystemObjectType]::File)&lt;/div&gt;&lt;div&gt;            $item["Title"] = ($webName + " " + $title + " -  6")&lt;/div&gt;&lt;div&gt;            $item["Description"] = "Lorem ipsum dolor sit amet, consectetur adipiscing elit."&lt;/div&gt;&lt;div&gt;            $siteVisValue = New-Object Microsoft.SharePoint.SPFieldMultiChoiceValue&lt;/div&gt;&lt;div&gt;            $siteVisValue.Add("Public Team")&lt;/div&gt;&lt;div&gt;            $siteVisValue.Add("Intranet")&lt;/div&gt;&lt;div&gt;            $item["Site Visibility"] = $siteVisValue&lt;/div&gt;&lt;div&gt;            $item.Update()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;#Private Team and Intranet Item&lt;/div&gt;&lt;div&gt;            $folder = $list.RootFolder.SubFolders["public"]&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;/div&gt;&lt;div&gt;            $item = $list.Items.Add($folder.ServerRelativeUrl, [Microsoft.SharePoint.SPFileSystemObjectType]::File)&lt;/div&gt;&lt;div&gt;            $item["Title"] = ($webName + " " + $title + " -  7")&lt;/div&gt;&lt;div&gt;            $item["Description"] = "Lorem ipsum dolor sit amet, consectetur adipiscing elit."&lt;/div&gt;&lt;div&gt;            $siteVisValue = New-Object Microsoft.SharePoint.SPFieldMultiChoiceValue&lt;/div&gt;&lt;div&gt;            $siteVisValue.Add("Private Team")&lt;/div&gt;&lt;div&gt;            $siteVisValue.Add("Intranet")&lt;/div&gt;&lt;div&gt;            $item["Site Visibility"] = $siteVisValue&lt;/div&gt;&lt;div&gt;            $item.Update()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;Write-Host "Finished Adding Sample Events to "$siteUrl$webUrl" ("$listName")"&lt;/div&gt;&lt;div&gt;        }&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;finally&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;    $web.Dispose()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;finally&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;$site.Dispose()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;function CreateSamplePublishingPortal($createWebApplication, $createSiteCollection, $env)&lt;/div&gt;&lt;div&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;#--------------Web App Variables-----------------&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$webApplicationName = "Intranet"&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$appPoolUserName = "CORP\Administrator"&lt;span class="Apple-tab-span" style="white-space:pre"&gt;          &lt;/span&gt;##########GLOBAL VARIABLE (UPDATE IF NECESSARY)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$appPoolPassword = ConvertTo-securestring "pass@word1" -asplaintext -force&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;##########GLOBAL VARIABLE (UPDATE IF NECESSARY)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$portNumber = "80"&lt;span class="Apple-tab-span" style="white-space:pre"&gt;                &lt;/span&gt;##########GLOBAL VARIABLE (UPDATE IF NECESSARY)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$serverName = "SPSERVER"&lt;span class="Apple-tab-span" style="white-space:pre"&gt;             &lt;/span&gt;##########GLOBAL VARIABLE (UPDATE IF NECESSARY)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$timeZoneId = 13 #Pacific Time (US and Canada)&lt;span class="Apple-tab-span" style="white-space:pre"&gt;         &lt;/span&gt;##########GLOBAL VARIABLE (UPDATE IF NECESSARY)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;#--------------Site Collection Variables-----------------&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$siteName = "Intranet"&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$siteManagedPath = "/sites/Intranet" #"" if root level. Otherwise, something like "/sites/PortalName"&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$siteUrl = "http://" + $serverName + ":" + $portNumber + $siteManagedPath&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$siteOwner = "CORP\Administrator"&lt;span class="Apple-tab-span" style="white-space:pre"&gt;            &lt;/span&gt;##########GLOBAL VARIABLE (UPDATE IF NECESSARY)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$siteTemplate = Get-SPWebTemplate "BLANKINTERNETCONTAINER#0" #BLANKINTERNETCONTAINER#0 - Publishing Portal STS#0 Team Site&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$siteColumnName = "Site Visibility"&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$siteColumnDefaultValue = "Private Team"&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$siteColumnGroup = "CompanyX Columns"&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;#--------------Web Variables-----------------&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$webOwner = "CORP\Administrator"&lt;span class="Apple-tab-span" style="white-space:pre"&gt;            &lt;/span&gt;##########GLOBAL VARIABLE (UPDATE IF NECESSARY)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$webTemplate = Get-SPWebTemplate "BLANKINTERNETCONTAINER#0"&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$disableCheckoutModeration = $true&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$removeLibraryApprovalWorkflow = $true&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$addTeamCollaborationFeature = $true&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$webTitles = @(&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;"Departments",&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;"Private",&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;"Finance",&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;"Human Resources",&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;"Information Systems",&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;"Marketing"&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;"Public",&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;"Finance",&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;"Human Resources",&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;"Information Systems",&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;"Marketing"&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;)&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$webUrls = @(&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;("/dep"),&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;("/dep/private"),&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;("/dep/private/fi"),&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;("/dep/private/hr"),&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;("/dep/private/is"),&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;("/dep/private/mkt"),&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;("/dep/public"),&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;("/dep/public/fi"),&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;("/dep/public/hr"),&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;("/dep/public/is"),&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;("/dep/public/mkt")&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;)&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$teamUrls = @(&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;($siteManagedPath + "/dep/private/fi"),&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;($siteManagedPath + "/dep/private/hr"),&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;($siteManagedPath + "/dep/private/is"),&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;($siteManagedPath + "/dep/private/mkt"),&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;($siteManagedPath + "/dep/public/fi"),&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;($siteManagedPath + "/dep/public/hr"),&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;($siteManagedPath + "/dep/public/is"),&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;($siteManagedPath + "/dep/public/mkt")&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;)&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$privateTeamUrls = @(&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;($siteManagedPath + "/dep/private/fi"),&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;($siteManagedPath + "/dep/private/hr"),&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;($siteManagedPath + "/dep/private/is"),&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;($siteManagedPath + "/dep/private/mkt")&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;)&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$privateTeamRelativeUrls = @(&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;("~sitecollection/dep/private/fi"),&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;("~sitecollection/dep/private/hr"),&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;("~sitecollection/dep/private/is"),&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;("~sitecollection/dep/private/mkt")&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;)&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$privateTeamNames = @(&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;"Finance",&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;"HR",&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;"IS",&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;"Marketing"&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;)&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$publicTeamUrls = @(&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;($siteManagedPath + "/dep/public/fi"),&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;($siteManagedPath + "/dep/public/hr"),&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;($siteManagedPath + "/dep/public/is"),&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;($siteManagedPath + "/dep/public/mkt")&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;)&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$siteGroups = @(&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;"Finance Owners",&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;"Finance Members",&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;"Finance Visitors",&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;"HR Owners",&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;"HR Members",&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;"HR Visitors",&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;"IS Owners",&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;"IS Members",&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;"IS Visitors",&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;"Marketing Owners",&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;"Marketing Members",&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;"Marketing Visitors"&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;)&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$siteGroupOwners = @(&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;($siteName + " Owners"),&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;"Finance Owners",&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;"Finance Owners",&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;($siteName + " Owners"),&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;"HR Owners",&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;"HR Owners",&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;($siteName + " Owners"),&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;"IS Owners",&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;"IS Owners",&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;($siteName + " Owners"),&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;"Marketing Owners",&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;"Marketing Owners"&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;)&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;#NOTE: THIS ASSUMES YOU HAVE THESE USERS - MAKE ARRAY EMPTY IF NOT&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;##########GLOBAL VARIABLE (UPDATE IF NECESSARY)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$siteGroupDefaultUsers = @(&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;"FIOwner",&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;"FIMember",&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;"FIVisitor",&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;"HROwner",&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;"HRMember",&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;"HRVisitor",&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;"ISOwner",&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;"ISMember",&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;"ISVisitor",&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;"MTKOwner",&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;"MTKMember",&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;"MTKVisitor"&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;)&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;#--------------MasterPage Variables-----------------&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$masterPageUrl = $siteManagedPath + "/" + "_catalogs/masterpage/v4.master" #nightandday.master is default. v4.master is more minimalist&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;#--------------List Variables-----------------&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$linksTemplate = [Microsoft.SharePoint.SPListTemplateType]::Links&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$announcementsTemplate = [Microsoft.SharePoint.SPListTemplateType]::Announcements&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$calendarTemplate = [Microsoft.SharePoint.SPListTemplateType]::Events&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$listNameTemplates = @($announcementsTemplate, $linksTemplate, $announcementsTemplate, $calendarTemplate)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$listNames = @("Announcements", "I Want To", "News", "Team Calendar")&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$pageUrl = "/pages/default.aspx"&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;#--------------List View Variables-----------------&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$fieldNames = @("Name", "Site Visibility")&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$privateCamlQuery = "&lt;where&gt;&lt;contains&gt;&lt;fieldref name="'Site_x0020_Visibility'"&gt;&lt;value type="'Text'"&gt;Private Team&lt;/value&gt;&lt;/contains&gt;&lt;/where&gt;&lt;orderby&gt;&lt;fieldref ascending="'False'" name="'Modified'"&gt;&lt;/orderby&gt;"&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$publicCamlQuery = "&lt;where&gt;&lt;contains&gt;&lt;fieldref name="'Site_x0020_Visibility'"&gt;&lt;value type="'Text'"&gt;Public Team&lt;/value&gt;&lt;/contains&gt;&lt;/where&gt;&lt;orderby&gt;&lt;fieldref ascending="'False'" name="'Modified'"&gt;&lt;/orderby&gt;"&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$intranetCamlQuery = "&lt;where&gt;&lt;contains&gt;&lt;fieldref name="'Site_x0020_Visibility'"&gt;&lt;value type="'Text'"&gt;Intranet&lt;/value&gt;&lt;/contains&gt;&lt;/where&gt;&lt;orderby&gt;&lt;fieldref ascending="'False'" name="'Modified'"&gt;&lt;/orderby&gt;"&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$listSiteVisibilityTitle = ""&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$listSiteVisibilityChoices = @("Private Team", "Public Team", "Intranet")&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$listViewColumnFilterName = "Site_x0020_Visibility"&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$listViewColumnPublicFilterValue = "Public Team"&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$listViewColumnIntranetFilterValue = "Intranet"&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$listViewItemLimit = 10;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$listViewZoneId = "TopZone"&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;#--------------List Folder Variables-----------------&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$listFolderName = "public"&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$listFolderPermissionGroup = ($siteName + " Visitors")&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$listFolderPermission = "Read"&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;#--------------Publishing Page Variables-----------------&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$publishingPages = @("NewHires.aspx", "StaffRoles.aspx", "Training.aspx")&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;#--------------Permissions Variables-----------------&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;$permissionPermissionNames = @(&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;"Finance", &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;"HR", &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;"IS",&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;"Marketing"&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;)&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;#--------------UPDATE VARIABLES DEPENDING ON ENVIRONMENT-----------------&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;#You can add more variables from above down here. I only included common ones that would likely change between environments.&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;#Expected Values: dev, qa, or prod&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;switch($env)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;"dev" &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;{ &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;#--------------Web App Variables-----------------&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$webApplicationName = "DEVIntranet"&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$appPoolUserName = "CORP\DEVAdministrator"&lt;span class="Apple-tab-span" style="white-space:pre"&gt;          &lt;/span&gt;##########GLOBAL VARIABLE (UPDATE IF NECESSARY)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$appPoolPassword = ConvertTo-securestring "pass@word1" -asplaintext -force&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;##########GLOBAL VARIABLE (UPDATE IF NECESSARY)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$portNumber = "80"&lt;span class="Apple-tab-span" style="white-space:pre"&gt;                &lt;/span&gt;##########GLOBAL VARIABLE (UPDATE IF NECESSARY)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$serverName = "DEVSPSERVER"&lt;span class="Apple-tab-span" style="white-space:pre"&gt;             &lt;/span&gt;##########GLOBAL VARIABLE (UPDATE IF NECESSARY)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;#--------------Site Collection Variables-----------------&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$siteName = "DEVIntranet"&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$siteManagedPath = "/sites/Intranet" #"" if root level. Otherwise, something like "/sites/PortalName"&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$siteUrl = "http://" + $serverName + ":" + $portNumber + $siteManagedPath&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$siteOwner = "CORP\DEVAdministrator"&lt;span class="Apple-tab-span" style="white-space:pre"&gt;            &lt;/span&gt;##########GLOBAL VARIABLE (UPDATE IF NECESSARY)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;#--------------Web Variables-----------------&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$webOwner = "CORP\DEVAdministrator"&lt;span class="Apple-tab-span" style="white-space:pre"&gt;            &lt;/span&gt;##########GLOBAL VARIABLE (UPDATE IF NECESSARY)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;"qa" &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;{ &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;#--------------Web App Variables-----------------&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$webApplicationName = "QAIntranet"&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$appPoolUserName = "CORP\QAAdministrator"&lt;span class="Apple-tab-span" style="white-space:pre"&gt;          &lt;/span&gt;##########GLOBAL VARIABLE (UPDATE IF NECESSARY)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$appPoolPassword = ConvertTo-securestring "pass@word1" -asplaintext -force&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;##########GLOBAL VARIABLE (UPDATE IF NECESSARY)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$portNumber = "80"&lt;span class="Apple-tab-span" style="white-space:pre"&gt;                &lt;/span&gt;##########GLOBAL VARIABLE (UPDATE IF NECESSARY)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$serverName = "QASPSERVER"&lt;span class="Apple-tab-span" style="white-space:pre"&gt;             &lt;/span&gt;##########GLOBAL VARIABLE (UPDATE IF NECESSARY)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;#--------------Site Collection Variables-----------------&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$siteName = "QAIntranet"&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$siteManagedPath = "/sites/Intranet" #"" if root level. Otherwise, something like "/sites/PortalName"&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$siteUrl = "http://" + $serverName + ":" + $portNumber + $siteManagedPath&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$siteOwner = "CORP\QAAdministrator"&lt;span class="Apple-tab-span" style="white-space:pre"&gt;            &lt;/span&gt;##########GLOBAL VARIABLE (UPDATE IF NECESSARY)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;#--------------Web Variables-----------------&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$webOwner = "CORP\QAAdministrator"&lt;span class="Apple-tab-span" style="white-space:pre"&gt;            &lt;/span&gt;##########GLOBAL VARIABLE (UPDATE IF NECESSARY)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;"prod" &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;{ &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;#--------------Web App Variables-----------------&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$webApplicationName = "Intranet"&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$appPoolUserName = "CORP\Administrator"&lt;span class="Apple-tab-span" style="white-space:pre"&gt;          &lt;/span&gt;##########GLOBAL VARIABLE (UPDATE IF NECESSARY)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$appPoolPassword = ConvertTo-securestring "pass@word1" -asplaintext -force&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;##########GLOBAL VARIABLE (UPDATE IF NECESSARY)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$portNumber = "80"&lt;span class="Apple-tab-span" style="white-space:pre"&gt;                &lt;/span&gt;##########GLOBAL VARIABLE (UPDATE IF NECESSARY)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$serverName = "SPSERVER"&lt;span class="Apple-tab-span" style="white-space:pre"&gt;             &lt;/span&gt;##########GLOBAL VARIABLE (UPDATE IF NECESSARY)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;#--------------Site Collection Variables-----------------&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$siteName = "Intranet"&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$siteManagedPath = "/sites/Intranet" #"" if root level. Otherwise, something like "/sites/PortalName"&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$siteUrl = "http://" + $serverName + ":" + $portNumber + $siteManagedPath&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$siteOwner = "CORP\Administrator"&lt;span class="Apple-tab-span" style="white-space:pre"&gt;            &lt;/span&gt;##########GLOBAL VARIABLE (UPDATE IF NECESSARY)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;#--------------Web Variables-----------------&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;$webOwner = "CORP\Administrator"&lt;span class="Apple-tab-span" style="white-space:pre"&gt;            &lt;/span&gt;##########GLOBAL VARIABLE (UPDATE IF NECESSARY)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;}&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;#--------------CREATE WEB APP AND SITE COLLECTION-----------------&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;if($createWebApplication)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;CreateWebApplication $webApplicationName $appPoolUserName $appPoolPassword $portNumber $serverName $timeZoneId&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;if($createSiteCollection)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;CreateSiteCollection $siteName $siteUrl $siteOwner $siteTemplate $removeLibraryApprovalWorkflow $disableCheckoutModeration $addTeamCollaborationFeature&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;UpdateMasterPageUrl $siteUrl "" $masterPageUrl $false&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;#--------------ADD SITE VISIBILITY SITE COLUMN-----------------&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;CreateSiteColumnMultiChoice $siteUrl $siteColumnName $listSiteVisibilityChoices $siteColumnDefaultValue $siteColumnGroup $true&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;#--------------CREATE SUB SITES-----------------&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;for($i=0; $i -lt $webTitles.Length; $i++)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;$webUrl = ($siteUrl + $webUrls[$i])&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;CreateWeb $siteUrl $webUrls[$i] $siteManagedPath $webTitles[$i] $webOwner $webTemplate $removeLibraryApprovalWorkflow $addTeamCollaborationFeature&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;UpdateMasterPageUrl $siteUrl ($siteManagedPath + $webUrls[$i]) $masterPageUrl $false&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;}&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;#--------------ADD SITE GROUPS-----------------&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;for($i=0; $i -lt $siteGroups.Length; $i++)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;{&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;AddSiteGroup $siteUrl $siteGroups[$i] $siteGroupDefaultUsers[$i] $siteGroupOwners[$i] ""&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;#--------------ADD PRIVATE WEB PAGES AND LISTS / SET PERMISSIONS-----------------&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;for($i=0; $i -lt $privateTeamUrls.Length; $i++)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;{&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;$webUrl = ($siteUrl + $privateTeamUrls[$i])&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;for($j=0; $j -lt $publishingPages.Length; $j++)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;CreatePublishingPage $siteUrl $privateTeamUrls[$i] $publishingPages[$j] $publishingPages[$j].Replace(".aspx", "")&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;for($j=0; $j -lt $listNames.Length; $j++)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;CreateList $siteUrl $privateTeamUrls[$i] $listNames[$j] "" $listNameTemplates[$j]&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;AddListSiteColumn $siteUrl $privateTeamUrls[$i] $listNames[$j] "Site Visibility"&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;}&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;SetRoleInheritance $siteUrl $privateTeamUrls[$i] $true&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;#--------------SET PRIVATE WEB GROUP PERMISSIONS-----------------&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;for($i=0; $i -lt $privateTeamUrls.Length; $i++)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;RemoveGroupPermission $siteUrl $privateTeamUrls[$i] ($siteName + " Visitors")&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;AddGroupPermission $siteUrl $privateTeamUrls[$i] ($permissionPermissionNames[$i] + " Visitors") "Read"&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;AddGroupPermission $siteUrl $privateTeamUrls[$i] ($permissionPermissionNames[$i] + " Members") "Contribute"&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;AddGroupPermission $siteUrl $privateTeamUrls[$i] ($permissionPermissionNames[$i] + " Owners") "Full Control"&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;}&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;#--------------CREATE LIST FOLDERS, PERMISSIONS, AND VIEWS-----------------&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;for($i=0; $i -lt $privateTeamUrls.Length; $i++)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;{&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;for($l=0; $l -lt $listNames.Length; $l++)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;{&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;AddListFolder $siteUrl $privateTeamUrls[$i] $listNames[$l] $listFolderName $true&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;SetListFolderPermissions $siteUrl $privateTeamUrls[$i] $listNames[$l] $listFolderName $listFolderPermissionGroup $listFolderPermission&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;for($m=0; $m -lt $listSiteVisibilityChoices.Length; $m++)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;AddListView $siteUrl $privateTeamUrls[$i] $listNames[$l] $listSiteVisibilityChoices[$m] $fieldNames $privateCamlQuery 10 $false $false $false&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;}&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;#ADD Content Query Web Part to Public Page&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;AddContentByQueryWebPart $siteUrl $publicTeamUrls[$i] $privateTeamRelativeUrls[$i] $privateTeamUrls[$i] ($publicTeamUrls[$i] + $pageUrl) $listNames[$l] $listNames[$l] $listViewColumnFilterName $listViewColumnPublicFilterValue $listViewColumnPublicFilterValue $listViewItemLimit $listViewZoneId 0&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;#ADD Content Query Web Part to Intranet Home Page #TODO: FIGURE OUT WHY THIS HAS TO BE RUN SEPARATELY&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;#AddContentByQueryWebPart $siteUrl "" $privateTeamRelativeUrls[$i] $privateTeamUrls[$i] ($siteUrl + $pageUrl) $listNames[$l] ($privateTeamNames[$i]+" - "+$listNames[$l]) $listViewColumnFilterName $listViewColumnIntranetFilterValue $listViewColumnIntranetFilterValue $listViewItemLimit $listViewZoneId 0&lt;span class="Apple-tab-span" style="white-space:pre"&gt;      &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;}&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;}&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;#--------------ADDING SAMPLE DATA TO LISTS-----------------&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;for($i=0; $i -lt $privateTeamUrls.Length; $i++)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;AddSampleAnnouncements $siteUrl $privateTeamUrls[$i] $privateTeamNames[$i] "Announcements"&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;AddSampleAnnouncements $siteUrl $privateTeamUrls[$i] $privateTeamNames[$i] "News"&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;AddSampleCalendarEvents $siteUrl $privateTeamUrls[$i] $privateTeamNames[$i] "Team Calendar"&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;AddSampleLinks $siteUrl $privateTeamUrls[$i] $privateTeamNames[$i] "I Want To"&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Write-Host "--------------FINISHED CREATING PUBLISHING PORTAL-----------------"&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;#--------------START HERE---------------------------------------------------------------------------------------------------&lt;/div&gt;&lt;div&gt;Clear-Host&lt;/div&gt;&lt;div&gt;$env = "dev" #"dev", "qa", or "prod" Make sure to update variables within the function.&lt;/div&gt;&lt;div&gt;$createWebApplication = $false&lt;/div&gt;&lt;div&gt;$createSiteCollection = $true&lt;/div&gt;&lt;div&gt;CreateSamplePublishingPortal $createWebApplication $createSiteCollection $env&lt;/div&gt;&lt;div&gt;[System.Console]::Read()&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3280948321129906341-5172605521027840087?l=johnlivingstontech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johnlivingstontech.blogspot.com/feeds/5172605521027840087/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://johnlivingstontech.blogspot.com/2011/02/powershell-for-sharepoint-on-steroids.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3280948321129906341/posts/default/5172605521027840087'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3280948321129906341/posts/default/5172605521027840087'/><link rel='alternate' type='text/html' href='http://johnlivingstontech.blogspot.com/2011/02/powershell-for-sharepoint-on-steroids.html' title='PowerShell for SharePoint on Steroids!'/><author><name>john.livingston</name><uri>http://www.blogger.com/profile/15046544302781486569</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_MMTaYTUqqA8/S_wm4ecIT6I/AAAAAAAACNM/UwxxaWdJLxY/S220/4283_90775887584_507792584_1737866_2361093_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3280948321129906341.post-2050464912065744760</id><published>2011-01-25T12:39:00.001-08:00</published><updated>2011-01-25T12:39:56.591-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>Recursively set SharePoint MasterPages and CSS</title><content type='html'>&lt;p&gt;Here is a quick sample of how to set master pages and CSS recursively and make sure that they are inherited from the parent site. This would be used within a SharePoint project’s FeatureEventReceiver class.&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Runtime.InteropServices;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; Microsoft.SharePoint;&lt;br /&gt;&lt;span class="kwrd"&gt;namespace&lt;/span&gt; Acme.Intranet.Ui.Features.Feature1&lt;br /&gt;{&lt;br /&gt;    [Guid(&lt;span class="str"&gt;"0a7b9817-012b-4210-b4b9-a27913eb9598"&lt;/span&gt;)]&lt;br /&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; Feature1EventReceiver : SPFeatureReceiver&lt;br /&gt;    {&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;override&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; FeatureActivated(SPFeatureReceiverProperties properties)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;using&lt;/span&gt; (SPSite site = (SPSite)properties.Feature.Parent)&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="kwrd"&gt;using&lt;/span&gt; (SPWeb web = site.RootWeb)&lt;br /&gt;                {&lt;br /&gt;                    &lt;span class="kwrd"&gt;string&lt;/span&gt; masterPageUrl = &lt;span class="kwrd"&gt;new&lt;/span&gt; Uri(web.Url + &lt;span class="str"&gt;"/_catalogs/masterpage/Custom.master"&lt;/span&gt;).AbsolutePath;&lt;br /&gt;                    web.MasterUrl = masterPageUrl;&lt;br /&gt;                    web.CustomMasterUrl = masterPageUrl;&lt;br /&gt;                    web.Update();&lt;br /&gt;                    &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (SPWeb childWeb &lt;span class="kwrd"&gt;in&lt;/span&gt; web.Webs)&lt;br /&gt;                    {&lt;br /&gt;                        SetMasterPagesAndCss(site.Url, childWeb.ServerRelativeUrl, masterPageUrl, &lt;span class="kwrd"&gt;true&lt;/span&gt;);&lt;br /&gt;                    }&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;override&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; FeatureDeactivating(SPFeatureReceiverProperties properties)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;using&lt;/span&gt; (SPSite site = (SPSite)properties.Feature.Parent)&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="kwrd"&gt;using&lt;/span&gt; (SPWeb web = site.RootWeb)&lt;br /&gt;                {&lt;br /&gt;                    &lt;span class="kwrd"&gt;string&lt;/span&gt; masterPageUrl = &lt;span class="kwrd"&gt;new&lt;/span&gt; Uri(web.Url + &lt;span class="str"&gt;"/_catalogs/masterpage/v4.master"&lt;/span&gt;).AbsolutePath;&lt;br /&gt;                    web.MasterUrl = masterPageUrl;&lt;br /&gt;                    web.CustomMasterUrl = masterPageUrl;&lt;br /&gt;                    web.Update();&lt;br /&gt;                    &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (SPWeb childWeb &lt;span class="kwrd"&gt;in&lt;/span&gt; web.Webs)&lt;br /&gt;                    {&lt;br /&gt;                        SetMasterPagesAndCss(site.Url, childWeb.ServerRelativeUrl, masterPageUrl, &lt;span class="kwrd"&gt;false&lt;/span&gt;);&lt;br /&gt;                    }&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; SetMasterPagesAndCss(&lt;span class="kwrd"&gt;string&lt;/span&gt; siteUrl, &lt;span class="kwrd"&gt;string&lt;/span&gt; webUrl, &lt;span class="kwrd"&gt;string&lt;/span&gt; masterPageUrl, &lt;span class="kwrd"&gt;bool&lt;/span&gt; inheritsMasterAndCss)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;string&lt;/span&gt; boolVal = &lt;span class="str"&gt;"False"&lt;/span&gt;;&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (inheritsMasterAndCss)&lt;br /&gt;            {&lt;br /&gt;                boolVal = &lt;span class="str"&gt;"True"&lt;/span&gt;;&lt;br /&gt;            }&lt;br /&gt;            &lt;span class="kwrd"&gt;using&lt;/span&gt; (SPSite site = &lt;span class="kwrd"&gt;new&lt;/span&gt; SPSite(siteUrl))&lt;br /&gt;            {&lt;br /&gt;                &lt;span class="kwrd"&gt;using&lt;/span&gt; (SPWeb web = site.OpenWeb(webUrl))&lt;br /&gt;                {&lt;br /&gt;                    web.Navigation.UseShared = &lt;span class="kwrd"&gt;true&lt;/span&gt;;&lt;br /&gt;                    web.MasterUrl = masterPageUrl;&lt;br /&gt;                    web.AllProperties[&lt;span class="str"&gt;"__InheritsMasterUrl"&lt;/span&gt;] = boolVal;&lt;br /&gt;                    web.CustomMasterUrl = masterPageUrl;&lt;br /&gt;                    web.AllProperties[&lt;span class="str"&gt;"__InheritsCustomMasterUrl"&lt;/span&gt;] = boolVal;&lt;br /&gt;                    web.AlternateCssUrl = web.ParentWeb.AlternateCssUrl;&lt;br /&gt;                    web.AllProperties[&lt;span class="str"&gt;"__InheritsAlternateCssUrl"&lt;/span&gt;] = boolVal;&lt;br /&gt;                    web.Update();&lt;br /&gt;                    &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (SPWeb childWeb &lt;span class="kwrd"&gt;in&lt;/span&gt; web.Webs)&lt;br /&gt;                    {&lt;br /&gt;                        SetMasterPagesAndCss(siteUrl, childWeb.ServerRelativeUrl, masterPageUrl, inheritsMasterAndCss);&lt;br /&gt;                    }&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;br /&gt;&lt;/style&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3280948321129906341-2050464912065744760?l=johnlivingstontech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johnlivingstontech.blogspot.com/feeds/2050464912065744760/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://johnlivingstontech.blogspot.com/2011/01/recursively-set-sharepoint-masterpages.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3280948321129906341/posts/default/2050464912065744760'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3280948321129906341/posts/default/2050464912065744760'/><link rel='alternate' type='text/html' href='http://johnlivingstontech.blogspot.com/2011/01/recursively-set-sharepoint-masterpages.html' title='Recursively set SharePoint MasterPages and CSS'/><author><name>john.livingston</name><uri>http://www.blogger.com/profile/15046544302781486569</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_MMTaYTUqqA8/S_wm4ecIT6I/AAAAAAAACNM/UwxxaWdJLxY/S220/4283_90775887584_507792584_1737866_2361093_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3280948321129906341.post-1315881941025657971</id><published>2011-01-21T14:19:00.001-08:00</published><updated>2011-01-21T14:22:57.863-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><title type='text'>Create AD Users in bulk with PowerShell</title><content type='html'>&lt;p&gt;This code snippet allows you to easily create multiple users. This is helpful when you need a bunch of test accounts on your DEV environment.&lt;/p&gt;&lt;pre class="csharpcode"&gt;function CreateUser($userName, $password)&lt;br /&gt;{&lt;br /&gt;    &lt;span class="kwrd"&gt;try&lt;/span&gt;&lt;br /&gt;    {   &lt;br /&gt;        $adObject = &lt;span class="str"&gt;"WinNT://"&lt;/span&gt; + [System.Environment]::MachineName + &lt;span class="str"&gt;",computer"&lt;/span&gt; #Assumes computer name&lt;br /&gt;        $AD = New-Object System.DirectoryServices.DirectoryEntry($adObject)&lt;br /&gt;        $NewUser = $AD.Children.Add($userName, &lt;span class="str"&gt;"user"&lt;/span&gt;)&lt;br /&gt;        $NewUser.Invoke(&lt;span class="str"&gt;"SetPassword"&lt;/span&gt;, $password)&lt;br /&gt;        $NewUser.CommitChanges()&lt;br /&gt;        Write-Host &lt;span class="str"&gt;"User "&lt;/span&gt; + $username&lt;span class="str"&gt;" + created successfully."&lt;/span&gt;&lt;br /&gt;    }&lt;br /&gt;    &lt;span class="kwrd"&gt;finally&lt;/span&gt;&lt;br /&gt;    {&lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;CreateUser &lt;span class="str"&gt;"IntranetOwner"&lt;/span&gt; &lt;span class="str"&gt;"pass@word1"&lt;/span&gt;&lt;br /&gt;CreateUser &lt;span class="str"&gt;"IntranetMember"&lt;/span&gt; &lt;span class="str"&gt;"pass@word1"&lt;/span&gt;&lt;br /&gt;CreateUser &lt;span class="str"&gt;"IntranetVisitor"&lt;/span&gt; &lt;span class="str"&gt;"pass@word1"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;CreateUser &lt;span class="str"&gt;"FIOwner"&lt;/span&gt; &lt;span class="str"&gt;"pass@word1"&lt;/span&gt;&lt;br /&gt;CreateUser &lt;span class="str"&gt;"FIMember"&lt;/span&gt; &lt;span class="str"&gt;"pass@word1"&lt;/span&gt;&lt;br /&gt;CreateUser &lt;span class="str"&gt;"FIVisitor"&lt;/span&gt; &lt;span class="str"&gt;"pass@word1"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;CreateUser &lt;span class="str"&gt;"HROwner"&lt;/span&gt; &lt;span class="str"&gt;"pass@word1"&lt;/span&gt;&lt;br /&gt;CreateUser &lt;span class="str"&gt;"HRMember"&lt;/span&gt; &lt;span class="str"&gt;"pass@word1"&lt;/span&gt;&lt;br /&gt;CreateUser &lt;span class="str"&gt;"HRVisitor"&lt;/span&gt; &lt;span class="str"&gt;"pass@word1"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;CreateUser &lt;span class="str"&gt;"ISOwner"&lt;/span&gt; &lt;span class="str"&gt;"pass@word1"&lt;/span&gt;&lt;br /&gt;CreateUser &lt;span class="str"&gt;"ISMember"&lt;/span&gt; &lt;span class="str"&gt;"pass@word1"&lt;/span&gt;&lt;br /&gt;CreateUser &lt;span class="str"&gt;"ISVisitor"&lt;/span&gt; &lt;span class="str"&gt;"pass@word1"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;CreateUser &lt;span class="str"&gt;"MKTOwner"&lt;/span&gt; &lt;span class="str"&gt;"pass@word1"&lt;/span&gt;&lt;br /&gt;CreateUser &lt;span class="str"&gt;"MKTMember"&lt;/span&gt; &lt;span class="str"&gt;"pass@word1"&lt;/span&gt;&lt;br /&gt;CreateUser &lt;span class="str"&gt;"MKTVisitor"&lt;/span&gt; &lt;span class="str"&gt;"pass@word1"&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;br /&gt;&lt;/style&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3280948321129906341-1315881941025657971?l=johnlivingstontech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johnlivingstontech.blogspot.com/feeds/1315881941025657971/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://johnlivingstontech.blogspot.com/2011/01/create-ad-users-in-bulk-with-powershell.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3280948321129906341/posts/default/1315881941025657971'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3280948321129906341/posts/default/1315881941025657971'/><link rel='alternate' type='text/html' href='http://johnlivingstontech.blogspot.com/2011/01/create-ad-users-in-bulk-with-powershell.html' title='Create AD Users in bulk with PowerShell'/><author><name>john.livingston</name><uri>http://www.blogger.com/profile/15046544302781486569</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_MMTaYTUqqA8/S_wm4ecIT6I/AAAAAAAACNM/UwxxaWdJLxY/S220/4283_90775887584_507792584_1737866_2361093_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3280948321129906341.post-4047332450695105610</id><published>2011-01-21T13:19:00.001-08:00</published><updated>2011-01-21T13:19:40.097-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>Use SharePoint Web Services to export all User Profile data to CSV</title><content type='html'>&lt;p&gt;&lt;span style="color: blue"&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="color: blue"&gt;&lt;font color="#000000"&gt;Here is a an easy way to get user profile data out of SharePoint. The solution uses web services so you don’t have to worry about having access to the server. It will work with SharePoint 2007 and SharePoint 2010.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="color: blue"&gt;&lt;font color="#000000"&gt;&lt;strong&gt;Steps:&lt;br&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&lt;font color="#000000"&gt;1. Create a Visual Studio Console Application.&lt;br&gt;2. &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&lt;font color="#000000"&gt;Make a web service reference to the following web services:&lt;br&gt;&lt;br&gt;&lt;/font&gt;&lt;/span&gt;&lt;a href="http://portalname/_vti_bin/usergroup.asmx"&gt;&lt;font color="#000000"&gt;http://portalname/_vti_bin/usergroup.asmx&lt;/font&gt;&lt;/a&gt;&lt;font color="#000000"&gt; (Name it UserGroupWs)&lt;br&gt;&lt;/font&gt;&lt;a href="http://portalname/_vti_bin/userprofileservice.asmx"&gt;&lt;font color="#000000"&gt;http://portalname/_vti_bin/userprofileservice.asmx&lt;/font&gt;&lt;/a&gt;&lt;font color="#000000"&gt; (Name it UserProfileServiceWs)&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="color: blue"&gt;&lt;font color="#000000"&gt;3. Copy the following code and run it! It will save a file to your desktop called SharePointUserData.csv.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color: blue"&gt;using &lt;/span&gt;System;&lt;br /&gt;&lt;span style="color: blue"&gt;using &lt;/span&gt;System.Collections.Generic;&lt;br /&gt;&lt;span style="color: blue"&gt;using &lt;/span&gt;System.IO;&lt;br /&gt;&lt;span style="color: blue"&gt;using &lt;/span&gt;System.Linq;&lt;br /&gt;&lt;span style="color: blue"&gt;using &lt;/span&gt;System.Text;&lt;br /&gt;&lt;span style="color: blue"&gt;using &lt;/span&gt;System.Xml;&lt;br /&gt;&lt;span style="color: blue"&gt;using &lt;/span&gt;System.Xml.Linq;&lt;br /&gt;&lt;span style="color: blue"&gt;using &lt;/span&gt;ConsoleApplication1.UserGroupWs;&lt;br /&gt;&lt;span style="color: blue"&gt;using &lt;/span&gt;ConsoleApplication1.UserProfileServiceWs;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: blue"&gt;namespace &lt;/span&gt;ConsoleApplication1&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: blue"&gt;class &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Program&lt;br /&gt;    &lt;/span&gt;{        &lt;br /&gt;        &lt;span style="color: blue"&gt;static void &lt;/span&gt;Main(&lt;span style="color: blue"&gt;string&lt;/span&gt;[] args)&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: #2b91af"&gt;UserInfo &lt;/span&gt;ui = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;UserInfo&lt;/span&gt;();&lt;br /&gt;            &lt;span style="color: #2b91af"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="color: #2b91af"&gt;UserInfo&lt;/span&gt;&amp;gt; userInfo = ui.GetUserInfo();&lt;br /&gt;            &lt;span style="color: #2b91af"&gt;StringBuilder &lt;/span&gt;sb = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;StringBuilder&lt;/span&gt;();&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"AboutMe,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"AccountName,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"ADGuid,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"Assistant,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"CellPhone,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"Department,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"Fax,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"FirstName,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"HomePhone,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"LastName,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"Manager,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"Office,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"PersonalSpace,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"PictureURL,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"PreferredName,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"PublicSiteRedirect,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"QuickLinks,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"SID,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"SPS-AboutUs,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"SPS-Birthday,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"SPS-ClaimID,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"SPS-ClaimProviderID,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"SPS-ClaimProviderType,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"SPS-DataSource,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"SPS-DisplayOrder,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"SPS-DistinguishedName,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"SPS-DontSuggestList,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"SPS-Dotted-line,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"SPS-EmailOptin,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"SPS-FormerNames,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"SPS-HireDate,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"SPS-Interests,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"SPS-JobTitle,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"SPS-LastColleagueAdded,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"SPS-LastKeywordAdded,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"SPS-Location,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"SPS-LogoURL,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"SPS-MasterAccountName,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"SPS-MemberOf,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"SPS-MySiteUpgrade,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"SPS-ObjectExists,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"SPS-OWAUrl,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"SPS-Parent,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"SPS-ParentType,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"SPS-PastProjects,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"SPS-Peers,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"SPS-PhoneticDisplayName,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"SPS-PhoneticFirstName,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"SPS-PhoneticLastName,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"SPS-ProxyAddresses,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"SPS-ResourceAccountName,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"SPS-ResourceSID,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"SPS-Responsibility,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"SPS-SavedAccountName,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"SPS-SavedSID,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"SPS-School,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"SPS-Section-BasicInfo,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"SPS-Section-ContactInfo,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"SPS-Section-CustomProperties,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"SPS-Section-Delegation,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"SPS-Section-Details,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"SPS-Section-OrganizationMembers,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"SPS-Section-Preferences,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"SPS-SipAddress,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"SPS-Skills,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"SPS-SourceObjectDN,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"SPS-Statustes,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"SPS-Team-Site,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"SPS-TimeZone,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"Title,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"UserName,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"UserProfile_GUID,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"WebSite,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"WorkEmail,"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"WorkPhone"&lt;/span&gt;);&lt;br /&gt;            sb.Append(&lt;span style="color: #a31515"&gt;"\r\n"&lt;/span&gt;);&lt;br /&gt;            &lt;span style="color: blue"&gt;foreach &lt;/span&gt;(&lt;span style="color: #2b91af"&gt;UserInfo &lt;/span&gt;u &lt;span style="color: blue"&gt;in &lt;/span&gt;userInfo)&lt;br /&gt;            {&lt;br /&gt;                sb.Append(u.AboutMe + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.AccountName + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.ADGuid + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.Assistant + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.CellPhone + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.Department + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.Fax + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.FirstName + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.HomePhone + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.LastName + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.Manager + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.Office + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.PersonalSpace + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.PictureURL + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.PreferredName + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.PublicSiteRedirect + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.QuickLinks + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.SID + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.SPSAboutUs + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.SPSBirthday + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.SPSClaimID + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.SPSClaimProviderID + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.SPSClaimProviderType + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.SPSDataSource + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.SPSDisplayOrder + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.SPSDistinguishedName + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.SPSDontSuggestList + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.SPSDottedline + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.SPSEmailOptin + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.SPSFormerNames + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.SPSHireDate + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.SPSInterests + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.SPSJobTitle + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.SPSLastColleagueAdded + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.SPSLastKeywordAdded + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.SPSLocation + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.SPSLogoURL + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.SPSMasterAccountName + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.SPSMemberOf + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.SPSMySiteUpgrade + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.SPSObjectExists + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.SPSOWAUrl + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.SPSParent + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.SPSParentType + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.SPSPastProjects + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.SPSPeers + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.SPSPhoneticDisplayName + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.SPSPhoneticFirstName + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.SPSPhoneticLastName + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.SPSProxyAddresses + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.SPSResourceAccountName + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.SPSResourceSID + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.SPSResponsibility + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.SPSSavedAccountName + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.SPSSavedSID + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.SPSSchool + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.SPSSectionBasicInfo + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.SPSSectionContactInfo + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.SPSSectionCustomProperties + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.SPSSectionDelegation + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.SPSSectionDetails + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.SPSSectionOrganizationMembers + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.SPSSectionPreferences + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.SPSSipAddress + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.SPSSkills + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.SPSSourceObjectDN + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.SPSStatustes + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.SPSTeamSite + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.SPSTimeZone + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.Title + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.UserName + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.UserProfile_GUID + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.WebSite + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.WorkEmail + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;);&lt;br /&gt;                sb.Append(u.WorkPhone);&lt;br /&gt;                sb.Append(&lt;span style="color: #a31515"&gt;"\r\n"&lt;/span&gt;);&lt;br /&gt;            }&lt;br /&gt;            &lt;span style="color: #2b91af"&gt;TextWriter &lt;/span&gt;tw = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;StreamWriter&lt;/span&gt;(&lt;span style="color: #2b91af"&gt;Environment&lt;/span&gt;.GetFolderPath(&lt;span style="color: #2b91af"&gt;Environment&lt;/span&gt;.&lt;span style="color: #2b91af"&gt;SpecialFolder&lt;/span&gt;.Desktop) + &lt;span style="color: #a31515"&gt;"\\" &lt;/span&gt;+ &lt;span style="color: #a31515"&gt;"SharePointUserData.csv"&lt;/span&gt;);&lt;br /&gt;            tw.WriteLine(sb.ToString());&lt;br /&gt;            tw.Close();&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: blue"&gt;public class &lt;/span&gt;&lt;span style="color: #2b91af"&gt;UserInfo&lt;br /&gt;    &lt;/span&gt;{&lt;br /&gt;        &lt;span style="color: blue"&gt;public int &lt;/span&gt;counter { &lt;span style="color: blue"&gt;get&lt;/span&gt;; &lt;span style="color: blue"&gt;set&lt;/span&gt;; }&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;AboutMe {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;AccountName {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;ADGuid {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;Assistant {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;CellPhone {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;Department {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;Fax {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;FirstName {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;HomePhone {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;LastName {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;Manager {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;Office {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;PersonalSpace {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;PictureURL {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;PreferredName {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;PublicSiteRedirect {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;QuickLinks {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;SID {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;SPSAboutUs {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;SPSBirthday {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;SPSClaimID {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;SPSClaimProviderID {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;SPSClaimProviderType {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;SPSDataSource {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;SPSDisplayOrder {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;SPSDistinguishedName {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;SPSDontSuggestList {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;SPSDottedline {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;SPSEmailOptin {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;SPSFormerNames {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;SPSHireDate {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;SPSInterests {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;SPSJobTitle {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;SPSLastColleagueAdded {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;SPSLastKeywordAdded {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;SPSLocation {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;SPSLogoURL {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;SPSMasterAccountName {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;SPSMemberOf {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;SPSMySiteUpgrade {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;SPSObjectExists {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;SPSOWAUrl {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;SPSParent {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;SPSParentType {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;SPSPastProjects {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;SPSPeers {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;SPSPhoneticDisplayName {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;SPSPhoneticFirstName {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;SPSPhoneticLastName {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;SPSProxyAddresses {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;SPSResourceAccountName {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;SPSResourceSID {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;SPSResponsibility {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;SPSSavedAccountName {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;SPSSavedSID {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;SPSSchool {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;SPSSectionBasicInfo {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;SPSSectionContactInfo {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;SPSSectionCustomProperties {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;SPSSectionDelegation {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;SPSSectionDetails {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;SPSSectionOrganizationMembers {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;SPSSectionPreferences {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;SPSSipAddress {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;SPSSkills {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;SPSSourceObjectDN {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;SPSStatustes {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;SPSTeamSite {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;SPSTimeZone {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;Title {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;UserName {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;UserProfile_GUID {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;WebSite {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;WorkEmail {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;        &lt;span style="color: blue"&gt;public string &lt;/span&gt;WorkPhone {&lt;span style="color: blue"&gt;get&lt;/span&gt;;&lt;span style="color: blue"&gt;set&lt;/span&gt;;}&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: blue"&gt;public &lt;/span&gt;&lt;span style="color: #2b91af"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="color: #2b91af"&gt;UserInfo&lt;/span&gt;&amp;gt; GetUserInfo()&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: #2b91af"&gt;UserGroup &lt;/span&gt;userGroup = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;UserGroup&lt;/span&gt;();&lt;br /&gt;            userGroup.UseDefaultCredentials = &lt;span style="color: blue"&gt;true&lt;/span&gt;;&lt;br /&gt;            &lt;span style="color: #2b91af"&gt;XmlNode &lt;/span&gt;allUsers = userGroup.GetAllUserCollectionFromWeb();&lt;br /&gt;            &lt;span style="color: #2b91af"&gt;XNode &lt;/span&gt;xNode = &lt;span style="color: #2b91af"&gt;XDocument&lt;/span&gt;.Parse(allUsers.OuterXml);&lt;br /&gt;            &lt;span style="color: blue"&gt;return &lt;/span&gt;(&lt;span style="color: blue"&gt;from &lt;/span&gt;root &lt;span style="color: blue"&gt;in &lt;/span&gt;xNode.Document.Elements()&lt;br /&gt;                    &lt;span style="color: blue"&gt;from &lt;/span&gt;users &lt;span style="color: blue"&gt;in &lt;/span&gt;root.Elements()&lt;br /&gt;                    &lt;span style="color: blue"&gt;from &lt;/span&gt;user &lt;span style="color: blue"&gt;in &lt;/span&gt;users.Elements()&lt;br /&gt;                    &lt;span style="color: blue"&gt;let &lt;/span&gt;loginName = (&lt;span style="color: blue"&gt;string&lt;/span&gt;)user.Attribute(&lt;span style="color: #a31515"&gt;"LoginName"&lt;/span&gt;)&lt;br /&gt;                    &lt;span style="color: blue"&gt;let &lt;/span&gt;userInfo = GetUserInfoDetails(loginName)&lt;br /&gt;                    &lt;span style="color: blue"&gt;select new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;UserInfo&lt;/span&gt;()&lt;br /&gt;                    {&lt;br /&gt;                        AboutMe = userInfo.AboutMe,&lt;br /&gt;                        AccountName = userInfo.AccountName,&lt;br /&gt;                        ADGuid = userInfo.ADGuid,&lt;br /&gt;                        Assistant = userInfo.Assistant,&lt;br /&gt;                        CellPhone = userInfo.CellPhone,&lt;br /&gt;                        Department = userInfo.Department,&lt;br /&gt;                        Fax = userInfo.Fax,&lt;br /&gt;                        FirstName = userInfo.FirstName,&lt;br /&gt;                        HomePhone = userInfo.HomePhone,&lt;br /&gt;                        LastName = userInfo.LastName,&lt;br /&gt;                        Manager = userInfo.Manager,&lt;br /&gt;                        Office = userInfo.Office,&lt;br /&gt;                        PersonalSpace = userInfo.PersonalSpace,&lt;br /&gt;                        PictureURL = userInfo.PictureURL,&lt;br /&gt;                        PreferredName = userInfo.PreferredName,&lt;br /&gt;                        PublicSiteRedirect = userInfo.PublicSiteRedirect,&lt;br /&gt;                        QuickLinks = userInfo.QuickLinks,&lt;br /&gt;                        SID = userInfo.SID,&lt;br /&gt;                        SPSAboutUs = userInfo.SPSAboutUs,&lt;br /&gt;                        SPSBirthday = userInfo.SPSBirthday,&lt;br /&gt;                        SPSClaimID = userInfo.SPSClaimID,&lt;br /&gt;                        SPSClaimProviderID = userInfo.SPSClaimProviderID,&lt;br /&gt;                        SPSClaimProviderType = userInfo.SPSClaimProviderType,&lt;br /&gt;                        SPSDataSource = userInfo.SPSDataSource,&lt;br /&gt;                        SPSDisplayOrder = userInfo.SPSDisplayOrder,&lt;br /&gt;                        SPSDistinguishedName = userInfo.SPSDistinguishedName,&lt;br /&gt;                        SPSDontSuggestList = userInfo.SPSDontSuggestList,&lt;br /&gt;                        SPSDottedline = userInfo.SPSDottedline,&lt;br /&gt;                        SPSEmailOptin = userInfo.SPSEmailOptin,&lt;br /&gt;                        SPSFormerNames = userInfo.SPSFormerNames,&lt;br /&gt;                        SPSHireDate = userInfo.SPSHireDate,&lt;br /&gt;                        SPSInterests = userInfo.SPSInterests,&lt;br /&gt;                        SPSJobTitle = userInfo.SPSJobTitle,&lt;br /&gt;                        SPSLastColleagueAdded = userInfo.SPSLastColleagueAdded,&lt;br /&gt;                        SPSLastKeywordAdded = userInfo.SPSLastKeywordAdded,&lt;br /&gt;                        SPSLocation = userInfo.SPSLocation,&lt;br /&gt;                        SPSLogoURL = userInfo.SPSLogoURL,&lt;br /&gt;                        SPSMasterAccountName = userInfo.SPSMasterAccountName,&lt;br /&gt;                        SPSMemberOf = userInfo.SPSMemberOf,&lt;br /&gt;                        SPSMySiteUpgrade = userInfo.SPSMySiteUpgrade,&lt;br /&gt;                        SPSObjectExists = userInfo.SPSObjectExists,&lt;br /&gt;                        SPSOWAUrl = userInfo.SPSOWAUrl,&lt;br /&gt;                        SPSParent = userInfo.SPSParent,&lt;br /&gt;                        SPSParentType = userInfo.SPSParentType,&lt;br /&gt;                        SPSPastProjects = userInfo.SPSPastProjects,&lt;br /&gt;                        SPSPeers = userInfo.SPSPeers,&lt;br /&gt;                        SPSPhoneticDisplayName = userInfo.SPSPhoneticDisplayName,&lt;br /&gt;                        SPSPhoneticFirstName = userInfo.SPSPhoneticFirstName,&lt;br /&gt;                        SPSPhoneticLastName = userInfo.SPSPhoneticLastName,&lt;br /&gt;                        SPSProxyAddresses = userInfo.SPSProxyAddresses,&lt;br /&gt;                        SPSResourceAccountName = userInfo.SPSResourceAccountName,&lt;br /&gt;                        SPSResourceSID = userInfo.SPSResourceSID,&lt;br /&gt;                        SPSResponsibility = userInfo.SPSResponsibility,&lt;br /&gt;                        SPSSavedAccountName = userInfo.SPSSavedAccountName,&lt;br /&gt;                        SPSSavedSID = userInfo.SPSSavedSID,&lt;br /&gt;                        SPSSchool = userInfo.SPSSchool,&lt;br /&gt;                        SPSSectionBasicInfo = userInfo.SPSSectionBasicInfo,&lt;br /&gt;                        SPSSectionContactInfo = userInfo.SPSSectionContactInfo,&lt;br /&gt;                        SPSSectionCustomProperties = userInfo.SPSSectionCustomProperties,&lt;br /&gt;                        SPSSectionDelegation = userInfo.SPSSectionDelegation,&lt;br /&gt;                        SPSSectionDetails = userInfo.SPSSectionDetails,&lt;br /&gt;                        SPSSectionOrganizationMembers = userInfo.SPSSectionOrganizationMembers,&lt;br /&gt;                        SPSSectionPreferences = userInfo.SPSSectionPreferences,&lt;br /&gt;                        SPSSipAddress = userInfo.SPSSipAddress,&lt;br /&gt;                        SPSSkills = userInfo.SPSSkills,&lt;br /&gt;                        SPSSourceObjectDN = userInfo.SPSSourceObjectDN,&lt;br /&gt;                        SPSStatustes = userInfo.SPSStatustes,&lt;br /&gt;                        SPSTeamSite = userInfo.SPSTeamSite,&lt;br /&gt;                        SPSTimeZone = userInfo.SPSTimeZone,&lt;br /&gt;                        Title = userInfo.Title,&lt;br /&gt;                        UserName = userInfo.UserName,&lt;br /&gt;                        UserProfile_GUID = userInfo.UserProfile_GUID,&lt;br /&gt;                        WebSite = userInfo.WebSite,&lt;br /&gt;                        WorkEmail = userInfo.WorkEmail,&lt;br /&gt;                        WorkPhone = userInfo.WorkPhone&lt;br /&gt;&lt;br /&gt;                    }).ToList();&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: blue"&gt;private &lt;/span&gt;&lt;span style="color: #2b91af"&gt;UserInfo &lt;/span&gt;GetUserInfoDetails(&lt;span style="color: blue"&gt;string &lt;/span&gt;loginName)&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(counter++.ToString() + &lt;span style="color: #a31515"&gt;" - " &lt;/span&gt;+ loginName);&lt;br /&gt;            &lt;span style="color: #2b91af"&gt;UserInfo &lt;/span&gt;userInfo = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;UserInfo&lt;/span&gt;();&lt;br /&gt;            &lt;span style="color: blue"&gt;try&lt;br /&gt;            &lt;/span&gt;{&lt;br /&gt;                &lt;span style="color: #2b91af"&gt;UserProfileService &lt;/span&gt;userProfileService = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;UserProfileService&lt;/span&gt;();&lt;br /&gt;                userProfileService.UseDefaultCredentials = &lt;span style="color: blue"&gt;true&lt;/span&gt;;&lt;br /&gt;                &lt;span style="color: #2b91af"&gt;PropertyData&lt;/span&gt;[] data = userProfileService.GetUserProfileByName(loginName);&lt;br /&gt;                &lt;span style="color: blue"&gt;string &lt;/span&gt;pictureUrl = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"PictureURL"&lt;/span&gt;);&lt;br /&gt;                userInfo.AboutMe = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"AboutMe"&lt;/span&gt;);&lt;br /&gt;                userInfo.AccountName = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"AccountName"&lt;/span&gt;);&lt;br /&gt;                userInfo.ADGuid = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"ADGuid"&lt;/span&gt;);&lt;br /&gt;                userInfo.Assistant = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"Assistant"&lt;/span&gt;);&lt;br /&gt;                userInfo.CellPhone = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"CellPhone"&lt;/span&gt;);&lt;br /&gt;                userInfo.Department = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"Department"&lt;/span&gt;);&lt;br /&gt;                userInfo.Fax = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"Fax"&lt;/span&gt;);&lt;br /&gt;                userInfo.FirstName = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"FirstName"&lt;/span&gt;);&lt;br /&gt;                userInfo.HomePhone = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"HomePhone"&lt;/span&gt;);&lt;br /&gt;                userInfo.LastName = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"LastName"&lt;/span&gt;);&lt;br /&gt;                userInfo.Manager = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"Manager"&lt;/span&gt;);&lt;br /&gt;                userInfo.Office = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"Office"&lt;/span&gt;);&lt;br /&gt;                userInfo.PersonalSpace = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"PersonalSpace"&lt;/span&gt;);&lt;br /&gt;                userInfo.PictureURL = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"PictureURL"&lt;/span&gt;);&lt;br /&gt;                userInfo.PreferredName = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"PreferredName"&lt;/span&gt;);&lt;br /&gt;                userInfo.PublicSiteRedirect = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"PublicSiteRedirect"&lt;/span&gt;);&lt;br /&gt;                userInfo.QuickLinks = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"QuickLinks"&lt;/span&gt;);&lt;br /&gt;                userInfo.SID = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"SID"&lt;/span&gt;);&lt;br /&gt;                userInfo.SPSAboutUs = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"SPS-AboutUs"&lt;/span&gt;);&lt;br /&gt;                userInfo.SPSBirthday = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"SPS-Birthday"&lt;/span&gt;);&lt;br /&gt;                userInfo.SPSClaimID = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"SPS-ClaimID"&lt;/span&gt;);&lt;br /&gt;                userInfo.SPSClaimProviderID = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"SPS-ClaimProviderID"&lt;/span&gt;);&lt;br /&gt;                userInfo.SPSClaimProviderType = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"SPS-ClaimProviderType"&lt;/span&gt;);&lt;br /&gt;                userInfo.SPSDataSource = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"SPS-DataSource"&lt;/span&gt;);&lt;br /&gt;                userInfo.SPSDisplayOrder = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"SPS-DisplayOrder"&lt;/span&gt;);&lt;br /&gt;                userInfo.SPSDistinguishedName = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"SPS-DistinguishedName"&lt;/span&gt;);&lt;br /&gt;                userInfo.SPSDontSuggestList = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"SPS-DontSuggestList"&lt;/span&gt;);&lt;br /&gt;                userInfo.SPSDottedline = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"SPS-Dotted-line"&lt;/span&gt;);&lt;br /&gt;                userInfo.SPSEmailOptin = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"SPS-EmailOptin"&lt;/span&gt;);&lt;br /&gt;                userInfo.SPSFormerNames = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"SPS-FormerNames"&lt;/span&gt;);&lt;br /&gt;                userInfo.SPSHireDate = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"SPS-HireDate"&lt;/span&gt;);&lt;br /&gt;                userInfo.SPSInterests = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"SPS-Interests"&lt;/span&gt;);&lt;br /&gt;                userInfo.SPSJobTitle = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"SPS-JobTitle"&lt;/span&gt;);&lt;br /&gt;                userInfo.SPSLastColleagueAdded = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"SPS-LastColleagueAdded"&lt;/span&gt;);&lt;br /&gt;                userInfo.SPSLastKeywordAdded = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"SPS-LastKeywordAdded"&lt;/span&gt;);&lt;br /&gt;                userInfo.SPSLocation = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"SPS-Location"&lt;/span&gt;);&lt;br /&gt;                userInfo.SPSLogoURL = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"SPS-LogoURL"&lt;/span&gt;);&lt;br /&gt;                userInfo.SPSMasterAccountName = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"SPS-MasterAccountName"&lt;/span&gt;);&lt;br /&gt;                userInfo.SPSMemberOf = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"SPS-MemberOf"&lt;/span&gt;);&lt;br /&gt;                userInfo.SPSMySiteUpgrade = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"SPS-MySiteUpgrade"&lt;/span&gt;);&lt;br /&gt;                userInfo.SPSObjectExists = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"SPS-ObjectExists"&lt;/span&gt;);&lt;br /&gt;                userInfo.SPSOWAUrl = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"SPS-OWAUrl"&lt;/span&gt;);&lt;br /&gt;                userInfo.SPSParent = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"SPS-Parent"&lt;/span&gt;);&lt;br /&gt;                userInfo.SPSParentType = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"SPS-ParentType"&lt;/span&gt;);&lt;br /&gt;                userInfo.SPSPastProjects = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"SPS-PastProjects"&lt;/span&gt;);&lt;br /&gt;                userInfo.SPSPeers = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"SPS-Peers"&lt;/span&gt;);&lt;br /&gt;                userInfo.SPSPhoneticDisplayName = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"SPS-PhoneticDisplayName"&lt;/span&gt;);&lt;br /&gt;                userInfo.SPSPhoneticFirstName = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"SPS-PhoneticFirstName"&lt;/span&gt;);&lt;br /&gt;                userInfo.SPSPhoneticLastName = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"SPS-PhoneticLastName"&lt;/span&gt;);&lt;br /&gt;                userInfo.SPSProxyAddresses = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"SPS-ProxyAddresses"&lt;/span&gt;);&lt;br /&gt;                userInfo.SPSResourceAccountName = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"SPS-ResourceAccountName"&lt;/span&gt;);&lt;br /&gt;                userInfo.SPSResourceSID = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"SPS-ResourceSID"&lt;/span&gt;);&lt;br /&gt;                userInfo.SPSResponsibility = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"SPS-Responsibility"&lt;/span&gt;);&lt;br /&gt;                userInfo.SPSSavedAccountName = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"SPS-SavedAccountName"&lt;/span&gt;);&lt;br /&gt;                userInfo.SPSSavedSID = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"SPS-SavedSID"&lt;/span&gt;);&lt;br /&gt;                userInfo.SPSSchool = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"SPS-School"&lt;/span&gt;);&lt;br /&gt;                userInfo.SPSSectionBasicInfo = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"SPS-Section-BasicInfo"&lt;/span&gt;);&lt;br /&gt;                userInfo.SPSSectionContactInfo = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"SPS-Section-ContactInfo"&lt;/span&gt;);&lt;br /&gt;                userInfo.SPSSectionCustomProperties = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"SPS-Section-CustomProperties"&lt;/span&gt;);&lt;br /&gt;                userInfo.SPSSectionDelegation = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"SPS-Section-Delegation"&lt;/span&gt;);&lt;br /&gt;                userInfo.SPSSectionDetails = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"SPS-Section-Details"&lt;/span&gt;);&lt;br /&gt;                userInfo.SPSSectionOrganizationMembers = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"SPS-Section-OrganizationMembers"&lt;/span&gt;);&lt;br /&gt;                userInfo.SPSSectionPreferences = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"SPS-Section-Preferences"&lt;/span&gt;);&lt;br /&gt;                userInfo.SPSSipAddress = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"SPS-SipAddress"&lt;/span&gt;);&lt;br /&gt;                userInfo.SPSSkills = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"SPS-Skills"&lt;/span&gt;);&lt;br /&gt;                userInfo.SPSSourceObjectDN = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"SPS-SourceObjectDN"&lt;/span&gt;);&lt;br /&gt;                userInfo.SPSStatustes = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"SPS-Statustes"&lt;/span&gt;);&lt;br /&gt;                userInfo.SPSTeamSite = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"SPS-Team-Site"&lt;/span&gt;);&lt;br /&gt;                userInfo.SPSTimeZone = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"SPS-TimeZone"&lt;/span&gt;);&lt;br /&gt;                userInfo.Title = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"Title"&lt;/span&gt;);&lt;br /&gt;                userInfo.UserName = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"UserName"&lt;/span&gt;);&lt;br /&gt;                userInfo.UserProfile_GUID = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"UserProfile_GUID"&lt;/span&gt;);&lt;br /&gt;                userInfo.WebSite = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"WebSite"&lt;/span&gt;);&lt;br /&gt;                userInfo.WorkEmail = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"WorkEmail"&lt;/span&gt;);&lt;br /&gt;                userInfo.WorkPhone = GetPropertyData(data, &lt;span style="color: #a31515"&gt;"WorkPhone"&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;            }&lt;br /&gt;            &lt;span style="color: blue"&gt;catch &lt;/span&gt;(System.Web.Services.Protocols.&lt;span style="color: #2b91af"&gt;SoapException &lt;/span&gt;ex)&lt;br /&gt;            {&lt;br /&gt;                &lt;span style="color: green"&gt;//It appears that an exception gets generated for users&lt;br /&gt;                //that have not logged into SharePoint yet.&lt;br /&gt;                //They must logon for a profile to be created.&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: blue"&gt;if &lt;/span&gt;(!ex.Message.Contains(&lt;span style="color: #a31515"&gt;"A user with the account name"&lt;/span&gt;))&lt;br /&gt;                {&lt;br /&gt;                    &lt;span style="color: blue"&gt;throw&lt;/span&gt;;&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;            &lt;span style="color: blue"&gt;return &lt;/span&gt;userInfo;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: blue"&gt;private string &lt;/span&gt;GetPropertyData(&lt;span style="color: #2b91af"&gt;PropertyData&lt;/span&gt;[] data, &lt;span style="color: blue"&gt;string &lt;/span&gt;columnName)&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: green"&gt;//Delimit properties with a semi-colon or comma.&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: blue"&gt;string &lt;/span&gt;returnValue = &lt;span style="color: blue"&gt;string&lt;/span&gt;.Empty;&lt;br /&gt;            &lt;span style="color: blue"&gt;try&lt;br /&gt;            &lt;/span&gt;{&lt;br /&gt;                returnValue = &lt;span style="color: blue"&gt;string&lt;/span&gt;.Join(&lt;span style="color: #a31515"&gt;"; "&lt;/span&gt;,&lt;br /&gt;                (&lt;span style="color: blue"&gt;from &lt;/span&gt;v &lt;span style="color: blue"&gt;in&lt;br /&gt;                     &lt;/span&gt;((&lt;span style="color: #2b91af"&gt;PropertyData&lt;/span&gt;)data.Where(x =&amp;gt; x.Name == columnName).Single()).Values&lt;br /&gt;                 &lt;span style="color: blue"&gt;select &lt;/span&gt;v.Value.ToString()).ToArray());&lt;br /&gt;            }&lt;br /&gt;            &lt;span style="color: blue"&gt;catch &lt;/span&gt;(&lt;span style="color: #2b91af"&gt;Exception &lt;/span&gt;ex)&lt;br /&gt;            {&lt;br /&gt;&lt;br /&gt;            }&lt;br /&gt;            &lt;span style="color: blue"&gt;return &lt;/span&gt;returnValue;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3280948321129906341-4047332450695105610?l=johnlivingstontech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johnlivingstontech.blogspot.com/feeds/4047332450695105610/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://johnlivingstontech.blogspot.com/2011/01/use-sharepoint-web-services-to-export.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3280948321129906341/posts/default/4047332450695105610'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3280948321129906341/posts/default/4047332450695105610'/><link rel='alternate' type='text/html' href='http://johnlivingstontech.blogspot.com/2011/01/use-sharepoint-web-services-to-export.html' title='Use SharePoint Web Services to export all User Profile data to CSV'/><author><name>john.livingston</name><uri>http://www.blogger.com/profile/15046544302781486569</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_MMTaYTUqqA8/S_wm4ecIT6I/AAAAAAAACNM/UwxxaWdJLxY/S220/4283_90775887584_507792584_1737866_2361093_n.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3280948321129906341.post-8413317279044954431</id><published>2011-01-17T12:47:00.001-08:00</published><updated>2011-01-17T13:01:45.104-08:00</updated><title type='text'>Use PowerShell to easily disable or enable SharePoint Publishing site workflows, moderation, and checkout</title><content type='html'> &lt;p&gt;SharePoint Publishing Sites are strict by their very nature and have a number of security controls enabled by default such as approval workflows, moderation, and checkout. Obviously these features are important and are there for good reason, but they also have the potential to slow down the development and even the deployment process. Oftentimes you need to be able easily edit a masterpage or add a bunch of sample documents for testing. While you can disable workflows, moderation, and checkout through the user interface, it’s not something you can do very quickly, especially if you need it done recursively. The following script makes this much easier and allows you to disable or re-enable all of these features. &lt;/p&gt; &lt;h4&gt;Steps&lt;/h4&gt; &lt;ol&gt; &lt;li&gt;Copy the following in Notepad.&lt;/li&gt; &lt;li&gt;Update the last function $siteUrl and $webUrls variables.&lt;/li&gt; &lt;ul&gt; &lt;li&gt;$siteUrl – This is the site collection URL. For example, &lt;a href="http://portalname"&gt;http://portalname&lt;/a&gt;&lt;/li&gt; &lt;li&gt;$webUrls – This is an array that you can use target subsites. For example, in the case of a Departments subsite with HR, IT, and Marketing subsites: "/dep", "/dep/hr","/dep/it","/dep/mkt"&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Toggle between $true and $false statements at the bottom of the script to disable or enable. You could also create two separate scripts.&lt;/li&gt; &lt;li&gt;Save the file as a “.ps1” file.&lt;/li&gt; &lt;li&gt; Run as an Administrator on your SharePoint environment.&lt;/li&gt;&lt;/ol&gt; &lt;h4&gt;Source Code&lt;/h4&gt;&lt;pre class="csharpcode"&gt;function RemoveApprovalWorkflow($siteUrl, $webUrl, $listName, $workFlowName)&lt;br /&gt;{&lt;br /&gt;    $site = Get-SPSite $siteUrl&lt;br /&gt;    &lt;span class="kwrd"&gt;try&lt;/span&gt;&lt;br /&gt;    {&lt;br /&gt;        $web = $site.OpenWeb($webUrl)&lt;br /&gt;        &lt;span class="kwrd"&gt;try&lt;/span&gt;&lt;br /&gt;        {        &lt;br /&gt;            $list = $web.Lists[$listName]&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt;(!($list -eq $&lt;span class="kwrd"&gt;null&lt;/span&gt;))&lt;br /&gt;            {&lt;br /&gt;                $wa = $list.WorkflowAssociations.GetAssociationByName($workFlowName, [System.Globalization.CultureInfo]::CurrentCulture)    &lt;br /&gt;                &lt;span class="kwrd"&gt;if&lt;/span&gt;(!($wa -eq $&lt;span class="kwrd"&gt;null&lt;/span&gt;))&lt;br /&gt;                {    &lt;br /&gt;                    Write-Host &lt;span class="str"&gt;"Removing "&lt;/span&gt; $wa.Name &lt;span class="str"&gt;" from "&lt;/span&gt; $listName&lt;br /&gt;                    $list.WorkflowAssociations.Remove($wa)&lt;br /&gt;                }    &lt;br /&gt;            }                &lt;br /&gt;        }&lt;br /&gt;        &lt;span class="kwrd"&gt;finally&lt;/span&gt;&lt;br /&gt;        {&lt;br /&gt;            $web.Dispose()&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;    &lt;span class="kwrd"&gt;finally&lt;/span&gt;&lt;br /&gt;    {&lt;br /&gt;        $site.Dispose()&lt;br /&gt;    }&lt;br /&gt;    Write-Host &lt;span class="str"&gt;"Finished Removing Workflow "&lt;/span&gt;$workFlowName&lt;span class="str"&gt;" from "&lt;/span&gt;$siteUrl$webUrl&lt;span class="str"&gt;"/"&lt;/span&gt;$listName&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function AddApprovalWorkflow($siteUrl, $webUrl, $listName, $workflowTemplateName, $workflowName, $workflowTaskName, $workflowHistoryName)&lt;br /&gt;{&lt;br /&gt;    $site = Get-SPSite $siteUrl&lt;br /&gt;    &lt;span class="kwrd"&gt;try&lt;/span&gt;&lt;br /&gt;    {&lt;br /&gt;        $web = $site.OpenWeb($webUrl)&lt;br /&gt;        &lt;span class="kwrd"&gt;try&lt;/span&gt;&lt;br /&gt;        {        &lt;br /&gt;            $list = $web.Lists[$listName]&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt;(!($list -eq $&lt;span class="kwrd"&gt;null&lt;/span&gt;))&lt;br /&gt;            {&lt;br /&gt;                $wfTemp = $web.WorkflowTemplates.GetTemplateByName($workflowTemplateName, [System.Globalization.CultureInfo]::CurrentCulture);&lt;br /&gt;                $wf = [Microsoft.SharePoint.Workflow.SPWorkflowAssociation]::CreateListAssociation($wfTemp, $workflowName, $web.Lists[$workflowTaskName], $web.Lists[$workflowHistoryName]);&lt;br /&gt;                $list.WorkflowAssociations.Add($wf)&lt;br /&gt;                $list.DefaultContentApprovalWorkflowId = $wf.Id&lt;br /&gt;                $list.Update()&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        &lt;span class="kwrd"&gt;finally&lt;/span&gt;&lt;br /&gt;        {&lt;br /&gt;            $web.Dispose()&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;    &lt;span class="kwrd"&gt;finally&lt;/span&gt;&lt;br /&gt;    {&lt;br /&gt;        $site.Dispose()&lt;br /&gt;    }&lt;br /&gt;    Write-Host &lt;span class="str"&gt;"Finished Adding Workflow "&lt;/span&gt;$workflowTemplateName&lt;span class="str"&gt;" to "&lt;/span&gt;$siteUrl$webUrl&lt;span class="str"&gt;"/"&lt;/span&gt;$listName&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function EnableMasterPageModerationCheckout($siteUrl, $enable)&lt;br /&gt;{&lt;br /&gt;    $site = Get-SPSite $siteUrl&lt;br /&gt;    &lt;span class="kwrd"&gt;try&lt;/span&gt;&lt;br /&gt;    {        &lt;br /&gt;        $list = $site.GetCatalog([Microsoft.SharePoint.SPListTemplateType]::MasterPageCatalog)&lt;br /&gt;        $list.EnableModeration = $enable&lt;br /&gt;        $list.ForceCheckout = $enable&lt;br /&gt;        $list.Update()&lt;br /&gt;        Write-Host &lt;span class="str"&gt;"MasterPage Moderation and Checkout on "&lt;/span&gt;$siteUrl&lt;span class="str"&gt;" set to "&lt;/span&gt;$enable&lt;br /&gt;    }&lt;br /&gt;    &lt;span class="kwrd"&gt;finally&lt;/span&gt;&lt;br /&gt;    {&lt;br /&gt;        $site.Dispose()&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function EnablePublishingWorkflowsModeration($enable)&lt;br /&gt;{&lt;br /&gt;    $siteUrl = &lt;span class="str"&gt;&lt;a href="http://portalurl"&gt;http://portalurl&lt;/a&gt; &lt;font color="#008040"&gt;#CHANGE VARIABLE&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;    $webUrls = @(&lt;span class="str"&gt;"/dep"&lt;/span&gt;, &lt;span class="str"&gt;"/dep/hr"&lt;/span&gt;,&lt;span class="str"&gt;"/dep/it"&lt;/span&gt;,&lt;span class="str"&gt;"/dep/mkt"&lt;/span&gt;) &lt;span class="str"&gt;&lt;font color="#008040"&gt;#CHANGE VARIABLE&lt;/font&gt;&lt;/span&gt; &lt;br /&gt;    $listNames = @(&lt;span class="str"&gt;"Pages"&lt;/span&gt;, &lt;span class="str"&gt;"Documents"&lt;/span&gt;, &lt;span class="str"&gt;"Images"&lt;/span&gt;) #Publishing Site Default Lists&lt;br /&gt;    EnableMasterPageModerationCheckout $siteUrl $enable&lt;br /&gt;    &lt;span class="kwrd"&gt;foreach&lt;/span&gt;($webUrl &lt;span class="kwrd"&gt;in&lt;/span&gt; $webUrls)&lt;br /&gt;    {&lt;br /&gt;        EnableMasterPageModerationCheckout $siteUrl $enable            &lt;br /&gt;        &lt;span class="kwrd"&gt;foreach&lt;/span&gt;($listName &lt;span class="kwrd"&gt;in&lt;/span&gt; $listNames)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt;($enable)&lt;br /&gt;            {&lt;br /&gt;                AddApprovalWorkflow $siteUrl $webUrl $listName &lt;span class="str"&gt;"Publishing Approval"&lt;/span&gt; &lt;span class="str"&gt;"Page Approval"&lt;/span&gt; &lt;span class="str"&gt;"Workflow Tasks"&lt;/span&gt; &lt;span class="str"&gt;"Workflow History"&lt;/span&gt;    &lt;br /&gt;            }&lt;br /&gt;            &lt;span class="kwrd"&gt;else&lt;/span&gt;&lt;br /&gt;            {&lt;br /&gt;                RemoveApprovalWorkflow $siteUrl $webUrl $listName &lt;span class="str"&gt;"Page Approval"&lt;/span&gt;&lt;br /&gt;            }        &lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;EnablePublishingWorkflowsModeration $false&lt;br&gt;&lt;font color="#008040"&gt;#EnablePublishingWorkflowsModeration $true #Comment / UnComment&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;br /&gt;&lt;/style&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&amp;nbsp;&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;br /&gt;&lt;/style&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3280948321129906341-8413317279044954431?l=johnlivingstontech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johnlivingstontech.blogspot.com/feeds/8413317279044954431/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://johnlivingstontech.blogspot.com/2011/01/use-powershell-to-easily-disable-or.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3280948321129906341/posts/default/8413317279044954431'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3280948321129906341/posts/default/8413317279044954431'/><link rel='alternate' type='text/html' href='http://johnlivingstontech.blogspot.com/2011/01/use-powershell-to-easily-disable-or.html' title='Use PowerShell to easily disable or enable SharePoint Publishing site workflows, moderation, and checkout'/><author><name>john.livingston</name><uri>http://www.blogger.com/profile/15046544302781486569</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_MMTaYTUqqA8/S_wm4ecIT6I/AAAAAAAACNM/UwxxaWdJLxY/S220/4283_90775887584_507792584_1737866_2361093_n.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3280948321129906341.post-4292361342236545393</id><published>2011-01-11T15:19:00.000-08:00</published><updated>2011-01-11T15:33:14.979-08:00</updated><title type='text'>SharePoint SPRegionalSettings.GlobalTimeZones ID List</title><content type='html'>I couldn't find a reference for this anywhere, so decided to create my own.&lt;br /&gt;&lt;br /&gt;&lt;table border="1" style="border:1px solid black" cellpadding="5" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;ID&lt;/td&gt;&lt;td&gt;Description&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;(UTC) Greenwich Mean Time : Dublin, Edinburgh, Lisbon, London&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;(UTC+01:00) Brussels, Copenhagen, Madrid, Paris&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;(UTC+02:00) Athens, Bucharest, Istanbul&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;6&lt;/td&gt;&lt;td&gt;(UTC+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;7&lt;/td&gt;&lt;td&gt;(UTC+02:00) Minsk&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;(UTC-03:00) Brasilia&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;9&lt;/td&gt;&lt;td&gt;(UTC-04:00) Atlantic Time (Canada)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;10&lt;/td&gt;&lt;td&gt;(UTC-05:00) Eastern Time (US and Canada)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11&lt;/td&gt;&lt;td&gt;(UTC-06:00) Central Time (US and Canada)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;12&lt;/td&gt;&lt;td&gt;(UTC-07:00) Mountain Time (US and Canada)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;13&lt;/td&gt;&lt;td&gt;(UTC-08:00) Pacific Time (US and Canada)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;14&lt;/td&gt;&lt;td&gt;(UTC-09:00) Alaska&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;15&lt;/td&gt;&lt;td&gt;(UTC-10:00) Hawaii&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;16&lt;/td&gt;&lt;td&gt;(UTC-11:00) Midway Island, Samoa&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;17&lt;/td&gt;&lt;td&gt;(UTC+12:00) Auckland, Wellington&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;18&lt;/td&gt;&lt;td&gt;(UTC+10:00) Brisbane&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;19&lt;/td&gt;&lt;td&gt;(UTC+09:30) Adelaide&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;20&lt;/td&gt;&lt;td&gt;(UTC+09:00) Osaka, Sapporo, Tokyo&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;21&lt;/td&gt;&lt;td&gt;(UTC+08:00) Kuala Lumpur, Singapore&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;22&lt;/td&gt;&lt;td&gt;(UTC+07:00) Bangkok, Hanoi, Jakarta&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;23&lt;/td&gt;&lt;td&gt;(UTC+05:30) Chennai, Kolkata, Mumbai, New Delhi&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;24&lt;/td&gt;&lt;td&gt;(UTC+04:00) Abu Dhabi, Muscat&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;25&lt;/td&gt;&lt;td&gt;(UTC+03:30) Tehran&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;26&lt;/td&gt;&lt;td&gt;(UTC+03:00) Baghdad&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;27&lt;/td&gt;&lt;td&gt;(UTC+02:00) Jerusalem&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;28&lt;/td&gt;&lt;td&gt;(UTC-03:30) Newfoundland and Labrador&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;29&lt;/td&gt;&lt;td&gt;(UTC-01:00) Azores&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;30&lt;/td&gt;&lt;td&gt;(UTC-02:00) Mid-Atlantic&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;31&lt;/td&gt;&lt;td&gt;(UTC) Monrovia, Reykjavik&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;32&lt;/td&gt;&lt;td&gt;(UTC-03:00) Cayenne&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;33&lt;/td&gt;&lt;td&gt;(UTC-04:00) Georgetown, La Paz, San Juan&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;34&lt;/td&gt;&lt;td&gt;(UTC-05:00) Indiana (East)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;35&lt;/td&gt;&lt;td&gt;(UTC-05:00) Bogota, Lima, Quito&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;36&lt;/td&gt;&lt;td&gt;(UTC-06:00) Saskatchewan&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;37&lt;/td&gt;&lt;td&gt;(UTC-06:00) Guadalajara, Mexico City, Monterrey&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;38&lt;/td&gt;&lt;td&gt;(UTC-07:00) Arizona&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;39&lt;/td&gt;&lt;td&gt;(UTC-12:00) International Date Line West&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;40&lt;/td&gt;&lt;td&gt;(UTC+12:00) Fiji Is., Marshall Is.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;41&lt;/td&gt;&lt;td&gt;(UTC+11:00) Magadan, Solomon Is., New Caledonia&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;42&lt;/td&gt;&lt;td&gt;(UTC+10:00) Hobart&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;43&lt;/td&gt;&lt;td&gt;(UTC+10:00) Guam, Port Moresby&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;44&lt;/td&gt;&lt;td&gt;(UTC+09:30) Darwin&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;45&lt;/td&gt;&lt;td&gt;(UTC+08:00) Beijing, Chongqing, Hong Kong S.A.R., Urumqi&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;46&lt;/td&gt;&lt;td&gt;(UTC+06:00) Novosibirsk&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;47&lt;/td&gt;&lt;td&gt;(UTC+05:00) Tashkent&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;48&lt;/td&gt;&lt;td&gt;(UTC+04:30) Kabul&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;49&lt;/td&gt;&lt;td&gt;(UTC+02:00) Cairo&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;50&lt;/td&gt;&lt;td&gt;(UTC+02:00) Harare, Pretoria&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;51&lt;/td&gt;&lt;td&gt;(UTC+03:00) Moscow, St. Petersburg, Volgograd&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;53&lt;/td&gt;&lt;td&gt;(UTC-01:00) Cape Verde Is.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;54&lt;/td&gt;&lt;td&gt;(UTC+04:00) Baku&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;55&lt;/td&gt;&lt;td&gt;(UTC-06:00) Central America&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;56&lt;/td&gt;&lt;td&gt;(UTC+03:00) Nairobi&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;57&lt;/td&gt;&lt;td&gt;(UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;58&lt;/td&gt;&lt;td&gt;(UTC+05:00) Ekaterinburg&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;59&lt;/td&gt;&lt;td&gt;(UTC+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;60&lt;/td&gt;&lt;td&gt;(UTC-03:00) Greenland&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;61&lt;/td&gt;&lt;td&gt;(UTC+06:30) Yangon (Rangoon)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;62&lt;/td&gt;&lt;td&gt;(UTC+05:45) Kathmandu&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;63&lt;/td&gt;&lt;td&gt;(UTC+08:00) Irkutsk&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;64&lt;/td&gt;&lt;td&gt;(UTC+07:00) Krasnoyarsk&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;65&lt;/td&gt;&lt;td&gt;(UTC-04:00) Santiago&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;66&lt;/td&gt;&lt;td&gt;(UTC+05:30) Sri Jayawardenepura&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;67&lt;/td&gt;&lt;td&gt;(UTC+13:00) Nuku'alofa&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;68&lt;/td&gt;&lt;td&gt;(UTC+10:00) Vladivostok&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;69&lt;/td&gt;&lt;td&gt;(UTC+01:00) West Central Africa&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;70&lt;/td&gt;&lt;td&gt;(UTC+09:00) Yakutsk&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;71&lt;/td&gt;&lt;td&gt;(UTC+06:00) Astana, Dhaka&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;72&lt;/td&gt;&lt;td&gt;(UTC+09:00) Seoul&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;73&lt;/td&gt;&lt;td&gt;(UTC+08:00) Perth&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;74&lt;/td&gt;&lt;td&gt;(UTC+03:00) Kuwait, Riyadh&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;75&lt;/td&gt;&lt;td&gt;(UTC+08:00) Taipei&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;76&lt;/td&gt;&lt;td&gt;(UTC+10:00) Canberra, Melbourne, Sydney&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;77&lt;/td&gt;&lt;td&gt;(UTC-07:00) Chihuahua, La Paz, Mazatlan&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;78&lt;/td&gt;&lt;td&gt;(UTC-08:00) Tijuana, Baja California&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;79&lt;/td&gt;&lt;td&gt;(UTC+02:00) Amman&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;80&lt;/td&gt;&lt;td&gt;(UTC+02:00) Beirut&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;81&lt;/td&gt;&lt;td&gt;(UTC-04:00) Manaus&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;82&lt;/td&gt;&lt;td&gt;(UTC+04:00) Tbilisi&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;83&lt;/td&gt;&lt;td&gt;(UTC+02:00) Windhoek&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;84&lt;/td&gt;&lt;td&gt;(UTC+04:00) Yerevan&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;85&lt;/td&gt;&lt;td&gt;(UTC-03:00) Buenos Aires&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;86&lt;/td&gt;&lt;td&gt;(UTC) Casablanca&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;87&lt;/td&gt;&lt;td&gt;(UTC+05:00) Islamabad, Karachi&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;88&lt;/td&gt;&lt;td&gt;(UTC-04:30) Caracas&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;89&lt;/td&gt;&lt;td&gt;(UTC+04:00) Port Louis&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;90&lt;/td&gt;&lt;td&gt;(UTC-03:00) Montevideo&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;91&lt;/td&gt;&lt;td&gt;(UTC-04:00) Asuncion&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;92&lt;/td&gt;&lt;td&gt;(UTC+12:00) Petropavlovsk-Kamchatsky&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;93&lt;/td&gt;&lt;td&gt;(UTC) Coordinated Universal Time&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;94&lt;/td&gt;&lt;td&gt;(UTC+08:00) Ulaanbaatar&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;div&gt;&lt;div&gt;&lt;b&gt;Source Code&lt;/b&gt;&lt;/div&gt;&lt;div&gt;using System;&lt;/div&gt;&lt;div&gt;using System.Collections.Generic;&lt;/div&gt;&lt;div&gt;using System.Linq;&lt;/div&gt;&lt;div&gt;using Microsoft.SharePoint;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;namespace ConsoleApplication1&lt;/div&gt;&lt;div&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;class Program&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;static void Main(string[] args)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;SPTimeZoneCollection timeZones = SPRegionalSettings.GlobalTimeZones;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;Dictionary&lt;ushort,&gt; timeZoneList = new Dictionary&lt;ushort,&gt;();&lt;/ushort,&gt;&lt;/ushort,&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;Console.WriteLine("\r\nSharePoint Global Time Zones");&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;foreach (SPTimeZone timeZone in timeZones)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;timeZoneList.Add(timeZone.ID, timeZone.Description);    &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;foreach (KeyValuePair&lt;ushort,&gt; time in timeZoneList.OrderBy(x =&gt; x.Key))&lt;/ushort,&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;Console.WriteLine(time.Key.ToString() + "\t" + time.Value);&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;Console.WriteLine("\r\nHTML Format");&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;foreach (KeyValuePair&lt;ushort,&gt; time in timeZoneList.OrderBy(x =&gt; x.Key))&lt;/ushort,&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;Console.WriteLine("" + time.Key.ToString() + "" + time.Value + "");&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;Console.Read();&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;References&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Segoe UI', Verdana, Arial; font-weight: normal; "&gt;&lt;h1 class="title" style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; font-family: 'Segoe UI', Verdana, Arial; color: rgb(63, 82, 156); font-weight: bold; font-style: normal; font-variant: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" &gt;&lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spregionalsettings.globaltimezones.aspx"&gt;SPRegionalSettings&lt;span xmlns=""&gt;.&lt;/span&gt;GlobalTimeZones Property&lt;/a&gt;&lt;/span&gt;&lt;/h1&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3280948321129906341-4292361342236545393?l=johnlivingstontech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johnlivingstontech.blogspot.com/feeds/4292361342236545393/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://johnlivingstontech.blogspot.com/2011/01/sharepoint-spregionalsettingsglobaltime.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3280948321129906341/posts/default/4292361342236545393'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3280948321129906341/posts/default/4292361342236545393'/><link rel='alternate' type='text/html' href='http://johnlivingstontech.blogspot.com/2011/01/sharepoint-spregionalsettingsglobaltime.html' title='SharePoint SPRegionalSettings.GlobalTimeZones ID List'/><author><name>john.livingston</name><uri>http://www.blogger.com/profile/15046544302781486569</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_MMTaYTUqqA8/S_wm4ecIT6I/AAAAAAAACNM/UwxxaWdJLxY/S220/4283_90775887584_507792584_1737866_2361093_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3280948321129906341.post-2490707653465824008</id><published>2011-01-08T07:47:00.001-08:00</published><updated>2011-01-08T07:51:18.956-08:00</updated><title type='text'>Learn Japanese Kanji 常用漢字 with Microsoft Pivot Viewer</title><content type='html'>&lt;div&gt;As a lifetime student of Japanese, I have always been interested in different ways to study and learn Japanese Kanji. Through the years the Japanese Ministry of Education has maintained a list of "jōyō kanji" or standard Chinese characters that were expected for students to learn through the years. Since 1981 this list was 1,945 characters, but in 2009 they added more characters and they now total a whopping 2,136. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Needless to say, learning these is is a huge undertaking and is especially daunting to non-native speakers. Although some characters can be easily identified as more ideographical in nature and contain concrete meanings (木 for tree), most characters are not and contain more abstract ideas or are only used in names. Unlike Chinese character readings, Japanese characters can also have multiple readings and maintain a separate reading called "on" (音) for the Chinese historical reading and "kun" (訓) for the Japanese reading . These readings can also change based on where they are used within a character compound or historical context. In fact, there are some characters that are not Chinese and were invented natively by the Japanese. One interesting example is the word "work" (働く). Besides all of this, there is also number of strokes and stroke order to worry about. Characters are written in a particular way and there are things like trailing strokes that must adhere to specific tools.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The beauty of the PivotViewer tool is that it allows you to slice and dice these characters in different ways. From an academic perspective it can be interesting to see things like how many characters contain a certain amount of strokes or how many are learned in the 3rd grade. Keep in mind takes a little time to load the tool the first time. Once you start using it, it will speed up.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Glossary&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;学年 - Scholastic year or year that the character is learned in school. 中高 means that the character is learned in middle or high school.&lt;/li&gt;&lt;li&gt;画 - Number of strokes&lt;/li&gt;&lt;li&gt;英語 - English description&lt;/li&gt;&lt;li&gt;音読み - Onyomi or Chinese reading.&lt;/li&gt;&lt;li&gt;訓読み - Kunyomi or Japanese reading.&lt;/li&gt;&lt;li&gt;音読みローマ字 - Romanized onyomi rendering.&lt;/li&gt;&lt;li&gt;訓読みローマ字 - Romanized kunyomi rendering&lt;/li&gt;&lt;li&gt;音読み印引き - Onyomi index&lt;/li&gt;&lt;li&gt;訓読み印引き - Kunyomi index&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;br /&gt;&lt;iframe width="900" height="500" src="http://dl.dropbox.com/u/2600957/Projects/Silverlight/JoyoKanji/PivotViewerTestTestPage.html"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;b&gt;References&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Pivot Viewer&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.silverlight.net/learn/pivotviewer/"&gt;http://www.silverlight.net/learn/pivotviewer/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;Jōyō Kanji &lt;/b&gt;- All of the information was taken from Wikipedia. I had to do some serious formatting to create a Pivot Collection.&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/J%C5%8Dy%C5%8D_kanji"&gt;http://en.wikipedia.org/wiki/J%C5%8Dy%C5%8D_kanji&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Epson Fonts&lt;/b&gt; - I used EPSON太行書体B&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.i-love-epson.co.jp/download2/printer/driver/win/page/ttf30.htm"&gt;http://www.i-love-epson.co.jp/download2/printer/driver/win/page/ttf30.htm&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Fun Fact&lt;/b&gt;&lt;/div&gt;&lt;div&gt;I use Microsoft, Google, and Amazon technologies for this page. Microsoft for PivotViewer, Google for Blogspot, and Amazon for hosting the xap and cxml files (DropBox uses Amazon cloud services).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Screenshot&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_MMTaYTUqqA8/TSiHx8M3q5I/AAAAAAAACrk/eUmVKzabWeo/s1600/Untitled.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 224px;" src="http://1.bp.blogspot.com/_MMTaYTUqqA8/TSiHx8M3q5I/AAAAAAAACrk/eUmVKzabWeo/s400/Untitled.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5559843032032324498" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3280948321129906341-2490707653465824008?l=johnlivingstontech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johnlivingstontech.blogspot.com/feeds/2490707653465824008/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://johnlivingstontech.blogspot.com/2011/01/learn-japanese-kanji-with-microsoft.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3280948321129906341/posts/default/2490707653465824008'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3280948321129906341/posts/default/2490707653465824008'/><link rel='alternate' type='text/html' href='http://johnlivingstontech.blogspot.com/2011/01/learn-japanese-kanji-with-microsoft.html' title='Learn Japanese Kanji 常用漢字 with Microsoft Pivot Viewer'/><author><name>john.livingston</name><uri>http://www.blogger.com/profile/15046544302781486569</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_MMTaYTUqqA8/S_wm4ecIT6I/AAAAAAAACNM/UwxxaWdJLxY/S220/4283_90775887584_507792584_1737866_2361093_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_MMTaYTUqqA8/TSiHx8M3q5I/AAAAAAAACrk/eUmVKzabWeo/s72-c/Untitled.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3280948321129906341.post-4138987550566735409</id><published>2011-01-04T17:15:00.001-08:00</published><updated>2011-01-04T17:15:56.017-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='Silverlight'/><title type='text'>SharePoint 2007 / 2010 - Silverlight Slide Show Web Part for Images and Videos</title><content type='html'>&lt;h4&gt;&lt;font color="#4f81bd" size="3"&gt;&lt;font color="#000000"&gt;&lt;font style="font-weight: normal"&gt;For those familiar with SharePoint 2007, you know that a slide show web part is nonexistent and in order to get this functionality you would either have to resort to a 3rd party web part or do some custom web part development. SharePoint 2010 does provide some out of the box web parts like the Picture Library Slide Show Web Part and the Media Web Part, however these do have limitations. Neither provide the ability for albums, the ability to mix video and images, or full screen functionality. The Media Web Part also only allows a single video to be embedded. Furthermore, getting the web part’s width and heights properties to render properly can be challenging. This web part mitigates all of these issues and provides the following functionality:&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/h4&gt;&lt;font color="#4f81bd" size="3"&gt;&lt;font color="#000000"&gt;&lt;font style="font-weight: normal"&gt; &lt;ul&gt; &lt;ul&gt; &lt;li&gt;&lt;font color="#000000"&gt;&lt;strong&gt;Web Part Configuration&lt;/strong&gt; – Using out of the box SharePoint functionality, you can simply add this web part to a web part zone. The web part properties are context sensitive and will display appropriate SharePoint webs and Picture Libraries and Asset Libraries that can be used for the slide show.&lt;/font&gt;&lt;/li&gt; &lt;li&gt;&lt;font color="#000000"&gt;&lt;strong&gt;Mixed Media &lt;/strong&gt;– This slide show web part allows video and/or images within slide shows. &lt;/font&gt;&lt;/li&gt; &lt;li&gt;&lt;font color="#000000"&gt;&lt;strong&gt;Album View&lt;/strong&gt;– An album view allows you to create multiple albums within the slide show. Albums are based on the SharePoint library’s root level folders.&lt;/font&gt;&lt;/li&gt; &lt;li&gt;&lt;font color="#000000"&gt;&lt;strong&gt;SharePoint 2007 and 2010 Compatible &lt;/strong&gt;– I have created two projects since each platform has different deployment requirements and other subtle differences.&lt;/font&gt;&lt;/li&gt; &lt;li&gt;&lt;font color="#000000"&gt;&lt;strong&gt;Embed Slide Show &lt;/strong&gt;– If you have non SharePoint web pages, the slide show has a feature that allows you to easily copy and paste HTML code to be used for embedding in other web sites. &lt;/font&gt;&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Full Screen Mode&lt;/strong&gt; – Any slide show can be viewed in full screen mode simply by clicking a button on the web part.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Other&lt;/strong&gt; – For a full list of slide show features, see the Slide.Show link in References below.&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/font&gt;&lt;/font&gt; &lt;h4&gt;Acknowledgements&lt;/h4&gt; &lt;p&gt;&lt;font color="#000000"&gt;&lt;strong&gt;&lt;/strong&gt;This web part was based on the popular and open source Vertigo Slide.Show project in CodePlex, which also has an XML and Flickr data provider. All images used within the screenshots below can be found within the CodePlex source code. For the SharePoint data provider code, I made just a few changes to the code provided in Mathew McDermott’s blog post on the subject. See References below for more details.&lt;/font&gt;&lt;/p&gt; &lt;h4&gt;Installation Overview&lt;/h4&gt; &lt;p&gt;&lt;font color="#000000"&gt;I am not going to provide complete instructions here as both projects will use standard deployment steps, but I have outlined a few things that you should probably know. &lt;br&gt;&lt;br&gt;&lt;strong&gt;Visual Studio Solution and Projects&lt;/strong&gt;&lt;br&gt;&lt;br&gt;When you open either solution, you will see that there are three projects: Samples, SlideShow, and SharePoint20xx.CustomControls. The Samples and SlideShow projects are a customized versions of Vertigo’s Slide.Show CodePlex source code. The SlideShow project is the Silverlight project and has been changed to add the SPDataProvider code, remove some of the out of the box branding, and a few other minor changes. I have also created post build events that copy the XAP file to the SharePoint20xx.CustomControls project since this is used by the web part. In this project, the most important file is the SPDataProvider.cs file. If Vertigo provides an update to the CodePlex project, you could copy this over and rebuild the project. Just make sure that the XAP file makes it way into the Web Part project. The SharePoint20xx.CustomControls contains all of the Web Part specific information and deploys the XAP and a png file to the SharePoint hive within CONTROLTEMPLATES\SharePoint20xx.CustomControls directory. The XAP file contains all of the Silverlight code and the png file is used for video thumbnails. (SharePoint actually has one, but since it is a GIF file and thus unsupported by Silverlight.) You may also want to change things like the elements.xml file as I kept the name and group of the web part generic.&lt;br&gt;&lt;br&gt;&lt;strong&gt;Debugging&lt;/strong&gt;&lt;br&gt;&lt;br&gt;The best way to debug is to set the Samples project as your StartUp project and the default.html page in the SharePoint folder as your Start Page in Visual Studio. Be sure to open the default.html file first and change the Web and List parameters appropriately. In order to play with the XML data providers, you are also going to need to download the original CodePlex project and add the Samples project’s Assets folder. This has an excellent collection of Silverlight compatible images and videos, but I have removed them from the download as they took up too much space.&lt;br&gt;&lt;br&gt;&lt;strong&gt;Deployment&lt;/strong&gt;&lt;br&gt;&lt;br&gt;For either 2008 or 2010 projects, you can simply use STSADM and the WSP file. If you are a development machine, you can use WSPBuilder for 2008 or for 2010, Visual Studio 2010. The SharePoint 2008 source code utilizes Visual Studio 2008, WSPBuilder extensions, and Silverlight 2.0 development tools. You are welcome to use Silverlight 3.0 or 4.0 development tools as well, but will be prompted to upgrade the project. The SharePoint 2010 source code was developed in Visual Studio 2010 and Silverlight 4.0 development tools. Once you have deployed the feature, you will need to make sure it is activated on the site it has been deployed at. Once the feature has been activated, it can be added as a web part, by default under Custom Controls –&amp;gt; Silverlight Slide Show.&lt;/font&gt;&lt;/p&gt; &lt;h4&gt;&lt;font color="#000000" size="3"&gt;Silverlight / SharePoint Cross Domain Requirements – &lt;font color="#ff0000"&gt;IMPORTANT!&lt;/font&gt;&lt;/font&gt;&lt;/h4&gt; &lt;p&gt;&lt;font color="#000000"&gt;In order for Silverlight to access SharePoint web services (“Lists.asmx” in this case), you will need to create a file called clientaccesspolicy.xml and save it to the SharePoint wwwroot directory (C:\inetpub\wwwroot\wss\VirtualDirectories\80). You can find a copy of this in the Slide.Show Sample project or use the text below. See References below for more details.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#333333"&gt;&amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;&lt;br&gt;&amp;lt;access-policy&amp;gt;&lt;br&gt;&amp;nbsp; &amp;lt;cross-domain-access&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;policy&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;allow-from http-request-headers="*"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;domain uri="*"/&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/allow-from&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;grant-to&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;resource path="/" include-subpaths="true"/&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/grant-to&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/policy&amp;gt;&lt;br&gt;&amp;nbsp; &amp;lt;/cross-domain-access&amp;gt;&lt;br&gt;&amp;lt;/access-policy&amp;gt;&lt;/font&gt;&lt;/p&gt; &lt;h4&gt;&lt;b&gt;&lt;br&gt;Configuration&lt;/b&gt; &lt;/h4&gt; &lt;p&gt;&lt;font color="#000000"&gt;In order to use the web part, you will first need to create a SharePoint Picture Library where you will be storing your images and/or videos. If you are using SharePoint 2010, you can alternatively create an Asset Library. You can then add images and videos (wmv format) to the library. In order to create albums, you can create folders at the root level. The name of the folder will be the name of the web album respectively. You can also set the Title and Description as these will be used when you mouse over a slide. If you do not provide a Title and Description, the image path will be used. One other minor thing I noticed is that the Title and Description change as soon as the transition starts, so depending on how you set up your Wait Times and Transition durations, it may appear that the these values are wrong. Also, keep in mind that the web part will resize pictures based on the height and width you provide in the web part properties, so it is recommended that you use images of equal size and aspect ratio. In order to configure the web part, open the page in edit mode, click on Modify Shared Web Part from the Web Part Edit drop down. &lt;/font&gt;&lt;/p&gt; &lt;h4&gt;Supported Formats&lt;/h4&gt;&lt;br&gt; &lt;p&gt;&lt;font color="#000000"&gt;&lt;strong&gt;&lt;/strong&gt;Silverlight only accepts JPG and PNG for image formats and WMV for video formats. See MSDN References below for more details.&lt;/font&gt;&lt;/p&gt; &lt;h4&gt;Web Part Configuration Properties&lt;/h4&gt; &lt;ul&gt; &lt;li&gt;&lt;font color="#000000"&gt;&lt;strong&gt;Web&lt;/strong&gt; – This is used to filter the lists. &lt;/font&gt;&lt;/li&gt; &lt;li&gt;&lt;font color="#000000"&gt;&lt;strong&gt;List&lt;/strong&gt; – This is the Picture Library that will be used in the slide show.&lt;/font&gt;&lt;/li&gt; &lt;li&gt;&lt;font color="#000000"&gt;&lt;strong&gt;Width&lt;/strong&gt; – Image / Video width. Pictures and videos will be resized to fit this.&lt;/font&gt;&lt;/li&gt; &lt;li&gt;&lt;font color="#000000"&gt;&lt;strong&gt;Height&lt;/strong&gt; – Image / video height. Pictures and videos will be resized to fit this.&lt;/font&gt;&lt;/li&gt; &lt;li&gt;&lt;font color="#000000"&gt;&lt;strong&gt;Transition Duration&lt;/strong&gt; – Time in milliseconds that it takes to transition between slides.&lt;/font&gt;&lt;/li&gt; &lt;li&gt;&lt;font color="#000000"&gt;&lt;strong&gt;Wait Time&lt;/strong&gt; – Time in milliseconds that the slide stays in one place.&lt;/font&gt;&lt;/li&gt; &lt;li&gt;&lt;font color="#000000"&gt;&lt;strong&gt;Theme&lt;/strong&gt; – Theme to be used. Dark and Light are the only two themes.&lt;/font&gt;&lt;/li&gt; &lt;li&gt;&lt;font color="#000000"&gt;&lt;strong&gt;Transition Type&lt;/strong&gt; – These are the types of transitions that can be used between slides.&lt;/font&gt;&lt;/li&gt; &lt;li&gt;&lt;font color="#000000"&gt;&lt;strong&gt;Start In Album View&lt;/strong&gt; – This indicates whether or not you want the web part to default to album view.&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt; &lt;h4&gt;&amp;nbsp;&lt;/h4&gt; &lt;h4&gt;Web Part Properties&lt;/h4&gt; &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_MMTaYTUqqA8/TSPGM4I831I/AAAAAAAACq8/iVISzgRVDsM/s1600-h/Untitled%5B9%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Untitled" border="0" alt="Untitled" src="http://lh4.ggpht.com/_MMTaYTUqqA8/TSPGNTJrNXI/AAAAAAAACrA/fTdMGN6QCMU/Untitled_thumb%5B5%5D.png?imgmax=800" width="303" height="484"&gt;&lt;/a&gt;&lt;br&gt;&lt;font color="#000000"&gt;Based on the web you pick, the list will be populated with Picture Libraries and/or Asset Libraries.&lt;br&gt;&lt;/font&gt;&lt;br&gt;&lt;a href="http://lh4.ggpht.com/_MMTaYTUqqA8/TSPGNlSmsPI/AAAAAAAACrE/AEn2QLqcLmc/s1600-h/Untitled%5B16%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Untitled" border="0" alt="Untitled" src="http://lh6.ggpht.com/_MMTaYTUqqA8/TSPGNycf8JI/AAAAAAAACrI/NUSw3FChgMs/Untitled_thumb%5B10%5D.png?imgmax=800" width="302" height="107"&gt;&lt;/a&gt;&lt;/p&gt; &lt;h4&gt;Screenshots (SharePoint 2010)&lt;/h4&gt; &lt;p&gt;&lt;font color="#000000"&gt;Slide Show View&lt;/font&gt;&lt;br&gt;&lt;a href="http://lh3.ggpht.com/_MMTaYTUqqA8/TSPGPADT0MI/AAAAAAAACrM/qVMMGNQDwDk/s1600-h/Untitled%5B24%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Untitled" border="0" alt="Untitled" src="http://lh6.ggpht.com/_MMTaYTUqqA8/TSPGQJxqPzI/AAAAAAAACrQ/CoZH-4PJdw0/Untitled_thumb%5B14%5D.png?imgmax=800" width="644" height="462"&gt;&lt;/a&gt;&lt;br&gt;&lt;font color="#000000"&gt;Slide Show View – On Mouse Over&lt;br&gt;&lt;/font&gt;&lt;font color="#000000"&gt;Slide Show View – Mouse Hover&lt;br&gt;&lt;br&gt;&lt;/font&gt;&lt;a href="http://lh3.ggpht.com/_MMTaYTUqqA8/TSPGRLjXmGI/AAAAAAAACrU/7NPBitQvPRA/s1600-h/Untitled%5B5%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Untitled" border="0" alt="Untitled" src="http://lh5.ggpht.com/_MMTaYTUqqA8/TSPGR5umeHI/AAAAAAAACrY/uIA74palCJE/Untitled_thumb%5B3%5D.png?imgmax=800" width="644" height="459"&gt;&lt;/a&gt;&lt;br&gt;&lt;font color="#000000"&gt;&lt;br&gt;&lt;/font&gt;&lt;font color="#000000"&gt;Album View&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_MMTaYTUqqA8/TSPGSVYSEmI/AAAAAAAACrc/fVseGHu2OQA/s1600-h/Untitled%5B20%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Untitled" border="0" alt="Untitled" src="http://lh3.ggpht.com/_MMTaYTUqqA8/TSPGS3nkWsI/AAAAAAAACrg/fsHpmsX-FwE/Untitled_thumb%5B12%5D.png?imgmax=800" width="644" height="460"&gt;&lt;/a&gt;&lt;/p&gt; &lt;h4&gt;Source Code&lt;/h4&gt;&lt;br&gt;&lt;/font&gt;&lt;strong&gt;SkyDrive – SharePoint 2008 / SharePoint 2010&lt;br&gt;&lt;/strong&gt;&lt;a href="http://cid-a2379f7b2ea6f936.office.live.com/browse.aspx/Public/Projects/SharePoint/SharePoint%20SlideShow"&gt;http://cid-a2379f7b2ea6f936.office.live.com/browse.aspx/Public/Projects/SharePoint/SharePoint%20SlideShow&lt;/a&gt; &lt;h4&gt;&amp;nbsp;&lt;/h4&gt; &lt;h4&gt;References&lt;/h4&gt; &lt;p&gt;&lt;strong&gt;CodePlex – Vertigo Slide.Show –&lt;/strong&gt; Original Source Code for Samples and SlideShow projects. This is a great place for understanding the features and troubleshooting issues.&lt;br&gt;&lt;a href="http://slideshow.codeplex.com"&gt;http://slideshow.codeplex.com&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Building Blocks #1: Silverlight Slideshow Viewer for SharePoint&lt;/strong&gt;&amp;nbsp; - Matthew provided the original SPDataProvider class that I borrowed from heavily. &lt;br&gt;&lt;a href="http://www.ableblue.com/blog/archive/2010/03/08/building-blocks-1-silverlight-slideshow-viewer-for-sharepoint.aspx"&gt;http://www.ableblue.com/blog/archive/2010/03/08/building-blocks-1-silverlight-slideshow-viewer-for-sharepoint.aspx&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Supported Media Formats, Protocols, and Log Fields –&lt;/strong&gt; Silverlight compatible video formats&lt;br&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc189080(VS.95).aspx"&gt;http://msdn.microsoft.com/en-us/library/cc189080(VS.95).aspx&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;strong&gt;BitMap Image Class –&lt;/strong&gt; Silverlight compatible image formats&lt;br&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.media.imaging.bitmapimage(v=vs.95).aspx"&gt;http://msdn.microsoft.com/en-us/library/system.windows.media.imaging.bitmapimage(v=vs.95).aspx&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;strong&gt;Making a Service Available Across Domain Boundaries –&lt;/strong&gt; Information on clientaccesspolicy.xml. I also recommend Jesse Liberty and Tim Heuer’s blogs.&lt;br&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc197955(v=vs.95).aspx"&gt;http://msdn.microsoft.com/en-us/library/cc197955(v=vs.95).aspx&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;strong&gt;WSPBuilder –&lt;/strong&gt; Visual Studio Extension required by the SharePoint 2007 project.&lt;br&gt;&lt;a href="http://wspbuilder.codeplex.com"&gt;http://wspbuilder.codeplex.com&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3280948321129906341-4138987550566735409?l=johnlivingstontech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://johnlivingstontech.blogspot.com/feeds/4138987550566735409/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://johnlivingstontech.blogspot.com/2011/01/sharepoint-2007-2010-silverlight-slide.html#comment-form' title='13 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3280948321129906341/posts/default/4138987550566735409'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3280948321129906341/posts/default/4138987550566735409'/><link rel='alternate' type='text/html' href='http://johnlivingstontech.blogspot.com/2011/01/sharepoint-2007-2010-silverlight-slide.html' title='SharePoint 2007 / 2010 - Silverlight Slide Show Web Part for Images and Videos'/><author><name>john.livingston</name><uri>http://www.blogger.com/profile/15046544302781486569</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_MMTaYTUqqA8/S_wm4ecIT6I/AAAAAAAACNM/UwxxaWdJLxY/S220/4283_90775887584_507792584_1737866_2361093_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_MMTaYTUqqA8/TSPGNTJrNXI/AAAAAAAACrA/fTdMGN6QCMU/s72-c/Untitled_thumb%5B5%5D.png?imgmax=800' height='72' width='72'/><thr:total>13</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3280
