<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Vallery.net</title>
	<atom:link href="http://vallery.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://vallery.net</link>
	<description>personal homepage of Jason Vallery</description>
	<lastBuildDate>Sun, 05 Feb 2012 20:13:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Organizing lots of pictures</title>
		<link>http://vallery.net/2012/02/03/organizing-lots-of-pictures/</link>
		<comments>http://vallery.net/2012/02/03/organizing-lots-of-pictures/#comments</comments>
		<pubDate>Sat, 04 Feb 2012 06:36:02 +0000</pubDate>
		<dc:creator>jvallery</dc:creator>
				<category><![CDATA[Getting Things Done]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[duplicate file detection]]></category>
		<category><![CDATA[organization]]></category>

		<guid isPermaLink="false">http://vallery.net/?p=284</guid>
		<description><![CDATA[If you’re anything like me you’ve been taking digital pictures for a long time now.&#160;&#160; You’ve used various strategies and tools for organizing them over the years.&#160;&#160; You’ve gone through several computers and moved the files around countless times.&#160;&#160; Where does that leave you?&#160; With an unorganized mess. With library software like Picasa you can [...]]]></description>
			<content:encoded><![CDATA[<p>If you’re anything like me you’ve been taking digital pictures for a long time now.&#160;&#160; You’ve used various strategies and tools for organizing them over the years.&#160;&#160; You’ve gone through several computers and moved the files around countless times.&#160;&#160; Where does that leave you?&#160; With an unorganized mess.</p>
<p>With library software like Picasa you can import all of those pictures and you can have some semblance of organization by way of the user interface but it doesn’t really solve the problem at the core.&#160;&#160; The files are a mess.</p>
<p>I wanted to find a way to give a consistent filename to all of my pictures, organize them into folders based on the month and year they were taken, and remove duplicates.&#160;&#160; At first it sounded like a tall order as I couldn’t find any off the shelf tools to do this.&#160; Thankfully with just a little bit of time in Powershell I was able to put together a script that accomplished this for me.</p>
<p>&#160;</p>
<p>The script does the following:</p>
<ul>
<ul>
<li>Identify all of the existing pictures </li>
<li>Query the EXIF data </li>
<li>Calculate an MD5 has of the file </li>
<li>Create a new copy based on the data in a “staging” folder </li>
<li>Parse the new file name to get the MD5 and look for duplicates </li>
<li>Delete the duplicate version </li>
<li>Move the files to the YYYY\MM folders </li>
</ul>
</ul>
<p>&#160;</p>
<p>The first task of querying the EXIF data of files was actually the hardest.&#160;&#160; I found a couple of blog articles that touched on this.&#160;&#160; The synopsis is that you have to use the .NET System.Drawing DLL.&#160;&#160; We can use Get-ChildItem to recurse a directory structure looking for files of a specific type.&#160;&#160; For each file that we find we instantiate a new Bitmap object which contains the EXIF properties.&#160;&#160; We can extract and update these.&#160;&#160; I thought it might be useful to store the original path as a “Comment” in the EXIF in case it contained some relevant information that I later want to turn into a tag.</p>
<p>Below is the complete script.</p>
<pre><span style="color: #008000">#</span><span style="color: #008000">Load the .net System.Drawing assembly for examining the EXIF data of the pictures.</span><span style="color: #008000">
</span><span style="color: #000000">[</span><span style="color: #008080">reflection.assembly</span><span style="color: #000000">]::</span><span style="color: #8b4513">loadfile</span><span style="color: #000000">( </span><span style="color: #800000">&quot;</span><span style="color: #800000">C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Drawing.dll</span><span style="color: #800000">&quot;</span><span style="color: #000000">)

</span><span style="color: #008000">#</span><span style="color: #008000">Function to calculate the MD5 hash of a file</span><span style="color: #008000">
</span><span style="color: #0000ff">function</span><span style="color: #000000"> Get-MD5([</span><span style="color: #008080">System.IO.FileInfo</span><span style="color: #000000">] </span><span style="color: #800080">$file</span><span style="color: #000000"> </span><span style="color: #ff0000">=</span><span style="color: #000000"> $(</span><span style="color: #0000ff">throw</span><span style="color: #000000"> </span><span style="color: #800000">'</span><span style="color: #800000">Usage: Get-MD5 [System.IO.FileInfo]</span><span style="color: #800000">'</span><span style="color: #000000">))
{
    </span><span style="color: #008000">#</span><span style="color: #008000"> This Get-MD5 function sourced from:</span><span style="color: #008000">
</span><span style="color: #000000">    </span><span style="color: #008000">#</span><span style="color: #008000"> http://blogs.msdn.com/powershell/archive/2006/04/25/583225.aspx</span><span style="color: #008000">
</span><span style="color: #000000">    </span><span style="color: #800080">$stream</span><span style="color: #000000"> </span><span style="color: #ff0000">=</span><span style="color: #000000"> </span><span style="color: #800080">$null</span><span style="color: #000000">;
    </span><span style="color: #800080">$cryptoServiceProvider</span><span style="color: #000000"> </span><span style="color: #ff0000">=</span><span style="color: #000000"> [</span><span style="color: #008080">System.Security.Cryptography.MD5CryptoServiceProvider</span><span style="color: #000000">];
    </span><span style="color: #800080">$hashAlgorithm</span><span style="color: #000000"> </span><span style="color: #ff0000">=</span><span style="color: #000000"> </span><span style="color: #5f9ea0; font-weight: bold">new-object</span><span style="color: #000000"> </span><span style="color: #800080">$cryptoServiceProvider</span><span style="color: #000000">
    </span><span style="color: #800080">$stream</span><span style="color: #000000"> </span><span style="color: #ff0000">=</span><span style="color: #000000"> </span><span style="color: #800080">$file</span><span style="color: #000000">.OpenRead();
    </span><span style="color: #800080">$hashByteArray</span><span style="color: #000000"> </span><span style="color: #ff0000">=</span><span style="color: #000000"> </span><span style="color: #800080">$hashAlgorithm</span><span style="color: #000000">.ComputeHash(</span><span style="color: #800080">$stream</span><span style="color: #000000">);
    </span><span style="color: #800080">$stream</span><span style="color: #000000">.Close();

    </span><span style="color: #008000">#</span><span style="color: #008000"># We have to be sure that we close the file stream if any exceptions are thrown.</span><span style="color: #008000">
</span><span style="color: #000000">    </span><span style="color: #0000ff">trap</span><span style="color: #000000">
    {
        </span><span style="color: #0000ff">if</span><span style="color: #000000"> (</span><span style="color: #800080">$stream</span><span style="color: #000000"> </span><span style="color: #ff0000">-ne</span><span style="color: #000000"> </span><span style="color: #800080">$null</span><span style="color: #000000">) { </span><span style="color: #800080">$stream</span><span style="color: #000000">.Close(); }
        </span><span style="color: #0000ff">break</span><span style="color: #000000">;
    }

    </span><span style="color: #800080">$md5</span><span style="color: #000000"> </span><span style="color: #ff0000">=</span><span style="color: #000000"> </span><span style="color: #800000">&quot;&quot;</span><span style="color: #000000">
    </span><span style="color: #0000ff">foreach</span><span style="color: #000000"> (</span><span style="color: #800080">$byte</span><span style="color: #000000"> </span><span style="color: #0000ff">in</span><span style="color: #000000"> </span><span style="color: #800080">$hashByteArray</span><span style="color: #000000">)
      {
        </span><span style="color: #800080">$md5</span><span style="color: #000000"> </span><span style="color: #ff0000">=</span><span style="color: #000000"> </span><span style="color: #800080">$md5</span><span style="color: #000000"> </span><span style="color: #ff0000">+</span><span style="color: #000000"> </span><span style="color: #800080">$byte</span><span style="color: #000000">.ToString(</span><span style="color: #800000">&quot;</span><span style="color: #800000">X2</span><span style="color: #800000">&quot;</span><span style="color: #000000">);
      }
</span><span style="color: #0000ff">return</span><span style="color: #000000"> </span><span style="color: #800080">$md5</span><span style="color: #000000">;
}

</span><span style="color: #008000">#</span><span style="color: #008000">Figure out where we are at and if there is a subfolder called output.  If not we will create one.   This is where we will put all of our images.</span><span style="color: #008000">
</span><span style="color: #800080">$currdir</span><span style="color: #000000"> </span><span style="color: #ff0000">=</span><span style="color: #000000">  </span><span style="color: #5f9ea0; font-weight: bold">split-path</span><span style="color: #000000"> </span><span style="font-style: italic; color: #5f9ea0">-parent</span><span style="color: #000000"> </span><span style="color: #800080">$MyInvocation</span><span style="color: #000000">.MyCommand.Definition
</span><span style="color: #800080">$outputdir</span><span style="color: #000000"> </span><span style="color: #ff0000">=</span><span style="color: #000000"> </span><span style="color: #800080">$currdir</span><span style="color: #000000"> </span><span style="color: #ff0000">+</span><span style="color: #000000"> </span><span style="color: #800000">&quot;</span><span style="color: #800000">\output\</span><span style="color: #800000">&quot;</span><span style="color: #000000">

</span><span style="color: #0000ff">if</span><span style="color: #000000"> (</span><span style="color: #ff0000">!</span><span style="color: #000000">(</span><span style="color: #5f9ea0; font-weight: bold">Test-Path</span><span style="color: #000000"> </span><span style="font-style: italic; color: #5f9ea0">-path</span><span style="color: #000000"> </span><span style="color: #800080">$outputdir</span><span style="color: #000000">))
{
    </span><span style="color: #5f9ea0; font-weight: bold">New-Item</span><span style="color: #000000"> </span><span style="color: #800080">$outputdir</span><span style="color: #000000"> -type </span><span style="color: #800000">directory</span><span style="color: #000000">
}

</span><span style="color: #008000">#</span><span style="color: #008000">What files should we look for?   Typically this would be *.jpg.</span><span style="color: #008000">
</span><span style="color: #800080">$ext</span><span style="color: #000000"> </span><span style="color: #ff0000">=</span><span style="color: #000000"> </span><span style="color: #800000">&quot;</span><span style="color: #800000">*.jpg</span><span style="color: #800000">&quot;</span><span style="color: #000000">

</span><span style="color: #008000">#</span><span style="color: #008000">Using Get-ChildItem we search for all files matching our extension recurisvley from the location of the script down.</span><span style="color: #008000">
</span><span style="color: #800080">$files</span><span style="color: #000000"> </span><span style="color: #ff0000">=</span><span style="color: #000000"> </span><span style="color: #5f9ea0; font-weight: bold">Get-ChildItem</span><span style="color: #000000"> </span><span style="font-style: italic; color: #5f9ea0">-r</span><span style="color: #000000"> </span><span style="font-style: italic; color: #5f9ea0">-Include</span><span style="color: #000000"> </span><span style="color: #800080">$ext</span><span style="color: #000000">

</span><span style="color: #008000">#</span><span style="color: #008000">We're going to keep track of how many files we process and put a unique number in the file for each one (eliminates all possibility of duplicate filename)</span><span style="color: #008000">
</span><span style="color: #800080">$i</span><span style="color: #000000"> </span><span style="color: #ff0000">=</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">;
</span><span style="color: #0000ff">foreach</span><span style="color: #000000">(</span><span style="color: #800080">$f</span><span style="color: #000000"> </span><span style="color: #0000ff">in</span><span style="color: #000000"> </span><span style="color: #800080">$files</span><span style="color: #000000">) {
    </span><span style="color: #008000">#</span><span style="color: #008000">Increment our counter</span><span style="color: #008000">
</span><span style="color: #000000">    </span><span style="color: #800080">$i</span><span style="color: #ff0000">++</span><span style="color: #000000">;

    </span><span style="color: #008000">#</span><span style="color: #008000">Load up the .net system.drawing.bitmap object for the current file.  We will use this to access and update the exif data.</span><span style="color: #008000">
</span><span style="color: #000000">    </span><span style="color: #800080">$img</span><span style="color: #000000">=</span><span style="color: #5f9ea0; font-weight: bold">New-Object</span><span style="color: #000000"> </span><span style="font-style: italic; color: #5f9ea0">-TypeName</span><span style="color: #000000"> </span><span style="color: #800000">system.drawing.bitmap</span><span style="color: #000000"> </span><span style="font-style: italic; color: #5f9ea0">-ArgumentList</span><span style="color: #000000"> </span><span style="color: #800080">$f</span><span style="color: #000000">.fullname;

    </span><span style="color: #008000">#</span><span style="color: #008000">We grab up the camera date, height, and width.  We use try catch in case the property isn't availabe and set a default value.</span><span style="color: #008000">
</span><span style="color: #000000">    </span><span style="color: #008000">#</span><span style="color: #008000">For more details on properties available check:</span><span style="color: #008000">
</span><span style="color: #000000">    </span><span style="color: #008000">#</span><span style="color: #008000">http://blogs.technet.com/b/jamesone/archive/2007/07/13/exploring-photographic-exif-data-using-powershell-of-course.aspx</span><span style="color: #008000">
</span><span style="color: #000000">
    </span><span style="color: #0000ff">Try</span><span style="color: #000000">
     {
        </span><span style="color: #008000">#</span><span style="color: #008000">The value is a byte array which we need to convert (assuming ASCII character set)</span><span style="color: #008000">
</span><span style="color: #000000">        </span><span style="color: #800080">$date</span><span style="color: #000000"> </span><span style="color: #ff0000">=</span><span style="color: #000000"> [</span><span style="color: #008080">System.Text.Encoding</span><span style="color: #000000">]::</span><span style="color: #8b4513">ASCII</span><span style="color: #000000">.</span><span style="color: #8b4513">GetString</span><span style="color: #000000">(</span><span style="color: #800080">$img</span><span style="color: #000000">.GetPropertyItem(</span><span style="color: #000000">36867</span><span style="color: #000000">).Value);
     }
    </span><span style="color: #0000ff">Catch</span><span style="color: #000000"> [</span><span style="color: #008080">system.exception</span><span style="color: #000000">]
     {
        </span><span style="color: #008000">#</span><span style="color: #008000">Default value in case we can't access the EXIF</span><span style="color: #008000">
</span><span style="color: #000000">        </span><span style="color: #800080">$date</span><span style="color: #000000"> </span><span style="color: #ff0000">=</span><span style="color: #000000"> </span><span style="color: #800000">&quot;</span><span style="color: #800000">0000:00:00 00:00:00</span><span style="color: #800000">&quot;</span><span style="color: #000000">;
      }

    </span><span style="color: #008000">#</span><span style="color: #008000">Grab the height and width of our object</span><span style="color: #008000">
</span><span style="color: #000000">    </span><span style="color: #800080">$height</span><span style="color: #000000"> </span><span style="color: #ff0000">=</span><span style="color: #000000"> </span><span style="color: #800080">$img</span><span style="color: #000000">.Height;
    </span><span style="color: #800080">$width</span><span style="color: #000000"> </span><span style="color: #ff0000">=</span><span style="color: #000000"> </span><span style="color: #800080">$img</span><span style="color: #000000">.Width; 

    </span><span style="color: #008000">#</span><span style="color: #008000">The date is returned as a null terminated string with spaces and colons in it.   We replace all of these with dashes to make it filename friendly.</span><span style="color: #008000">
</span><span style="color: #000000">    </span><span style="color: #800080">$date</span><span style="color: #000000"> </span><span style="color: #ff0000">=</span><span style="color: #000000"> ((</span><span style="color: #800080">$date</span><span style="color: #000000">.Replace(</span><span style="color: #800000">&quot;</span><span style="color: #800000">`0</span><span style="color: #800000">&quot;</span><span style="color: #000000">, </span><span style="color: #800000">&quot;&quot;</span><span style="color: #000000">)).Replace(</span><span style="color: #800000">&quot;</span><span style="color: #800000"> </span><span style="color: #800000">&quot;</span><span style="color: #000000">,</span><span style="color: #800000">&quot;</span><span style="color: #800000">-</span><span style="color: #800000">&quot;</span><span style="color: #000000">)).Replace(</span><span style="color: #800000">&quot;</span><span style="color: #800000">:</span><span style="color: #800000">&quot;</span><span style="color: #000000">,</span><span style="color: #800000">&quot;</span><span style="color: #800000">-</span><span style="color: #800000">&quot;</span><span style="color: #000000">);

    </span><span style="color: #008000">#</span><span style="color: #008000">Calcualte the MD5 of the original file so that we can look for duplicates later</span><span style="color: #008000">
</span><span style="color: #000000">    </span><span style="color: #800080">$md5</span><span style="color: #000000"> </span><span style="color: #ff0000">=</span><span style="color: #000000"> Get-MD5(</span><span style="color: #800080">$f</span><span style="color: #000000">);

    </span><span style="color: #008000">#</span><span style="color: #008000">The target filename will be the output directory with the variables concatnated in the below format.</span><span style="color: #008000">
</span><span style="color: #000000">    </span><span style="color: #008000">#</span><span style="color: #008000">Format will be YYYY-MM-DD-HH-MM-SS-WIDTHxHEIGHT-MD5-ID.Extension</span><span style="color: #008000">
</span><span style="color: #000000">    </span><span style="color: #800080">$filename</span><span style="color: #000000"> </span><span style="color: #ff0000">=</span><span style="color: #000000"> </span><span style="color: #800080">$outputdir</span><span style="color: #000000"> </span><span style="color: #ff0000">+</span><span style="color: #000000"> [</span><span style="color: #008080">string</span><span style="color: #000000">]::</span><span style="color: #8b4513">Format</span><span style="color: #000000">(</span><span style="color: #800000">&quot;</span><span style="color: #800000">{0}-{1}x{2}-{3}-{4}{5}</span><span style="color: #800000">&quot;</span><span style="color: #000000">, </span><span style="color: #800080">$date</span><span style="color: #000000">, </span><span style="color: #800080">$width</span><span style="color: #000000">, </span><span style="color: #800080">$height</span><span style="color: #000000">, </span><span style="color: #800080">$md5</span><span style="color: #000000">, </span><span style="color: #800080">$i</span><span style="color: #000000">, </span><span style="color: #800080">$f</span><span style="color: #000000">.extension);

    </span><span style="color: #008000">#</span><span style="color: #008000">We want to save the current path as a comment so we create a new property of type 40092 (comment)</span><span style="color: #008000">
</span><span style="color: #000000">    </span><span style="color: #800080">$property</span><span style="color: #000000"> </span><span style="color: #ff0000">=</span><span style="color: #000000"> </span><span style="color: #800080">$img</span><span style="color: #000000">.PropertyItems[0];
    </span><span style="color: #800080">$property</span><span style="color: #000000">.Id </span><span style="color: #ff0000">=</span><span style="color: #000000"> </span><span style="color: #000000">40092</span><span style="color: #000000">;
    </span><span style="color: #800080">$property</span><span style="color: #000000">.Type </span><span style="color: #ff0000">=</span><span style="color: #000000"> </span><span style="color: #000000">1</span><span style="color: #000000">;

    </span><span style="color: #008000">#</span><span style="color: #008000">It needs a string array so we pass in the current path ($f.fullname) and convert it to an array</span><span style="color: #008000">
</span><span style="color: #000000">    </span><span style="color: #800080">$property</span><span style="color: #000000">.Value </span><span style="color: #ff0000">=</span><span style="color: #000000"> [</span><span style="color: #008080">system.text.encoding</span><span style="color: #000000">]::</span><span style="color: #8b4513">Unicode</span><span style="color: #000000">.</span><span style="color: #8b4513">GetBytes</span><span style="color: #000000">(</span><span style="color: #800080">$f</span><span style="color: #000000">.fullname </span><span style="color: #ff0000">+</span><span style="color: #000000"> </span><span style="color: #800000">&quot;</span><span style="color: #800000">:</span><span style="color: #800000">&quot;</span><span style="color: #000000"> </span><span style="color: #ff0000">+</span><span style="color: #000000"> </span><span style="color: #800080">$md5</span><span style="color: #000000">);
    </span><span style="color: #800080">$property</span><span style="color: #000000">.Len </span><span style="color: #ff0000">=</span><span style="color: #000000"> </span><span style="color: #800080">$property</span><span style="color: #000000">.Value.Count;
    </span><span style="color: #800080">$img</span><span style="color: #000000">.SetPropertyItem(</span><span style="color: #800080">$property</span><span style="color: #000000">);

    </span><span style="color: #008000">#</span><span style="color: #008000">We will save our image from memory in the path of our new file.</span><span style="color: #008000">
</span><span style="color: #000000">    </span><span style="color: #800080">$img</span><span style="color: #000000">.Save(</span><span style="color: #800080">$filename</span><span style="color: #000000">);
    </span><span style="color: #800080">$img</span><span style="color: #000000">.Dispose();

    </span><span style="color: #008000">#</span><span style="color: #008000">Could delete the old version, I'm leaving it as a backup so I've commented this out.</span><span style="color: #008000">
</span><span style="color: #000000">    </span><span style="color: #008000">#</span><span style="color: #008000">Remove-Item $f.fullname;</span><span style="color: #008000">
</span><span style="color: #000000">
    </span><span style="color: #008000">#</span><span style="color: #008000">Let the user know what the current status is and which files are being moved.    </span><span style="color: #008000">
</span><span style="color: #000000">    </span><span style="color: #5f9ea0; font-weight: bold">Write-Output</span><span style="color: #000000"> </span><span style="color: #800000">&quot;</span><span style="color: #800000">Copying $f to $filename</span><span style="color: #800000">&quot;</span><span style="color: #000000">;
}

</span><span style="color: #008000">#</span><span style="color: #008000">This is a one liner to split on filename, find the duplicates by MD5, ignore the first result and then delete the rest</span><span style="color: #008000">
#</span><span style="color: #008000">The 7th item in the filename format is the MD5 hence the hard coded index</span><span style="color: #008000">
</span><span style="color: #800080">$o</span><span style="color: #000000"> </span><span style="color: #ff0000">=</span><span style="color: #000000"> </span><span style="color: #5f9ea0; font-weight: bold">Get-ChildItem</span><span style="color: #000000"> </span><span style="color: #800080">$outputdir</span><span style="color: #000000"> </span><span style="color: #5f9ea0; font-weight: bold">`</span><span style="color: #000000">
| </span><span style="color: #5f9ea0; font-weight: bold">Select-Object</span><span style="color: #000000"> @{Name</span><span style="color: #ff0000">=</span><span style="color: #800000">&quot;</span><span style="color: #800000">MD5</span><span style="color: #800000">&quot;</span><span style="color: #000000">;Expression</span><span style="color: #ff0000">=</span><span style="color: #000000">{(</span><span style="color: #800080">$_</span><span style="color: #000000">.Name).Split(</span><span style="color: #800000">&quot;</span><span style="color: #800000">-</span><span style="color: #800000">&quot;</span><span style="color: #000000">)[7]}}, @{Name</span><span style="color: #ff0000">=</span><span style="color: #800000">&quot;</span><span style="color: #800000">Filename</span><span style="color: #800000">&quot;</span><span style="color: #000000">;Expression</span><span style="color: #ff0000">=</span><span style="color: #000000">{</span><span style="color: #800080">$_</span><span style="color: #000000">.Fullname}} </span><span style="color: #5f9ea0; font-weight: bold">`</span><span style="color: #000000">
| </span><span style="color: #5f9ea0; font-weight: bold">Group-Object</span><span style="color: #000000"> </span><span style="color: #800000">md5</span><span style="color: #000000"> </span><span style="color: #5f9ea0; font-weight: bold">`</span><span style="color: #000000">
| ?{ </span><span style="color: #800080">$_</span><span style="color: #000000">.Count </span><span style="color: #ff0000">-gt</span><span style="color: #000000"> </span><span style="color: #000000">1</span><span style="color: #000000"> } </span><span style="color: #5f9ea0; font-weight: bold">`</span><span style="color: #000000">
| </span><span style="color: #5f9ea0; font-weight: bold">%</span><span style="color: #000000"> {(</span><span style="color: #800080">$null</span><span style="color: #000000">, </span><span style="color: #800080">$rest</span><span style="color: #000000">) </span><span style="color: #ff0000">=</span><span style="color: #000000"> </span><span style="color: #800080">$_</span><span style="color: #000000">.Group; </span><span style="color: #800080">$rest</span><span style="color: #000000">;} </span><span style="color: #5f9ea0; font-weight: bold">`</span><span style="color: #000000">
| </span><span style="color: #5f9ea0; font-weight: bold">Select-Object</span><span style="color: #000000"> </span><span style="color: #800000">Filename</span><span style="color: #000000">  </span><span style="color: #5f9ea0; font-weight: bold">`</span><span style="color: #000000">
| </span><span style="color: #5f9ea0; font-weight: bold">%</span><span style="color: #000000"> { </span><span style="color: #5f9ea0; font-weight: bold">Write-Output</span><span style="color: #000000"> </span><span style="color: #800000">&quot;</span><span style="color: #800000">Removing duplicate $_</span><span style="color: #800000">&quot;</span><span style="color: #000000">; </span><span style="color: #5f9ea0; font-weight: bold">Remove-Item</span><span style="color: #000000"> </span><span style="color: #800080">$_</span><span style="color: #000000">.Filename }

</span><span style="color: #5f9ea0; font-weight: bold">Write-Output</span><span style="color: #000000"> </span><span style="color: #800080">$o</span><span style="color: #000000">

</span><span style="color: #008000">#</span><span style="color: #008000">Now that we've zapped our duplicates we can move the files out to their target locations</span><span style="color: #008000">
#</span><span style="color: #008000">We loop through them again extracting the important bits from the filename</span><span style="color: #008000">
#</span><span style="color: #008000">Format will be YYYY-MM-DD-HH-MM-SS-WIDTHxHEIGHT-ID.Extension</span><span style="color: #008000">
</span><span style="color: #800080">$files</span><span style="color: #000000"> </span><span style="color: #ff0000">=</span><span style="color: #000000"> </span><span style="color: #5f9ea0; font-weight: bold">Get-ChildItem</span><span style="color: #000000"> </span><span style="color: #800080">$outputdir</span><span style="color: #000000">
</span><span style="color: #800080">$i</span><span style="color: #000000"> </span><span style="color: #ff0000">=</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">;
</span><span style="color: #0000ff">foreach</span><span style="color: #000000">(</span><span style="color: #800080">$f</span><span style="color: #000000"> </span><span style="color: #0000ff">in</span><span style="color: #000000"> </span><span style="color: #800080">$files</span><span style="color: #000000">) {
    </span><span style="color: #800080">$i</span><span style="color: #ff0000">++</span><span style="color: #000000">;

    </span><span style="color: #008000">#</span><span style="color: #008000">split string on dash and create an array of attributes</span><span style="color: #008000">
</span><span style="color: #000000">    </span><span style="color: #800080">$name</span><span style="color: #000000"> </span><span style="color: #ff0000">=</span><span style="color: #000000"> (</span><span style="color: #800080">$f</span><span style="color: #000000">.name).split(</span><span style="color: #800000">&quot;</span><span style="color: #800000">-</span><span style="color: #800000">&quot;</span><span style="color: #000000">);
    </span><span style="color: #800080">$year</span><span style="color: #000000"> </span><span style="color: #ff0000">=</span><span style="color: #000000"> </span><span style="color: #800080">$name</span><span style="color: #000000">[0];
    </span><span style="color: #800080">$month</span><span style="color: #000000">  </span><span style="color: #ff0000">=</span><span style="color: #000000"> </span><span style="color: #800080">$name</span><span style="color: #000000">[1];
    </span><span style="color: #800080">$day</span><span style="color: #000000"> </span><span style="color: #ff0000">=</span><span style="color: #000000"> </span><span style="color: #800080">$name</span><span style="color: #000000">[2];
    </span><span style="color: #800080">$hour</span><span style="color: #000000"> </span><span style="color: #ff0000">=</span><span style="color: #000000"> </span><span style="color: #800080">$name</span><span style="color: #000000">[3];
    </span><span style="color: #800080">$min</span><span style="color: #000000"> </span><span style="color: #ff0000">=</span><span style="color: #000000"> </span><span style="color: #800080">$name</span><span style="color: #000000">[4];
    </span><span style="color: #800080">$sec</span><span style="color: #000000"> </span><span style="color: #ff0000">=</span><span style="color: #000000"> </span><span style="color: #800080">$name</span><span style="color: #000000">[5];
    </span><span style="color: #800080">$size</span><span style="color: #000000"> </span><span style="color: #ff0000">=</span><span style="color: #000000"> </span><span style="color: #800080">$name</span><span style="color: #000000">[6];
    </span><span style="color: #800080">$md5</span><span style="color: #000000"> </span><span style="color: #ff0000">=</span><span style="color: #000000"> </span><span style="color: #800080">$name</span><span style="color: #000000">[7];

    </span><span style="color: #008000">#</span><span style="color: #008000">Where are we putting the new file?</span><span style="color: #008000">
</span><span style="color: #000000">    </span><span style="color: #800080">$targetname</span><span style="color: #000000"> </span><span style="color: #ff0000">=</span><span style="color: #000000"> </span><span style="color: #800080">$outputdir</span><span style="color: #000000">  </span><span style="color: #ff0000">+</span><span style="color: #000000"> </span><span style="color: #800080">$year</span><span style="color: #000000"> </span><span style="color: #ff0000">+</span><span style="color: #000000"> </span><span style="color: #800000">&quot;</span><span style="color: #800000">\</span><span style="color: #800000">&quot;</span><span style="color: #000000"> </span><span style="color: #ff0000">+</span><span style="color: #000000"> </span><span style="color: #800080">$month</span><span style="color: #000000"> </span><span style="color: #ff0000">+</span><span style="color: #000000"> </span><span style="color: #800000">&quot;</span><span style="color: #800000">\</span><span style="color: #800000">&quot;</span><span style="color: #000000"> </span><span style="color: #ff0000">+</span><span style="color: #000000"> [</span><span style="color: #008080">string</span><span style="color: #000000">]::</span><span style="color: #8b4513">Format</span><span style="color: #000000">(</span><span style="color: #800000">&quot;</span><span style="color: #800000">{0}-{1}-{2}-{3}-{4}-{5}-{6}-{7}{8}</span><span style="color: #800000">&quot;</span><span style="color: #000000">, </span><span style="color: #800080">$year</span><span style="color: #000000">, </span><span style="color: #800080">$month</span><span style="color: #000000">, </span><span style="color: #800080">$day</span><span style="color: #000000">, </span><span style="color: #800080">$hour</span><span style="color: #000000">, </span><span style="color: #800080">$min</span><span style="color: #000000">, </span><span style="color: #800080">$sec</span><span style="color: #000000">, </span><span style="color: #800080">$size</span><span style="color: #000000">, </span><span style="color: #800080">$i</span><span style="color: #000000">, </span><span style="color: #800080">$f</span><span style="color: #000000">.extension);

    </span><span style="color: #008000">#</span><span style="color: #008000">Make sure that our folders exist (one for each month under the year) and if not create them</span><span style="color: #008000">
</span><span style="color: #000000">    </span><span style="color: #0000ff">if</span><span style="color: #000000"> (</span><span style="color: #ff0000">!</span><span style="color: #000000">(</span><span style="color: #5f9ea0; font-weight: bold">Test-Path</span><span style="color: #000000"> </span><span style="font-style: italic; color: #5f9ea0">-path</span><span style="color: #000000"> (</span><span style="color: #800080">$outputdir</span><span style="color: #000000"> </span><span style="color: #ff0000">+</span><span style="color: #000000"> </span><span style="color: #800080">$year</span><span style="color: #000000">)))
    {
        </span><span style="color: #5f9ea0; font-weight: bold">New-Item</span><span style="color: #000000"> (</span><span style="color: #800080">$outputdir</span><span style="color: #000000"> </span><span style="color: #ff0000">+</span><span style="color: #000000"> </span><span style="color: #800080">$year</span><span style="color: #000000">) -type directory
    }

    </span><span style="color: #0000ff">if</span><span style="color: #000000"> (</span><span style="color: #ff0000">!</span><span style="color: #000000">(</span><span style="color: #5f9ea0; font-weight: bold">Test-Path</span><span style="color: #000000"> </span><span style="font-style: italic; color: #5f9ea0">-path</span><span style="color: #000000"> (</span><span style="color: #800080">$outputdir</span><span style="color: #000000"> </span><span style="color: #ff0000">+</span><span style="color: #000000"> </span><span style="color: #800080">$year</span><span style="color: #000000"> </span><span style="color: #ff0000">+</span><span style="color: #000000"> </span><span style="color: #800000">&quot;</span><span style="color: #800000">\</span><span style="color: #800000">&quot;</span><span style="color: #000000"> </span><span style="color: #ff0000">+</span><span style="color: #000000"> </span><span style="color: #800080">$month</span><span style="color: #000000">)))
    {
        </span><span style="color: #5f9ea0; font-weight: bold">New-Item</span><span style="color: #000000"> (</span><span style="color: #800080">$outputdir</span><span style="color: #000000"> </span><span style="color: #ff0000">+</span><span style="color: #000000"> </span><span style="color: #800080">$year</span><span style="color: #000000"> </span><span style="color: #ff0000">+</span><span style="color: #000000"> </span><span style="color: #800000">&quot;</span><span style="color: #800000">\</span><span style="color: #800000">&quot;</span><span style="color: #000000"> </span><span style="color: #ff0000">+</span><span style="color: #000000"> </span><span style="color: #800080">$month</span><span style="color: #000000">) -type directory
    }

    </span><span style="color: #008000">#</span><span style="color: #008000">Move the source file to it's new home.  -Force tells it to overwrite if the file already exists.</span><span style="color: #008000">
</span><span style="color: #000000">    </span><span style="color: #5f9ea0; font-weight: bold">Write-Output</span><span style="color: #000000"> </span><span style="color: #800000">&quot;</span><span style="color: #800000">Moving $f to $targetname</span><span style="color: #800000">&quot;</span><span style="color: #000000">;
    </span><span style="color: #5f9ea0; font-weight: bold">Move-Item</span><span style="color: #000000"> </span><span style="font-style: italic; color: #5f9ea0">-Path</span><span style="color: #000000"> </span><span style="color: #800080">$f</span><span style="color: #000000">.fullname </span><span style="font-style: italic; color: #5f9ea0">-Destination</span><span style="color: #000000"> </span><span style="color: #800080">$targetname</span><span style="color: #000000"> </span><span style="font-style: italic; color: #5f9ea0">-Force</span><span style="color: #000000">
}

</span></pre>
<p>&#160;</p>
<p>&#160;</p>
<p>Here are a couple of references that I found helpful in building this script:</p>
<p>&#160;</p>
<p><a title="http://blogs.technet.com/b/jamesone/archive/2007/07/13/exploring-photographic-exif-data-using-powershell-of-course.aspx" href="http://blogs.technet.com/b/jamesone/archive/2007/07/13/exploring-photographic-exif-data-using-powershell-of-course.aspx">http://blogs.technet.com/b/jamesone/archive/2007/07/13/exploring-photographic-exif-data-using-powershell-of-course.aspx</a></p>
<p><a title="http://blog.codeassassin.com/2007/10/13/find-duplicate-files-with-powershell/" href="http://blog.codeassassin.com/2007/10/13/find-duplicate-files-with-powershell/">http://blog.codeassassin.com/2007/10/13/find-duplicate-files-with-powershell/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://vallery.net/2012/02/03/organizing-lots-of-pictures/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Building a near silent PC</title>
		<link>http://vallery.net/2012/02/03/building-a-near-silent-pc/</link>
		<comments>http://vallery.net/2012/02/03/building-a-near-silent-pc/#comments</comments>
		<pubDate>Fri, 03 Feb 2012 22:15:30 +0000</pubDate>
		<dc:creator>jvallery</dc:creator>
				<category><![CDATA[Getting Things Done]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[PC]]></category>
		<category><![CDATA[productivity]]></category>
		<category><![CDATA[silence]]></category>

		<guid isPermaLink="false">http://vallery.net/?p=255</guid>
		<description><![CDATA[I spend 12 to 14 hours a day in my office on any given weekday.&#160;&#160; My productivity on my PC is vital and as a result I’m not afraid to invest in good equipment.&#160;&#160; For the last several desktop workstations that I’ve used I’ve assembled the computer myself from various components.&#160; One of my challenges [...]]]></description>
			<content:encoded><![CDATA[<p style="float:right; margin:0 0 10px 15px; width:240px;">
		<img src="http://vallery.net/wp-content/uploads/2012/02/image2.png" width="240" />
		</p><p>I spend 12 to 14 hours a day in my office on any given weekday.&#160;&#160; My productivity on my PC is vital and as a result I’m not afraid to invest in good equipment.&#160;&#160; For the last several desktop workstations that I’ve used I’ve assembled the computer myself from various components.&#160; One of my challenges with this approach is the amount of noise produced.&#160;&#160; The DIY computer market is targeted at the 19 year old gamer who cares more about how many neon lights his computer has than how quiet it is.</p>
<p>As a software developer and power user I demand a very performant machine.&#160; I’m constantly running virtual machines, visual studio, graphics design applications, etc.&#160; I needed a PC that can deliver while also looking good and remaining silent (or near silent).</p>
<p>I don’t have a decibel meter at hand so I can’t give you empirical measurements on exactly how loud my old computer was.&#160;&#160; Anecdotally though it was enough to upset my wife because when she would call for my attention I wouldn’t hear her.&#160; It really had become a problem and the noise was impacting my mood and productivity.&#160;&#160; </p>
<p>I decided to set out on solving my noise challenges and spend as little money as possible while doing it.&#160;&#160; One of my main concerns was ensuring that I would continue to have 4 DVI ports that can uniquely configure each monitor.&#160;&#160; I’m a firm believer that the more screen real-estate you have the more productive you are.&#160;&#160; I’m on the fence about the value of the 4th monitor but I really do think that 3 is the minimum I could ever be happy with.&#160;&#160; I typically use the 4th display for my music app or I hook it up to my laptop when it is on my desk.&#160; In order to drive 4 separate displays however there aren’t many single card solutions available.&#160;&#160; In the past I’ve always had to have 2 separate video cards and I expected that would continue.</p>
<p>What I started with:</p>
<ul>
<li>i7-920 processor </li>
<li>12GB of Corsair DDR3 memory </li>
<li>Crucial 256GB C300 SSD (6Gbs) </li>
<li>Asus P6X58D Premium Motherboard </li>
<li>2 x Nvidia GTS 240 video cards (2 monitors on each) </li>
<li>Antec Lanboy Air case </li>
<li>Antec 850w power supply </li>
</ul>
<p>The computer itself was actually fairly powerful.&#160;&#160; I reviewed benchmark sites and realized that the cost of upgrading to a Sandy Bridge i7 isn’t really justified given the minimal performance increase.&#160;&#160; I found this conclusion interesting given that I’ve had the i7-920 for over 2 years.&#160;&#160; Previously I had a general rule of thumb to replace my processor and supporting components every 2 – 3 years.&#160;&#160; I generally feel the pace of processor innovation has slowed.&#160;&#160; I decided that I would retain the motherboard, processor, memory, and hard drive.&#160;&#160; All of which would continue to work fine in my new silent PC.&#160; I will need to replace the case, CPU cooler, power supply, and video cards.</p>
<p>Looking at the above starting point the first and obvious place to start is the Antec Lanboy case.&#160;&#160; That thing is completely open and offers zero noise isolation.&#160; I bought it without thinking because it was on sale at Micro Center.&#160;&#160; In reality it was a very poor choice for my scenario.&#160;&#160; </p>
<p>&#160;</p>
<p>When selecting a new case my primary criteria were:</p>
<ul>
<li>Clean looking and professional design -&#160; no cut outs, neon lights, plexiglass panels, giant fans, etc </li>
</ul>
<p>&#160;</p>
<ul>
<li>As small as possible &#8211; Even though I have a full size ATX board I don’t need water cooling, 15 hard drives, 4 fans, and 3 optical. I just want the ability to mount my SSD, one optical drive, and maybe an additional 3.5” SATA drive for backups. </li>
</ul>
<p>&#160;</p>
<ul>
<li>Either powder coated or aluminum -&#160; I don’t think the raw insides of a steel case look very good. I wanted a very high quality case and to me that meant attention to detail both on the inside and out. </li>
</ul>
<p>&#160;</p>
<ul>
<li>Quiet! -&#160; Ideally the case would have built in noise shielding or padding to help me on my mission</li>
</ul>
<p>&#160;</p>
<ul>
<li>Top mounted power supply &#8211; Given that I intended to use a fanless power supply I wanted the opening at the top of the case to allow for passive heat dissemination. </li>
</ul>
<p>&#160;</p>
<ul>
<li>Good cable management to allow for airflow and to keep everything organized </li>
</ul>
<p>&#160;</p>
<p>I spent a significant amount of time going over the reviews of a number of cases from Lian Li, Antec, Fractal Design, Thermaltake, etc.&#160; Cost wasn’t a significant concern although I couldn’t ignore it completely.&#160;&#160; I short listed the following cases:</p>
<p>&#160;</p>
<p>&#160;</p>
<p><a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16811352018">Fractal Design Define XL Titanium Grey w/USB 3.0</a>&#160; &#8211; $149</p>
<p>
<table border="0" cellspacing="0" cellpadding="2" width="100%">
<tbody>
<tr>
<td valign="top" width="255"><a href="http://vallery.net/wp-content/uploads/2012/02/image.png">             <br /><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="image" border="0" alt="image" src="http://vallery.net/wp-content/uploads/2012/02/image_thumb.png" width="165" height="244" /></a></td>
<td valign="top" width="408">
<p><strong>Pros:</strong>               </p>
<p>Clean style               <br />Noise reduction built in               <br />Cable management               </p>
<p><strong>Cons:</strong>               </p>
<p>Size (very large at 22.10&quot; x 9.13&quot; x 22.05&quot; or               <br />4,150 cu in.)               <br />Bottom mounted power supply               <br />Inside not powder coated               </p>
</td>
</tr>
</tbody>
</table>
<p>&#160;</p>
<p><a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16811112338">LIAN LI PC-90 Black Aluminum ATX Full Tower</a> – $199</p>
<p>
<table border="0" cellspacing="0" cellpadding="2" width="100%">
<tbody>
<tr>
<td valign="top" width="252">
<p>&#160;</p>
<p><a href="http://vallery.net/wp-content/uploads/2012/02/image1.png"><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="image" border="0" alt="image" src="http://vallery.net/wp-content/uploads/2012/02/image_thumb1.png" width="192" height="244" /></a></p>
</td>
<td valign="top" width="411">
<p><strong>Pros:</strong>               </p>
<p>Aluminum body               <br />Lian Li (great reputation)               <br />Very professional looking               </p>
<p><strong>Cons:</strong>               </p>
<p>Size (still large at 19.25&quot; x 9.06&quot; x 20.16&quot; or               <br />3,516 cu in.)               <br />Bottom mounted power supply               <br />No explicit noise insulation, large grate in front might allow sound to escape.               </p>
</td>
</tr>
</tbody>
</table>
<p>&#160;</p>
<p>&#160;</p>
<p><a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16811129177">Antec Sonata Series SOLO II Black Steel</a>&#160; &#8211; $129</p>
<p>
<table border="0" cellspacing="0" cellpadding="2" width="100%">
<tbody>
<tr>
<td valign="top" width="248">
<p>&#160;</p>
<p><a href="http://vallery.net/wp-content/uploads/2012/02/image2.png"><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="image" border="0" alt="image" src="http://vallery.net/wp-content/uploads/2012/02/image_thumb2.png" width="219" height="244" /></a></p>
</td>
<td valign="top" width="415">
<p><strong>Pros:</strong>               </p>
<p>Top mounted power supply              <br />Fully powder coated inside and out               <br />Very professional looking               <br />Built-in noise absorption panels               <br />TrueQuiet fan included               </p>
<p><strong>Cons:</strong>               </p>
<p>Size (still large at 18.5&quot; x 8.1&quot; x 17.3&quot; or&#160; <br />2,592 cu in. but by far the best of the 3)               <br />I would prefer aluminum               <br />USB 3.0 header doesn’t work with my motherboard               </p>
</td>
</tr>
</tbody>
</table>
<p>&#160;</p>
<p>Given the choices available it was a pretty easy decision to go with the Antec Sonata Solo II.&#160;&#160; I really wanted to find a Lian Li case that I would fall in love with.&#160; I just couldn’t find one that had everything important to me.&#160; The general state of computer cases bothers me in that so many of them are targeted to the gaming market.&#160;&#160; These high end professional cases are rare especially one that can accommodate a full size ATX motherboard.</p>
<p>&#160;</p>
<p>With the biggest decision out of the way I still needed to get power supply, CPU fan, case fan, and most importantly video cards sorted.</p>
<p>I settled on the following components in addition to what I already had:</p>
<ul>
<table border="2" cellspacing="2" cellpadding="2" width="100%">
<tbody>
<tr>
<td valign="top" width="130">
<h2>Product</h2>
</td>
<td valign="top" width="382">
<h2>Comments</h2>
</td>
<td valign="top" width="61">
<h2>Qty</h2>
</td>
<td valign="top" width="80">
<h2>Cost</h2>
</td>
</tr>
<tr>
<td valign="top" width="130"><a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16811129177">Antec Sonata Series SOLO II Black Steel</a> </td>
<td valign="top" width="360">See above</td>
<td valign="top" width="74">1</td>
<td valign="top" width="93">$129.99</td>
</tr>
<tr>
<td valign="top" width="128"><a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16814131449">PowerColor Go! Green HD 6750 passive cooled video card</a> </td>
<td valign="top" width="348">The most significant causes of noise in my current configuration was the fans on the GPU I wanted to find a DirectX 11 capable card that was also fanless. I have no need to play games but I also didn’t want to sacrifice significantly on video performance. This card was a good best of both worlds solution.</td>
<td valign="top" width="81">2</td>
<td valign="top" width="100">$139.99</td>
</tr>
<tr>
<td valign="top" width="128"><a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16835209050">Antec TrueQuiet 120mm case fans</a></td>
<td valign="top" width="348">I was concerned about the heat in the case with the two fanless GPUs next to each other. I decided to put in these extra fans in the slots provided by the Antec Solo II. They are super quiet and controlled by my motherboard so the majority of the time they aren’t even running.</td>
<td valign="top" width="81">2</td>
<td valign="top" width="100">$14.99</td>
</tr>
<tr>
<td valign="top" width="128"><a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16835103055">Cooler Master V8 RR-UV8-XBU1-GP CPU Cooler</a></td>
<td valign="top" width="341">This thing looks cheesy but it sits inside the case and isn’t visible. The cooler is massive but very effective and quiet. I went with it based on the many positive reviews. I’m not disappointed. My processor sits at around 50 degrees Celsius the majority of the time.</td>
<td valign="top" width="84">1</td>
<td valign="top" width="103">$49.99</td>
</tr>
<tr>
<td valign="top" width="127"><a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16817151099">Seasonic SS-460FL Active PFC F3 460W Fanless power supply</a> </td>
<td valign="top" width="339">This is a great passive cooled powersupply. My only complaint was the packaging. Why the heck do I need a felt bag to carry it? I can’t imagine a case where I would want to do that. It seems like a waste and could have shaved a few dollars off the price. </td>
<td valign="top" width="86">1</td>
<td valign="top" width="105">$109.99</td>
</tr>
<tr>
<td valign="top" width="127"><strong>Total:</strong></td>
<td valign="top" width="337">&nbsp;</td>
<td valign="top" width="94">&nbsp;</td>
<td valign="top" width="111"><strong>$599.93</strong></td>
</tr>
</tbody>
</table>
</ul>
<p>&#160;</p>
<p>&#160;</p>
<h2>Summary:</h2>
<p>&#160;</p>
<p>So after all of that what did I end up with?&#160;&#160; A nearly silent PC with a WEI score of 7.3.&#160; The PC is pretty much completely silent.&#160;&#160; The only time I hear anything is when I’m running at very high CPU load and the fans kick up their RPM.&#160;&#160; I do have my CPU fan and all 3 case fans hooked up to my motherboard to allow it to control the speed.&#160;&#160; In the Asus bios you can choose a fan profile for each fan.&#160;&#160; All of mine are set to “silent”.&#160;&#160;&#160; Typically I’m running in the mid 50 degree Celsius range on the CPU and the low 70s on the GPU.&#160;&#160; I’m sure if I cranked up the fan speed a bit I could bring these down further but it hasn’t been enough of an issue to justify it.</p>
<p>&#160;</p>
<h3></h3>
<h3>WEI Score:</h3>
<p>&#160;</p>
<p><a href="http://vallery.net/wp-content/uploads/2012/02/image4.png"><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="image" border="0" alt="image" src="http://vallery.net/wp-content/uploads/2012/02/image_thumb4.png" width="525" height="154" /></a></p>
<p>&#160;</p>
<h3>Real Temp:</h3>
<p>&#160;</p>
<p><a href="http://vallery.net/wp-content/uploads/2012/02/image5.png"><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="image" border="0" alt="image" src="http://vallery.net/wp-content/uploads/2012/02/image_thumb5.png" width="260" height="331" /></a></p>
<p>&#160;</p>
<p><a href="http://vallery.net/wp-content/uploads/2012/02/image6.png"><img style="background-image: none; border-right-width: 0px; margin: 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="image" border="0" alt="image" src="http://vallery.net/wp-content/uploads/2012/02/image_thumb6.png" width="140" height="244" /></a><a href="http://vallery.net/wp-content/uploads/2012/02/image7.png"><img style="background-image: none; border-right-width: 0px; margin: 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="image" border="0" alt="image" src="http://vallery.net/wp-content/uploads/2012/02/image_thumb7.png" width="140" height="244" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://vallery.net/2012/02/03/building-a-near-silent-pc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>And we&#8217;re back&#8230;.  On wordpress</title>
		<link>http://vallery.net/2012/01/26/and-were-back-on-wordpress/</link>
		<comments>http://vallery.net/2012/01/26/and-were-back-on-wordpress/#comments</comments>
		<pubDate>Thu, 26 Jan 2012 07:06:08 +0000</pubDate>
		<dc:creator>jvallery</dc:creator>
				<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Sandboxed Solutions]]></category>
		<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[migration]]></category>
		<category><![CDATA[sharepoint 2010]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://vallery.net/?p=240</guid>
		<description><![CDATA[So my fairly short lived experiment with migrating my Blog to SharePoint is over.&#160;&#160; As much as I love SharePoint it really isn’t a great platform for public blogging, at least using the out of the box blog template. There are some major limitations that caused me to switch back: &#160; Because the solution runs [...]]]></description>
			<content:encoded><![CDATA[<p>So my fairly short lived <a href="http://vallery.net/2012/01/26/blog-migration-to-sharepoint/">experiment</a> with migrating my Blog to SharePoint is over.&#160;&#160; As much as I love SharePoint it really isn’t a great platform for public blogging, at least using the out of the box blog template.</p>
<p>There are some major limitations that caused me to switch back:</p>
<p>&#160;</p>
<ul>
<li>Because the solution runs in the sandbox I can’t make any outbound HTTP requests from my custom code.&#160; This means that even if I wanted to write a custom comment handler to use a spam filter like Akismet, I can’t.&#160;&#160; The result was that I was getting hundreds of spam comments on my blog.&#160; </li>
<li>There is no URL rewrite support so all of the URLs on the new blog were simply “Post.aspx?ID=XX”.&#160;&#160; This is crap for search engine optimization.</li>
<li>The comment capability doesn’t allow for anonymous users to specify their name and email address.&#160;&#160; This meant that all comments were anonymous.</li>
</ul>
<p>Overall it was a fun experiment and I learned a lot about sandbox solutions and online hosting.&#160;&#160; I think I’ll stick to wordpress at least for now though as I have considerably more flexibility with it.</p>
<p>For historical purposes though I still have the Visual Studio project available that I used to create the sandbox solution here:&#160; <a title="http://vallery.net/wp-content/uploads/2012/01/ValleryBlog.zip" href="http://vallery.net/wp-content/uploads/2012/01/ValleryBlog.zip">http://vallery.net/wp-content/uploads/2012/01/ValleryBlog.zip</a></p>
]]></content:encoded>
			<wfw:commentRss>http://vallery.net/2012/01/26/and-were-back-on-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Blog migration to SharePoint</title>
		<link>http://vallery.net/2012/01/26/blog-migration-to-sharepoint/</link>
		<comments>http://vallery.net/2012/01/26/blog-migration-to-sharepoint/#comments</comments>
		<pubDate>Thu, 26 Jan 2012 06:30:49 +0000</pubDate>
		<dc:creator>jvallery</dc:creator>
				<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Sandboxed Solutions]]></category>
		<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[blogging]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[migration]]></category>
		<category><![CDATA[sandboxed solutions]]></category>
		<category><![CDATA[sharepoint 2010]]></category>

		<guid isPermaLink="false">http://vallery.net/?p=239</guid>
		<description><![CDATA[&#160; You can find the source code for this entry at:&#160; http://vallery.net/wp-content/uploads/2012/01/ValleryBlog.zip So I decided to migrate my blog from WordPress to SharePoint.&#160;&#160; The motivation was driven primarily out of wanting to “eat my own dogfood”.&#160;&#160;&#160; Given that most of the work I do and the posts on my blog all have to do with [...]]]></description>
			<content:encoded><![CDATA[<p>&#160;</p>
<p>You can find the source code for this entry at:&#160; <a title="http://vallery.net/wp-content/uploads/2012/01/ValleryBlog.zip" href="http://vallery.net/wp-content/uploads/2012/01/ValleryBlog.zip">http://vallery.net/wp-content/uploads/2012/01/ValleryBlog.zip</a></p>
<p>So I decided to migrate my blog from WordPress to SharePoint.&#160;&#160; The motivation was driven primarily out of wanting to “eat my own dogfood”.&#160;&#160;&#160; Given that most of the work I do and the posts on my blog all have to do with SharePoint I thought it would be appropriate to actually host my blog with SharePoint.&#160;&#160; </p>
<p>I decided to seek out a hosting provider which specializes in “SharePoint in the cloud” given that my blog is high enough traffic and important enough to me that hosting at my house isn’t an option.&#160;&#160; I first turned to Microsoft’s Office 365 service given that I’m already hosting my personal email with them.&#160;&#160;&#160; I was disappointed to learn that you currently cannot host a public facing website with anonymous access.&#160;&#160; They require the site to be secured which wouldn’t work for a blog.</p>
<p>I emailed a couple of the other community hosting options and got a very nice reply from <a href="http://www.fpweb.net/">FPWeb</a>.&#160;&#160; One of the services they offer gives you a single site collection on SharePoint Foundation which you can optionally give anonymous access to.&#160;&#160; The site is limited in terms of which SharePoint features are available but they did offer the blog template.&#160; If you’re not familiar with the differences check out this <a href="http://www.fpweb.net/sharepoint-hosting/2010/features/foundation-vs-server.as">great guide</a> which details the plans that are available.&#160;&#160; The site provided uses SharePoint hostname site collections which allows me to have a fully qualified domain name (<a href="http://blog.vallery.net/">http://blog.vallery.net/</a>) point to a single site collection on their web application.&#160;&#160; </p>
<p>For my use case there were a few limitations that bit me:</p>
<ul>
<li>Deployed custom solutions must fit into a “Sandboxed Solution”.&#160;&#160;&#160; This is true for any of the non-dedicated online SharePoint option though so not an issue with FPWeb specifically.&#160;&#160;&#160; This means that many of the things I’m used to doing for my customer’s on-premise installations are not possible in the cloud.&#160;&#160; Microsoft has a <a href="http://msdn.microsoft.com/en-us/library/gg615454.aspx">good list</a> of the limitations of SandBoxed solutions worth reading.&#160; The things I missed the most are:
<ul>
<li>Ability to create custom delegate controls.&#160;&#160;&#160; This made doing a custom searchbox a bit more difficult and less flexible than I’d like. </li>
<li>Ability to integrate with external systems.&#160;&#160; My current WordPress based blog will post to twitter automatically when I write a new article but given that no external HTTP requests are allowed I can’t write an event receiver to do that for me. </li>
<li>I have to deploy all style assets to the SharePoint “Style Library” because I can’t write to the file system.&#160;&#160;&#160; This could potentially have a negative impact on performance because now they live in the database. </li>
<li>I wanted to create a few custom controls to handle some of the style elements.&#160;&#160; For example the banner on the site isn’t as flexible as I’d like.&#160;&#160; It should really pull the title, url, and description from SPContext.current.web.&#160;&#160; I had to hardcode them into the masterpage which means my solution isn’t portable.</li>
</ul>
</li>
</ul>
<ul>
<li>Since FPWeb only provides SharePoint Foundation it makes branding more difficult.&#160;&#160; There are a number of capabilities found in the enterprise publishing features that I typically use with my customers which were unavailable to me.&#160;
<ul>
<li>In a custom masterpage you can use the SPUrl object to find a the URL of the site collection or site in order to reference your style library (to include CSS, JS, and images on the page).&#160;&#160; This is not available if you don’t have enterprise so I had to hard code the path to the Style Library into the masterpage.&#160;&#160; On my development box I created a blog site collection in a managed path off the root which made the path different than my site here at FPWeb (which is the root site collection).&#160;&#160; This caused me to have to make a quick change every time I switched from my dev box to pushing out the solution to FPWeb.</li>
</ul>
</li>
</ul>
<ul>
<li>Search is limited given that it is only SharePoint Foundation.&#160; This is fine because I only need a site scoped search anyways.&#160;&#160; The trouble of course is that it turns out the control that is used is very different.&#160;&#160; I styled the Enterprise version since that is what I had on my dev box.&#160;&#160; Once I deployed to FPWeb I discovered that none of my styles worked.&#160;&#160; I had to go back and refactor for the foundation search box.&#160;&#160; It wasn’t a huge issue but it took me a while to figure out why my styles weren’t working!</li>
</ul>
<p>Once I got my solution done with my custom style I needed to get all my old content off my WordPress blog and onto SharePoint.&#160;&#160; I had some good conversations with <a href="http://www.metalogix.com/Home.aspx">Metalogix</a> at their booth during the SharePoint conference in Anaheim so I was already familiar their <a href="http://www.metalogix.com/Products/Migration-Manager-for-SharePoint/Blogs-and-Wikis-Edition.aspx">&quot;Migration Manager for Blogs and Wikis&quot;</a> product.&#160;&#160; They were kind enough to give me a trial key which was enough to migrate my posts and comments from wordpress across.&#160;&#160; The process was painless and just required confirming the source and destination.&#160;&#160; It was able to capture metadata as well like category which was handy.&#160;&#160; </p>
<p>I did discover a few issues with the way the data was migrated though.&#160; I realized that the blog author for all of the posts and comments was listed as me.&#160;&#160; I guess this make sense since the author field is tied to a people picker and needs to be a person.&#160;&#160; None of the comment authors in wordpress are users in my SharePoint environment obviously.&#160;&#160;&#160; Metalogix handles this by creating a couple of extra columns on the comments list which store the original comment author, name, and email address.&#160;&#160; I plan on writing a custom XSLT file and view to parse this at some point to place this information onto the page.&#160; I’ve also included these fields on the new comment dialogue so I can capture it for future comments.&#160; For now though I’m listed as the comment author for all of the comments.</p>
<p>The only issue I had with the Metalogix tool is the moving of images.&#160;&#160; This could easily have been my fault as well so I don’t want to blame the tool.&#160;&#160; My posts had a number of embedded images which WordPress stored in the wp-content folder.&#160;&#160; My expectation would have been that Metalogix would have grabbed those files and put them into SharePoint and updated the references.&#160;&#160; It even looked like it attempted to do that however I received a bunch of error messages which indicated failure.&#160;&#160; My images are still linking to their original source on my WordPress site (which is still up) so they are not broken.&#160;&#160; One of my todo items is to migrate those across by hand and then update my old posts that reference them.&#160;&#160;&#160;&#160; This will give me an opportunity to clean up my old posts anyways which I’ve been meaning to do for a while.</p>
<p>With everything up and running I put 301 redirects into the .htaccess file on my WordPress server for each post.&#160;&#160; I pulled out a list of all the posts from the SharePoint list and matched them up to their original URL (which thankfully Metalogix stores in an additional column for me).&#160;&#160; With all of these URLs known I’m able to redirect the deeplinks to their specific posts.&#160;&#160; WordPress has the handy SEO optimized permalinks which SharePoint does not. </p>
<p>Overall I’m very satisfied with both FPWeb and Metalogix.&#160; Without either of them this project would have been significantly more difficult.&#160;&#160; If you can accept the limitations of hosting your SharePoint site in a shared environment then I highly recommend FPWeb.</p>
<p>In case anyone is interested in the actual development work that was involved with the branding in all this I’ve posted my Visual Studio project.&#160; In total I spent about 15 hours on the entire project over my Thanksgiving weekend. You can download the project at <a title="http://vallery.net/wp-content/uploads/2012/01/ValleryBlog.zip" href="http://vallery.net/wp-content/uploads/2012/01/ValleryBlog.zip">http://vallery.net/wp-content/uploads/2012/01/ValleryBlog.zip</a><a href="http://blog.vallery.net/Attachments/ValleryBlog.zip">.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://vallery.net/2012/01/26/blog-migration-to-sharepoint/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Disable email notifications in SharePoint 2010</title>
		<link>http://vallery.net/2011/01/13/disable-email-notifications-in-sharepoint-2010/</link>
		<comments>http://vallery.net/2011/01/13/disable-email-notifications-in-sharepoint-2010/#comments</comments>
		<pubDate>Thu, 13 Jan 2011 17:36:42 +0000</pubDate>
		<dc:creator>jvallery</dc:creator>
				<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[sharepoint 2010]]></category>

		<guid isPermaLink="false">http://vallery.net/?p=213</guid>
		<description><![CDATA[Out of the box in SharePoint 2010 all users who have a profile are also defaulted to having email notifications set to &#8220;on&#8221;.   This might make sense in a small scale implementation but for my customer that was unacceptable.  I created a powershell script that iterates through the user profiles and turns the notifications off.  [...]]]></description>
			<content:encoded><![CDATA[<p>Out of the box in SharePoint 2010 all users who have a profile are also defaulted to having email notifications set to &#8220;on&#8221;.   This might make sense in a small scale implementation but for my customer that was unacceptable.  I created a powershell script that iterates through the user profiles and turns the notifications off.  This script is similar to ones I&#8217;ve posted before for working with the user profile however it uses different fields.  The SharePoint field is called SPS-EmailOptin.   This field disables both SharePoint and NewsGator emails.</p>
<p>Of course in future releases these field names might change so you should verify before using this script.  In my case this was SharePoint 2010 October CU and NewsGator Social Sites 1.2.2419.</p>
<pre><span style="color: #008000;">#</span><span style="color: #008000;">Load the SharePoint snap-in</span><span style="color: #008000;">
</span><span style="color: #5f9ea0; font-weight: bold;">Add-PsSnapin</span><span style="color: #000000;"> </span><span style="color: #800000;">Microsoft.SharePoint.PowerShell</span><span style="color: #000000;">;

</span><span style="color: #008000;">#</span><span style="color: #008000;">Load the SharePoint assemblies</span><span style="color: #008000;">
</span><span style="color: #000000;">[</span><span style="color: #008080;">System.Reflection.Assembly</span><span style="color: #000000;">]::</span><span style="color: #8b4513;">LoadWithPartialName</span><span style="color: #000000;">(</span><span style="color: #800000;">"</span><span style="color: #800000;">Microsoft.Office.Server</span><span style="color: #800000;">"</span><span style="color: #000000;">);
[</span><span style="color: #008080;">System.Reflection.Assembly</span><span style="color: #000000;">]::</span><span style="color: #8b4513;">LoadWithPartialName</span><span style="color: #000000;">(</span><span style="color: #800000;">"</span><span style="color: #800000;">Microsoft.Office.Server.UserProfiles</span><span style="color: #800000;">"</span><span style="color: #000000;">);

</span><span style="color: #008000;">#</span><span style="color: #008000;">Specify the MySite URL</span><span style="color: #008000;">
</span><span style="color: #800080;">$MySiteUrl</span><span style="color: #000000;"> </span><span style="color: #ff0000;">=</span><span style="color: #000000;"> </span><span style="color: #800000;">"</span><span style="color: #800000;">http://sharepoint.vallery.net/</span><span style="color: #800000;">"</span><span style="color: #000000;">;

</span><span style="color: #008000;">#</span><span style="color: #008000;">Get the server context for the profile manager</span><span style="color: #008000;">
</span><span style="color: #800080;">$site</span><span style="color: #000000;"> </span><span style="color: #ff0000;">=</span><span style="color: #000000;"> </span><span style="color: #5f9ea0; font-weight: bold;">Get-SPSite</span><span style="color: #000000;"> </span><span style="color: #800080;">$MySiteUrl</span><span style="color: #000000;">;
</span><span style="color: #800080;">$ServerContext</span><span style="color: #000000;"> </span><span style="color: #ff0000;">=</span><span style="color: #000000;"> </span><span style="color: #5f9ea0; font-weight: bold;">Get-SPServiceContext</span><span style="color: #000000;"> </span><span style="color: #800080;">$site</span><span style="color: #000000;">;
</span><span style="color: #800080;">$UPManager</span><span style="color: #000000;"> </span><span style="color: #ff0000;">=</span><span style="color: #000000;"> </span><span style="color: #5f9ea0; font-weight: bold;">new-object</span><span style="color: #000000;"> </span><span style="color: #800000;">Microsoft.Office.Server.UserProfiles.UserProfileManager</span><span style="color: #000000;">(</span><span style="color: #800080;">$ServerContext</span><span style="color: #000000;">);

</span><span style="color: #008000;">#</span><span style="color: #008000;">Count variables</span><span style="color: #008000;">
</span><span style="color: #800080;">$ucount</span><span style="color: #000000;"> </span><span style="color: #ff0000;">=</span><span style="color: #000000;"> </span><span style="color: #000000;">0</span><span style="color: #000000;">;

</span><span style="color: #800080;">$enumProfiles</span><span style="color: #000000;"> </span><span style="color: #ff0000;">=</span><span style="color: #000000;"> </span><span style="color: #800080;">$UPManager</span><span style="color: #000000;">.GetEnumerator();
</span><span style="color: #800000;">"</span><span style="color: #800000;">Total User Profiles available:</span><span style="color: #800000;">"</span><span style="color: #000000;"> </span><span style="color: #ff0000;">+</span><span style="color: #000000;"> </span><span style="color: #800080;">$UPManager</span><span style="color: #000000;">.Count
</span><span style="color: #800080;">$count</span><span style="color: #ff0000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;

</span><span style="color: #008000;">#</span><span style="color: #008000;">Loop through the profile entries and update the property</span><span style="color: #008000;">
#</span><span style="color: #008000;">Recieve Instant Notifications - NGAllowMetaEmail (bool)</span><span style="color: #008000;">
#</span><span style="color: #008000;">24 Hour Digest Email - NGReceiveDigestEmail (bool)</span><span style="color: #008000;">
#</span><span style="color: #008000;">RSS NewsFeed Email - NGAllowRssEmail (bool)</span><span style="color: #008000;">
#</span><span style="color: #008000;">SharePoint Notification emails - SPS-EmailOptin (int)
#This field has 3 values one for each email type</span><span style="color: #008000;">
</span><span style="color: #000000;">
</span><span style="color: #0000ff;">foreach</span><span style="color: #000000;"> (</span><span style="color: #800080;">$oUser</span><span style="color: #000000;"> </span><span style="color: #0000ff;">in</span><span style="color: #000000;"> </span><span style="color: #800080;">$enumProfiles</span><span style="color: #000000;">)
{
    </span><span style="color: #800080;">$count</span><span style="color: #000000;"> </span><span style="color: #ff0000;">=</span><span style="color: #000000;"> </span><span style="color: #800080;">$count</span><span style="color: #000000;"> </span><span style="color: #ff0000;">+</span><span style="color: #000000;"> </span><span style="color: #000000;">1</span><span style="color: #000000;">;
    </span><span style="color: #800080;">$u</span><span style="color: #000000;"> </span><span style="color: #ff0000;">=</span><span style="color: #000000;"> </span><span style="color: #800080;">$oUser</span><span style="color: #000000;">.Item(</span><span style="color: #800000;">"</span><span style="color: #800000;">Accountname</span><span style="color: #800000;">"</span><span style="color: #000000;">);
    </span><span style="color: #5f9ea0; font-weight: bold;">Write-Output</span><span style="color: #000000;"> </span><span style="color: #800000;">"</span><span style="color: #800000;">($count):  Setting values for $u</span><span style="color: #800000;">"</span><span style="color: #000000;">;

    </span><span style="color: #800080;">$oUser</span><span style="color: #000000;">[</span><span style="color: #800000;">"</span><span style="color: #800000;">NGAllowMetaEmail</span><span style="color: #800000;">"</span><span style="color: #000000;">].Value </span><span style="color: #ff0000;">=</span><span style="color: #000000;"> </span><span style="color: #800080;">$false</span><span style="color: #000000;">;
    </span><span style="color: #800080;">$oUser</span><span style="color: #000000;">[</span><span style="color: #800000;">"</span><span style="color: #800000;">NGReceiveDigestEmail</span><span style="color: #800000;">"</span><span style="color: #000000;">].Value </span><span style="color: #ff0000;">=</span><span style="color: #000000;"> </span><span style="color: #800080;">$false</span><span style="color: #000000;">;
    </span><span style="color: #800080;">$oUser</span><span style="color: #000000;">[</span><span style="color: #800000;">"</span><span style="color: #800000;">NGAllowRssEmail</span><span style="color: #800000;">"</span><span style="color: #000000;">].Value </span><span style="color: #ff0000;">=</span><span style="color: #000000;"> </span><span style="color: #800080;">$false</span><span style="color: #000000;">;
    </span><span style="color: #800080;">$oUser</span><span style="color: #000000;">[</span><span style="color: #800000;">"</span><span style="color: #800000;">SPS-EmailOptin</span><span style="color: #800000;">"</span><span style="color: #000000;">].Value </span><span style="color: #ff0000;">=</span><span style="color: #000000;"> </span><span style="color: #000000;">111</span><span style="color: #000000;">; 

    </span><span style="color: #800080;">$oUser</span><span style="color: #000000;">.Commit();
} 

</span><span style="color: #008000;">#</span><span style="color: #008000;">Dispose of site object</span><span style="color: #008000;">
</span><span style="color: #800080;">$site</span><span style="color: #000000;">.Dispose();</span></pre>
]]></content:encoded>
			<wfw:commentRss>http://vallery.net/2011/01/13/disable-email-notifications-in-sharepoint-2010/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>My 2010 travel statistics</title>
		<link>http://vallery.net/2011/01/07/my-2010-travel-statistics/</link>
		<comments>http://vallery.net/2011/01/07/my-2010-travel-statistics/#comments</comments>
		<pubDate>Fri, 07 Jan 2011 05:49:40 +0000</pubDate>
		<dc:creator>jvallery</dc:creator>
				<category><![CDATA[Travel]]></category>
		<category><![CDATA[2010]]></category>
		<category><![CDATA[travel]]></category>

		<guid isPermaLink="false">http://vallery.net/?p=211</guid>
		<description><![CDATA[Now that the year has drawn to a close I took a few minutes to tally up all of my nights away from home.  I was surprised to learn that I actually spent LESS time away than I initially would have assumed.  It certainly was a grueling year of back and forth across the country [...]]]></description>
			<content:encoded><![CDATA[<p>Now that the year has drawn to a close I took a few minutes to tally up all of my nights away from home.  I was surprised to learn that I actually spent LESS time away than I initially would have assumed.  It certainly was a grueling year of back and forth across the country (and the world!).</p>
<p>After all was said and done I spent 38.63% of the nights last year away from home.  Here are the numbers as they break down by city visited:</p>
<table style="height: 224px;" border="0" cellspacing="0" cellpadding="0" width="399">
<tbody>
<tr>
<td width="159" valign="bottom"><strong>Location</strong></td>
<td width="84" valign="bottom"><strong>Nights Away</strong></td>
</tr>
<tr>
<td width="159" valign="bottom">Stockholm, Sweden</td>
<td width="84" valign="bottom">37</td>
</tr>
<tr>
<td width="159" valign="bottom">Rahway, NJ</td>
<td width="84" valign="bottom">33</td>
</tr>
<tr>
<td width="159" valign="bottom">Springfield, VA</td>
<td width="84" valign="bottom">32</td>
</tr>
<tr>
<td width="159" valign="bottom">Whitehouse Station, NJ</td>
<td width="84" valign="bottom">17</td>
</tr>
<tr>
<td width="159" valign="bottom">New York City</td>
<td width="84" valign="bottom">5</td>
</tr>
<tr>
<td width="159" valign="bottom">Wailea, HI</td>
<td width="84" valign="bottom">5</td>
</tr>
<tr>
<td width="159" valign="bottom">30,000 feet</td>
<td width="84" valign="bottom">3</td>
</tr>
<tr>
<td width="159" valign="bottom">Portland, OR</td>
<td width="84" valign="bottom">3</td>
</tr>
<tr>
<td width="159" valign="bottom">Toronto, Canada</td>
<td width="84" valign="bottom">2</td>
</tr>
<tr>
<td width="159" valign="bottom">Chicago, IL</td>
<td width="84" valign="bottom">1</td>
</tr>
<tr>
<td width="159" valign="bottom">Colorado Springs, CO</td>
<td width="84" valign="bottom">1</td>
</tr>
<tr>
<td width="159" valign="bottom">Newark, DE</td>
<td width="84" valign="bottom">1</td>
</tr>
<tr>
<td width="159" valign="bottom">Williamsburg, VA</td>
<td width="84" valign="bottom">1</td>
</tr>
<tr>
<td width="159" valign="bottom"><strong>Total</strong></td>
<td width="84" valign="bottom"><strong>141</strong></td>
</tr>
<tr>
<td width="159" valign="bottom"><strong>%age of year</strong></td>
<td width="84" valign="bottom"><strong>38.63%</strong></td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://vallery.net/2011/01/07/my-2010-travel-statistics/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Enumerating user profile property fields in SharePoint 2010 with PowerShell</title>
		<link>http://vallery.net/2010/11/30/enumerating-user-profile-property-fields-in-sharepoint-2010-with-powershell/</link>
		<comments>http://vallery.net/2010/11/30/enumerating-user-profile-property-fields-in-sharepoint-2010-with-powershell/#comments</comments>
		<pubDate>Tue, 30 Nov 2010 06:31:09 +0000</pubDate>
		<dc:creator>jvallery</dc:creator>
				<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[sharepoint 2010]]></category>

		<guid isPermaLink="false">http://vallery.net/?p=209</guid>
		<description><![CDATA[I&#8217;ve been working quite a bit with SharePoint 2010 lately and have written a number of PowerShell scripts that I think will be useful to folks. This is the first of these. This script connects to the User Profile managed service application and iterates through all of the properties that have been configured dumping the [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been working quite a bit with SharePoint 2010 lately and have written a number of PowerShell scripts that I think will be useful to folks.   This is the first of these.</p>
<p>This script connects to the User Profile managed service application and iterates through all of the properties that have been configured dumping the result to XML.   The script additionally pulls in any mappings to active directory.</p>
<p>I&#8217;m currently working on a script that will import this XML and update the properties accordingly.   I hope to post that soon as well.</p>
<pre><span style="color: #008000;">#</span><span style="color: #008000;">Define our configuration. This is the name you gave the import connection to AD</span><span style="color: #008000;">
</span><span style="color: #800080;">$url</span><span style="color: #000000;"> </span><span style="color: #FF0000;">=</span><span style="color: #000000;"> </span><span style="color: #800000;">"</span><span style="color: #800000;">http://sharepoint.vallery.net/</span><span style="color: #800000;">"</span><span style="color: #000000;">;
</span><span style="color: #800080;">$connectionName</span><span style="color: #000000;"> </span><span style="color: #FF0000;">=</span><span style="color: #000000;"> </span><span style="color: #800000;">"</span><span style="color: #800000;">Profile Sync</span><span style="color: #800000;">"</span><span style="color: #000000;">;

</span><span style="color: #008000;">#</span><span style="color: #008000;">Setup our SharePoint objects</span><span style="color: #008000;">
</span><span style="color: #800080;">$site</span><span style="color: #000000;"> </span><span style="color: #FF0000;">=</span><span style="color: #000000;"> </span><span style="color: #5F9EA0; font-weight: bold;">Get-SPSite</span><span style="color: #000000;"> </span><span style="color: #800080;">$url</span><span style="color: #000000;">;
</span><span style="color: #800080;">$serviceContext</span><span style="color: #000000;"> </span><span style="color: #FF0000;">=</span><span style="color: #000000;"> Get-SPServiceContext(</span><span style="color: #800080;">$site</span><span style="color: #000000;">);
</span><span style="color: #800080;">$upManager</span><span style="color: #000000;"> </span><span style="color: #FF0000;">=</span><span style="color: #000000;"> </span><span style="color: #5F9EA0; font-weight: bold;">new-object</span><span style="color: #000000;"> </span><span style="color: #800000;">Microsoft.Office.Server.UserProfiles.UserProfileConfigManager</span><span style="color: #000000;">(</span><span style="color: #800080;">$serviceContext</span><span style="color: #000000;">);
</span><span style="color: #800080;">$syncConnection</span><span style="color: #000000;"> </span><span style="color: #FF0000;">=</span><span style="color: #000000;"> </span><span style="color: #800080;">$upManager</span><span style="color: #000000;">.</span><span style="color: #8B4513;">ConnectionManager</span><span style="color: #000000;">[</span><span style="color: #800080;">$connectionName</span><span style="color: #000000;">];

</span><span style="color: #008000;">#</span><span style="color: #008000;">This is a collection of mappings to AD that we will use later </span><span style="color: #008000;">
</span><span style="color: #800080;">$pmc</span><span style="color: #000000;"> </span><span style="color: #FF0000;">=</span><span style="color: #000000;"> </span><span style="color: #800080;">$syncConnection</span><span style="color: #000000;">.</span><span style="color: #8B4513;">PropertyMapping</span><span style="color: #000000;">;

</span><span style="color: #008000;">#</span><span style="color: #008000;">This is a collection of all of the properties which we will iterate</span><span style="color: #008000;">
</span><span style="color: #800080;">$properties</span><span style="color: #000000;"> </span><span style="color: #FF0000;">=</span><span style="color: #000000;"> </span><span style="color: #800080;">$upManager</span><span style="color: #000000;">.</span><span style="color: #8B4513;">GetProperties</span><span style="color: #000000;">();

</span><span style="color: #008000;">#</span><span style="color: #008000;"> Create a new XML writer settings object </span><span style="color: #008000;">
</span><span style="color: #800080;">$settings</span><span style="color: #000000;"> </span><span style="color: #FF0000;">=</span><span style="color: #000000;"> </span><span style="color: #5F9EA0; font-weight: bold;">New-Object</span><span style="color: #000000;"> </span><span style="color: #800000;">system.Xml.XmlWriterSettings</span><span style="color: #000000;">;
</span><span style="color: #800080;">$settings</span><span style="color: #000000;">.</span><span style="color: #8B4513;">Indent</span><span style="color: #000000;"> </span><span style="color: #FF0000;">=</span><span style="color: #000000;"> </span><span style="color: #800080;">$true</span><span style="color: #000000;">;
</span><span style="color: #800080;">$settings</span><span style="color: #000000;">.</span><span style="color: #8B4513;">OmitXmlDeclaration</span><span style="color: #000000;"> </span><span style="color: #FF0000;">=</span><span style="color: #000000;"> </span><span style="color: #800080;">$false</span><span style="color: #000000;">;
</span><span style="color: #800080;">$settings</span><span style="color: #000000;">.</span><span style="color: #8B4513;">NewLineOnAttributes</span><span style="color: #000000;"> </span><span style="color: #FF0000;">=</span><span style="color: #000000;"> </span><span style="color: #800080;">$true</span><span style="color: #000000;">;

</span><span style="color: #008000;">#</span><span style="color: #008000;"> Create a new string writer to capture the output </span><span style="color: #008000;">
</span><span style="color: #800080;">$sw</span><span style="color: #000000;"> </span><span style="color: #FF0000;">=</span><span style="color: #000000;"> </span><span style="color: #5F9EA0; font-weight: bold;">new-object</span><span style="color: #000000;"> </span><span style="color: #800000;">System.IO.StringWriter</span><span style="color: #000000;">;

</span><span style="color: #008000;">#</span><span style="color: #008000;"> Create a new XmlWriter </span><span style="color: #008000;">
</span><span style="color: #800080;">$writer</span><span style="color: #000000;"> </span><span style="color: #FF0000;">=</span><span style="color: #000000;"> [</span><span style="color: #008080;">system.xml.XmlWriter</span><span style="color: #000000;">]::</span><span style="color: #8B4513;">Create</span><span style="color: #000000;">(</span><span style="color: #800080;">$sw</span><span style="color: #000000;">, </span><span style="color: #800080;">$settings</span><span style="color: #000000;">); 

</span><span style="color: #008000;">#</span><span style="color: #008000;">Start the document and add the root node</span><span style="color: #008000;">
</span><span style="color: #800080;">$writer</span><span style="color: #000000;">.</span><span style="color: #8B4513;">WriteStartDocument</span><span style="color: #000000;">();
</span><span style="color: #800080;">$writer</span><span style="color: #000000;">.</span><span style="color: #8B4513;">WriteStartElement</span><span style="color: #000000;">(</span><span style="color: #800000;">"</span><span style="color: #800000;">properties</span><span style="color: #800000;">"</span><span style="color: #000000;">);

</span><span style="color: #008000;">#</span><span style="color: #008000;">Iterate through the properties</span><span style="color: #008000;">
</span><span style="color: #0000FF;">foreach</span><span style="color: #000000;"> (</span><span style="color: #800080;">$item</span><span style="color: #000000;"> </span><span style="color: #0000FF;">in</span><span style="color: #000000;"> </span><span style="color: #800080;">$properties</span><span style="color: #000000;">);
{

    </span><span style="color: #008000;">#</span><span style="color: #008000;">Create the property element</span><span style="color: #008000;">
</span><span style="color: #000000;">    </span><span style="color: #800080;">$writer</span><span style="color: #000000;">.</span><span style="color: #8B4513;">WriteStartElement</span><span style="color: #000000;">(</span><span style="color: #800000;">"</span><span style="color: #800000;">property</span><span style="color: #800000;">"</span><span style="color: #000000;">);

    </span><span style="color: #008000;">#</span><span style="color: #008000;">Add in the fields as attributes</span><span style="color: #008000;">
</span><span style="color: #000000;">    </span><span style="color: #800080;">$writer</span><span style="color: #000000;">.</span><span style="color: #8B4513;">WriteAttributeString</span><span style="color: #000000;">(</span><span style="color: #800000;">"</span><span style="color: #800000;">Name</span><span style="color: #800000;">"</span><span style="color: #000000;">, </span><span style="color: #800080;">$item</span><span style="color: #000000;">.</span><span style="color: #8B4513;">Name</span><span style="color: #000000;">);
    </span><span style="color: #800080;">$writer</span><span style="color: #000000;">.</span><span style="color: #8B4513;">WriteAttributeString</span><span style="color: #000000;">(</span><span style="color: #800000;">"</span><span style="color: #800000;">DisplayName</span><span style="color: #800000;">"</span><span style="color: #000000;">,</span><span style="color: #800080;">$item</span><span style="color: #000000;">.</span><span style="color: #8B4513;">DisplayName</span><span style="color: #000000;">);
    </span><span style="color: #800080;">$writer</span><span style="color: #000000;">.</span><span style="color: #8B4513;">WriteAttributeString</span><span style="color: #000000;">(</span><span style="color: #800000;">"</span><span style="color: #800000;">ManagedPropertyName</span><span style="color: #800000;">"</span><span style="color: #000000;">,</span><span style="color: #800080;">$item</span><span style="color: #000000;">.</span><span style="color: #8B4513;">ManagedPropertyName</span><span style="color: #000000;">);
    </span><span style="color: #800080;">$writer</span><span style="color: #000000;">.</span><span style="color: #8B4513;">WriteAttributeString</span><span style="color: #000000;">(</span><span style="color: #800000;">"</span><span style="color: #800000;">Type</span><span style="color: #800000;">"</span><span style="color: #000000;">,</span><span style="color: #800080;">$item</span><span style="color: #000000;">.</span><span style="color: #8B4513;">Type</span><span style="color: #000000;">);
    </span><span style="color: #800080;">$writer</span><span style="color: #000000;">.</span><span style="color: #8B4513;">WriteAttributeString</span><span style="color: #000000;">(</span><span style="color: #800000;">"</span><span style="color: #800000;">ChoiceList</span><span style="color: #800000;">"</span><span style="color: #000000;">,</span><span style="color: #800080;">$item</span><span style="color: #000000;">.</span><span style="color: #8B4513;">ChoiceList</span><span style="color: #000000;">);
    </span><span style="color: #800080;">$writer</span><span style="color: #000000;">.</span><span style="color: #8B4513;">WriteAttributeString</span><span style="color: #000000;">(</span><span style="color: #800000;">"</span><span style="color: #800000;">Description</span><span style="color: #800000;">"</span><span style="color: #000000;">,</span><span style="color: #800080;">$item</span><span style="color: #000000;">.</span><span style="color: #8B4513;">Description</span><span style="color: #000000;">);
    </span><span style="color: #800080;">$writer</span><span style="color: #000000;">.</span><span style="color: #8B4513;">WriteAttributeString</span><span style="color: #000000;">(</span><span style="color: #800000;">"</span><span style="color: #800000;">URI</span><span style="color: #800000;">"</span><span style="color: #000000;">,</span><span style="color: #800080;">$item</span><span style="color: #000000;">.</span><span style="color: #8B4513;">URI</span><span style="color: #000000;">);
    </span><span style="color: #800080;">$writer</span><span style="color: #000000;">.</span><span style="color: #8B4513;">WriteAttributeString</span><span style="color: #000000;">(</span><span style="color: #800000;">"</span><span style="color: #800000;">IsSystem</span><span style="color: #800000;">"</span><span style="color: #000000;">,</span><span style="color: #800080;">$item</span><span style="color: #000000;">.</span><span style="color: #8B4513;">IsSystem</span><span style="color: #000000;">);
    </span><span style="color: #800080;">$writer</span><span style="color: #000000;">.</span><span style="color: #8B4513;">WriteAttributeString</span><span style="color: #000000;">(</span><span style="color: #800000;">"</span><span style="color: #800000;">AllowPolicyOverride</span><span style="color: #800000;">"</span><span style="color: #000000;">,</span><span style="color: #800080;">$item</span><span style="color: #000000;">.</span><span style="color: #8B4513;">AllowPolicyOverride</span><span style="color: #000000;">);
    </span><span style="color: #800080;">$writer</span><span style="color: #000000;">.</span><span style="color: #8B4513;">WriteAttributeString</span><span style="color: #000000;">(</span><span style="color: #800000;">"</span><span style="color: #800000;">IsUserEditable</span><span style="color: #800000;">"</span><span style="color: #000000;">,</span><span style="color: #800080;">$item</span><span style="color: #000000;">.</span><span style="color: #8B4513;">IsUserEditable</span><span style="color: #000000;">);
    </span><span style="color: #800080;">$writer</span><span style="color: #000000;">.</span><span style="color: #8B4513;">WriteAttributeString</span><span style="color: #000000;">(</span><span style="color: #800000;">"</span><span style="color: #800000;">IsAdminEditable</span><span style="color: #800000;">"</span><span style="color: #000000;">,</span><span style="color: #800080;">$item</span><span style="color: #000000;">.</span><span style="color: #8B4513;">IsAdminEditable</span><span style="color: #000000;">);
    </span><span style="color: #800080;">$writer</span><span style="color: #000000;">.</span><span style="color: #8B4513;">WriteAttributeString</span><span style="color: #000000;">(</span><span style="color: #800000;">"</span><span style="color: #800000;">IsImported</span><span style="color: #800000;">"</span><span style="color: #000000;">,</span><span style="color: #800080;">$item</span><span style="color: #000000;">.</span><span style="color: #8B4513;">IsImported</span><span style="color: #000000;">);
    </span><span style="color: #800080;">$writer</span><span style="color: #000000;">.</span><span style="color: #8B4513;">WriteAttributeString</span><span style="color: #000000;">(</span><span style="color: #800000;">"</span><span style="color: #800000;">Length</span><span style="color: #800000;">"</span><span style="color: #000000;">,</span><span style="color: #800080;">$item</span><span style="color: #000000;">.</span><span style="color: #8B4513;">Length</span><span style="color: #000000;">);
    </span><span style="color: #800080;">$writer</span><span style="color: #000000;">.</span><span style="color: #8B4513;">WriteAttributeString</span><span style="color: #000000;">(</span><span style="color: #800000;">"</span><span style="color: #800000;">IsMultivalued</span><span style="color: #800000;">"</span><span style="color: #000000;">,</span><span style="color: #800080;">$item</span><span style="color: #000000;">.</span><span style="color: #8B4513;">IsMultivalued</span><span style="color: #000000;">);
    </span><span style="color: #800080;">$writer</span><span style="color: #000000;">.</span><span style="color: #8B4513;">WriteAttributeString</span><span style="color: #000000;">(</span><span style="color: #800000;">"</span><span style="color: #800000;">ChoiceType</span><span style="color: #800000;">"</span><span style="color: #000000;">,</span><span style="color: #800080;">$item</span><span style="color: #000000;">.</span><span style="color: #8B4513;">ChoiceType</span><span style="color: #000000;">);
    </span><span style="color: #800080;">$writer</span><span style="color: #000000;">.</span><span style="color: #8B4513;">WriteAttributeString</span><span style="color: #000000;">(</span><span style="color: #800000;">"</span><span style="color: #800000;">DefaultPrivacy</span><span style="color: #800000;">"</span><span style="color: #000000;">,</span><span style="color: #800080;">$item</span><span style="color: #000000;">.</span><span style="color: #8B4513;">DefaultPrivacy</span><span style="color: #000000;">);
    </span><span style="color: #800080;">$writer</span><span style="color: #000000;">.</span><span style="color: #8B4513;">WriteAttributeString</span><span style="color: #000000;">(</span><span style="color: #800000;">"</span><span style="color: #800000;">UserOverridePrivacy</span><span style="color: #800000;">"</span><span style="color: #000000;">,</span><span style="color: #800080;">$item</span><span style="color: #000000;">.</span><span style="color: #8B4513;">UserOverridePrivacy</span><span style="color: #000000;">);
    </span><span style="color: #800080;">$writer</span><span style="color: #000000;">.</span><span style="color: #8B4513;">WriteAttributeString</span><span style="color: #000000;">(</span><span style="color: #800000;">"</span><span style="color: #800000;">IsReplicable</span><span style="color: #800000;">"</span><span style="color: #000000;">,</span><span style="color: #800080;">$item</span><span style="color: #000000;">.</span><span style="color: #8B4513;">IsReplicable</span><span style="color: #000000;">);
    </span><span style="color: #800080;">$writer</span><span style="color: #000000;">.</span><span style="color: #8B4513;">WriteAttributeString</span><span style="color: #000000;">(</span><span style="color: #800000;">"</span><span style="color: #800000;">PrivacyPolicy</span><span style="color: #800000;">"</span><span style="color: #000000;">,</span><span style="color: #800080;">$item</span><span style="color: #000000;">.</span><span style="color: #8B4513;">PrivacyPolicy</span><span style="color: #000000;">);
    </span><span style="color: #800080;">$writer</span><span style="color: #000000;">.</span><span style="color: #8B4513;">WriteAttributeString</span><span style="color: #000000;">(</span><span style="color: #800000;">"</span><span style="color: #800000;">DisplayOrder</span><span style="color: #800000;">"</span><span style="color: #000000;">,</span><span style="color: #800080;">$item</span><span style="color: #000000;">.</span><span style="color: #8B4513;">DisplayOrder</span><span style="color: #000000;">);
    </span><span style="color: #800080;">$writer</span><span style="color: #000000;">.</span><span style="color: #8B4513;">WriteAttributeString</span><span style="color: #000000;">(</span><span style="color: #800000;">"</span><span style="color: #800000;">IsColleagueEventLog</span><span style="color: #800000;">"</span><span style="color: #000000;">,</span><span style="color: #800080;">$item</span><span style="color: #000000;">.</span><span style="color: #8B4513;">IsColleagueEventLog</span><span style="color: #000000;">);
    </span><span style="color: #800080;">$writer</span><span style="color: #000000;">.</span><span style="color: #8B4513;">WriteAttributeString</span><span style="color: #000000;">(</span><span style="color: #800000;">"</span><span style="color: #800000;">IsAlias</span><span style="color: #800000;">"</span><span style="color: #000000;">,</span><span style="color: #800080;">$item</span><span style="color: #000000;">.</span><span style="color: #8B4513;">IsAlias</span><span style="color: #000000;">);
    </span><span style="color: #800080;">$writer</span><span style="color: #000000;">.</span><span style="color: #8B4513;">WriteAttributeString</span><span style="color: #000000;">(</span><span style="color: #800000;">"</span><span style="color: #800000;">IsSearchable</span><span style="color: #800000;">"</span><span style="color: #000000;">,</span><span style="color: #800080;">$item</span><span style="color: #000000;">.</span><span style="color: #8B4513;">IsSearchable</span><span style="color: #000000;">);
    </span><span style="color: #800080;">$writer</span><span style="color: #000000;">.</span><span style="color: #8B4513;">WriteAttributeString</span><span style="color: #000000;">(</span><span style="color: #800000;">"</span><span style="color: #800000;">IsUpgrade</span><span style="color: #800000;">"</span><span style="color: #000000;">,</span><span style="color: #800080;">$item</span><span style="color: #000000;">.</span><span style="color: #8B4513;">IsUpgrade</span><span style="color: #000000;">);
    </span><span style="color: #800080;">$writer</span><span style="color: #000000;">.</span><span style="color: #8B4513;">WriteAttributeString</span><span style="color: #000000;">(</span><span style="color: #800000;">"</span><span style="color: #800000;">IsUpgradePrivate</span><span style="color: #800000;">"</span><span style="color: #000000;">,</span><span style="color: #800080;">$item</span><span style="color: #000000;">.</span><span style="color: #8B4513;">IsUpgradePrivate</span><span style="color: #000000;">);
    </span><span style="color: #800080;">$writer</span><span style="color: #000000;">.</span><span style="color: #8B4513;">WriteAttributeString</span><span style="color: #000000;">(</span><span style="color: #800000;">"</span><span style="color: #800000;">IsVisibleOnEditor</span><span style="color: #800000;">"</span><span style="color: #000000;">,</span><span style="color: #800080;">$item</span><span style="color: #000000;">.</span><span style="color: #8B4513;">IsVisibleOnEditor</span><span style="color: #000000;">);
    </span><span style="color: #800080;">$writer</span><span style="color: #000000;">.</span><span style="color: #8B4513;">WriteAttributeString</span><span style="color: #000000;">(</span><span style="color: #800000;">"</span><span style="color: #800000;">IsVisibleOnViewer</span><span style="color: #800000;">"</span><span style="color: #000000;">,</span><span style="color: #800080;">$item</span><span style="color: #000000;">.</span><span style="color: #8B4513;">IsVisibleOnViewer</span><span style="color: #000000;">);
    </span><span style="color: #800080;">$writer</span><span style="color: #000000;">.</span><span style="color: #8B4513;">WriteAttributeString</span><span style="color: #000000;">(</span><span style="color: #800000;">"</span><span style="color: #800000;">IsTaxonomic</span><span style="color: #800000;">"</span><span style="color: #000000;">,</span><span style="color: #800080;">$item</span><span style="color: #000000;">.</span><span style="color: #8B4513;">IsTaxonomic</span><span style="color: #000000;">);
    </span><span style="color: #800080;">$writer</span><span style="color: #000000;">.</span><span style="color: #8B4513;">WriteAttributeString</span><span style="color: #000000;">(</span><span style="color: #800000;">"</span><span style="color: #800000;">Separator</span><span style="color: #800000;">"</span><span style="color: #000000;">,</span><span style="color: #800080;">$item</span><span style="color: #000000;">.</span><span style="color: #8B4513;">Separator</span><span style="color: #000000;">);
    </span><span style="color: #800080;">$writer</span><span style="color: #000000;">.</span><span style="color: #8B4513;">WriteAttributeString</span><span style="color: #000000;">(</span><span style="color: #800000;">"</span><span style="color: #800000;">MaximumShown</span><span style="color: #800000;">"</span><span style="color: #000000;">,</span><span style="color: #800080;">$item</span><span style="color: #000000;">.</span><span style="color: #8B4513;">MaximumShown</span><span style="color: #000000;">);
    </span><span style="color: #800080;">$writer</span><span style="color: #000000;">.</span><span style="color: #8B4513;">WriteAttributeString</span><span style="color: #000000;">(</span><span style="color: #800000;">"</span><span style="color: #800000;">IsSection</span><span style="color: #800000;">"</span><span style="color: #000000;">,</span><span style="color: #800080;">$item</span><span style="color: #000000;">.</span><span style="color: #8B4513;">IsSection</span><span style="color: #000000;">);
    </span><span style="color: #800080;">$writer</span><span style="color: #000000;">.</span><span style="color: #8B4513;">WriteAttributeString</span><span style="color: #000000;">(</span><span style="color: #800000;">"</span><span style="color: #800000;">IsRequired</span><span style="color: #800000;">"</span><span style="color: #000000;">,</span><span style="color: #800080;">$item</span><span style="color: #000000;">.</span><span style="color: #8B4513;">IsRequired</span><span style="color: #000000;">);
    </span><span style="color: #800080;">$writer</span><span style="color: #000000;">.</span><span style="color: #8B4513;">WriteAttributeString</span><span style="color: #000000;">(</span><span style="color: #800000;">"</span><span style="color: #800000;">SubtypeName</span><span style="color: #800000;">"</span><span style="color: #000000;">,</span><span style="color: #800080;">$item</span><span style="color: #000000;">.</span><span style="color: #8B4513;">SubtypeName</span><span style="color: #000000;">);

    </span><span style="color: #008000;">#</span><span style="color: #008000;">Look up any AD mappings in the PropertyManagerCollection and include them</span><span style="color: #008000;">
</span><span style="color: #000000;">    </span><span style="color: #800080;">$writer</span><span style="color: #000000;">.</span><span style="color: #8B4513;">WriteAttributeString</span><span style="color: #000000;">(</span><span style="color: #800000;">"</span><span style="color: #800000;">IsImport</span><span style="color: #800000;">"</span><span style="color: #000000;">,</span><span style="color: #800080;">$pmc</span><span style="color: #000000;">.Item(</span><span style="color: #800080;">$item</span><span style="color: #000000;">.</span><span style="color: #8B4513;">Name</span><span style="color: #000000;">).IsImport);
    </span><span style="color: #800080;">$writer</span><span style="color: #000000;">.</span><span style="color: #8B4513;">WriteAttributeString</span><span style="color: #000000;">(</span><span style="color: #800000;">"</span><span style="color: #800000;">IsExport</span><span style="color: #800000;">"</span><span style="color: #000000;">,</span><span style="color: #800080;">$pmc</span><span style="color: #000000;">.Item(</span><span style="color: #800080;">$item</span><span style="color: #000000;">.</span><span style="color: #8B4513;">Name</span><span style="color: #000000;">).IsExport);
    </span><span style="color: #800080;">$writer</span><span style="color: #000000;">.</span><span style="color: #8B4513;">WriteAttributeString</span><span style="color: #000000;">(</span><span style="color: #800000;">"</span><span style="color: #800000;">DataSourcePropertyName</span><span style="color: #800000;">"</span><span style="color: #000000;">,</span><span style="color: #800080;">$pmc</span><span style="color: #000000;">.Item(</span><span style="color: #800080;">$item</span><span style="color: #000000;">.</span><span style="color: #8B4513;">Name</span><span style="color: #000000;">).DataSourcePropertyName);
    </span><span style="color: #800080;">$writer</span><span style="color: #000000;">.</span><span style="color: #8B4513;">WriteAttributeString</span><span style="color: #000000;">(</span><span style="color: #800000;">"</span><span style="color: #800000;">OriginalDataSourcePropertyName</span><span style="color: #800000;">"</span><span style="color: #000000;">,</span><span style="color: #800080;">$pmc</span><span style="color: #000000;">.Item(</span><span style="color: #800080;">$item</span><span style="color: #000000;">.</span><span style="color: #8B4513;">Name</span><span style="color: #000000;">).OriginalDataSourcePropertyName);
    </span><span style="color: #800080;">$writer</span><span style="color: #000000;">.</span><span style="color: #8B4513;">WriteAttributeString</span><span style="color: #000000;">(</span><span style="color: #800000;">"</span><span style="color: #800000;">AssociationName</span><span style="color: #800000;">"</span><span style="color: #000000;">,</span><span style="color: #800080;">$pmc</span><span style="color: #000000;">.Item(</span><span style="color: #800080;">$item</span><span style="color: #000000;">.</span><span style="color: #8B4513;">Name</span><span style="color: #000000;">).AssociationName);
    </span><span style="color: #800080;">$writer</span><span style="color: #000000;">.</span><span style="color: #8B4513;">WriteAttributeString</span><span style="color: #000000;">(</span><span style="color: #800000;">"</span><span style="color: #800000;">Connection</span><span style="color: #800000;">"</span><span style="color: #000000;">,</span><span style="color: #800080;">$pmc</span><span style="color: #000000;">.Item(</span><span style="color: #800080;">$item</span><span style="color: #000000;">.</span><span style="color: #8B4513;">Name</span><span style="color: #000000;">).Connection.DisplayName);
    </span><span style="color: #800080;">$writer</span><span style="color: #000000;">.</span><span style="color: #8B4513;">WriteEndElement</span><span style="color: #000000;">(); 

}

</span><span style="color: #008000;">#</span><span style="color: #008000;">Finish up</span><span style="color: #008000;">
</span><span style="color: #800080;">$writer</span><span style="color: #000000;">.</span><span style="color: #8B4513;">WriteEndElement</span><span style="color: #000000;">();
</span><span style="color: #800080;">$writer</span><span style="color: #000000;">.</span><span style="color: #8B4513;">WriteEndDocument</span><span style="color: #000000;">();
</span><span style="color: #800080;">$writer</span><span style="color: #000000;">.</span><span style="color: #8B4513;">Flush</span><span style="color: #000000;">();
</span><span style="color: #800080;">$writer</span><span style="color: #000000;">.</span><span style="color: #8B4513;">Close</span><span style="color: #000000;">(); 

</span><span style="color: #008000;">#</span><span style="color: #008000;">Capture the output into a string</span><span style="color: #008000;">
</span><span style="color: #800080;">$result</span><span style="color: #000000;"> </span><span style="color: #FF0000;">=</span><span style="color: #000000;"> </span><span style="color: #800080;">$sw</span><span style="color: #000000;">.</span><span style="color: #8B4513;">ToString</span><span style="color: #000000;">();

</span><span style="color: #008000;">#</span><span style="color: #008000;"> Write the XML out</span><span style="color: #008000;">
</span><span style="color: #5F9EA0; font-weight: bold;">Write-Output</span><span style="color: #000000;"> </span><span style="color: #800080;">$result</span><span style="color: #000000;">;

</span></pre>
<p>And here is an example of the XML output:</p>
<p><textarea name="code" class="xml" cols="60" rows="10"><xml version="1.0" encoding="utf-16" ?>
<properties>
<property Name="UserProfile_GUID" DisplayName="Id" ManagedPropertyName="" Type="unique identifier" ChoiceList="" Description="" URI="urn:schemas-microsoft-com:sharepoint:portal:profile:UserProfile_GUID" IsSystem="True" AllowPolicyOverride="False" IsUserEditable="False" IsAdminEditable="False" IsImported="False" Length="0" IsMultivalued="False" ChoiceType="Off" DefaultPrivacy="Public" UserOverridePrivacy="False" IsReplicable="False" PrivacyPolicy="Mandatory" DisplayOrder="1" IsColleagueEventLog="False" IsAlias="False" IsSearchable="True" IsUpgrade="False" IsUpgradePrivate="False" IsVisibleOnEditor="False" IsVisibleOnViewer="False" IsTaxonomic="False" Separator="Unknown" MaximumShown="10" IsSection="False" IsRequired="True" SubtypeName="UserProfile" IsImport="" IsExport="" DataSourcePropertyName="" OriginalDataSourcePropertyName="" AssociationName="" Connection="" />
<property Name="SID" DisplayName="SID" ManagedPropertyName="" Type="binary" ChoiceList="" Description="" URI="urn:schemas-microsoft-com:sharepoint:portal:profile:SID" IsSystem="True" AllowPolicyOverride="False" IsUserEditable="False" IsAdminEditable="False" IsImported="True" Length="512" IsMultivalued="False" ChoiceType="Off" DefaultPrivacy="Public" UserOverridePrivacy="False" IsReplicable="False" PrivacyPolicy="OptIn" DisplayOrder="2" IsColleagueEventLog="False" IsAlias="False" IsSearchable="False" IsUpgrade="False" IsUpgradePrivate="False" IsVisibleOnEditor="False" IsVisibleOnViewer="False" IsTaxonomic="False" Separator="Unknown" MaximumShown="10" IsSection="False" IsRequired="False" SubtypeName="UserProfile" IsImport="True" IsExport="False" DataSourcePropertyName="objectSid" OriginalDataSourcePropertyName="objectSid" AssociationName="" Connection="Profile Sync" />
<property Name="ADGuid" DisplayName="Active Directory Id" ManagedPropertyName="" Type="binary" ChoiceList="" Description="" URI="ADGuid" IsSystem="True" AllowPolicyOverride="False" IsUserEditable="False" IsAdminEditable="False" IsImported="True" Length="128" IsMultivalued="False" ChoiceType="Off" DefaultPrivacy="Public" UserOverridePrivacy="False" IsReplicable="False" PrivacyPolicy="OptIn" DisplayOrder="3" IsColleagueEventLog="False" IsAlias="False" IsSearchable="False" IsUpgrade="False" IsUpgradePrivate="False" IsVisibleOnEditor="False" IsVisibleOnViewer="False" IsTaxonomic="False" Separator="Unknown" MaximumShown="10" IsSection="False" IsRequired="False" SubtypeName="UserProfile" IsImport="" IsExport="" DataSourcePropertyName="" OriginalDataSourcePropertyName="" AssociationName="" Connection="" />
<property Name="AccountName" DisplayName="Account name" ManagedPropertyName="" Type="Person" ChoiceList="" Description="" URI="urn:schemas-microsoft-com:sharepoint:portal:profile:AccountName" IsSystem="True" AllowPolicyOverride="False" IsUserEditable="False" IsAdminEditable="False" IsImported="True" Length="250" IsMultivalued="False" ChoiceType="Off" DefaultPrivacy="Public" UserOverridePrivacy="False" IsReplicable="False" PrivacyPolicy="Mandatory" DisplayOrder="4" IsColleagueEventLog="False" IsAlias="True" IsSearchable="True" IsUpgrade="False" IsUpgradePrivate="False" IsVisibleOnEditor="True" IsVisibleOnViewer="False" IsTaxonomic="False" Separator="Unknown" MaximumShown="10" IsSection="False" IsRequired="True" SubtypeName="UserProfile" IsImport="" IsExport="" DataSourcePropertyName="" OriginalDataSourcePropertyName="" AssociationName="" Connection="" />
<property Name="FirstName" DisplayName="First name" ManagedPropertyName="" Type="string (Single Value)" ChoiceList="" Description="" URI="urn:schemas-microsoft-com:sharepoint:portal:profile:FirstName" IsSystem="True" AllowPolicyOverride="False" IsUserEditable="False" IsAdminEditable="True" IsImported="True" Length="250" IsMultivalued="False" ChoiceType="Off" DefaultPrivacy="Public" UserOverridePrivacy="False" IsReplicable="True" PrivacyPolicy="OptIn" DisplayOrder="5" IsColleagueEventLog="False" IsAlias="False" IsSearchable="True" IsUpgrade="False" IsUpgradePrivate="False" IsVisibleOnEditor="False" IsVisibleOnViewer="False" IsTaxonomic="False" Separator="Unknown" MaximumShown="10" IsSection="False" IsRequired="False" SubtypeName="UserProfile" IsImport="True" IsExport="False" DataSourcePropertyName="givenName" OriginalDataSourcePropertyName="givenName" AssociationName="" Connection="Profile Sync" />
<property Name="SPS-PhoneticFirstName" DisplayName="Phonetic First Name" ManagedPropertyName="" Type="string (Single Value)" ChoiceList="" Description="" URI="urn:schemas-microsoft-com:sharepoint:portal:profile:SPS-PhoneticFirstName" IsSystem="False" AllowPolicyOverride="True" IsUserEditable="False" IsAdminEditable="True" IsImported="True" Length="64" IsMultivalued="False" ChoiceType="Off" DefaultPrivacy="Public" UserOverridePrivacy="False" IsReplicable="False" PrivacyPolicy="OptIn" DisplayOrder="6" IsColleagueEventLog="False" IsAlias="False" IsSearchable="True" IsUpgrade="False" IsUpgradePrivate="False" IsVisibleOnEditor="True" IsVisibleOnViewer="False" IsTaxonomic="False" Separator="Unknown" MaximumShown="10" IsSection="False" IsRequired="False" SubtypeName="UserProfile" IsImport="True" IsExport="False" DataSourcePropertyName="msDS-PhoneticFirstName" OriginalDataSourcePropertyName="msDS-PhoneticFirstName" AssociationName="" Connection="Profile Sync" />
<property Name="LastName" DisplayName="Last name" ManagedPropertyName="" Type="string (Single Value)" ChoiceList="" Description="" URI="urn:schemas-microsoft-com:sharepoint:portal:profile:LastName" IsSystem="True" AllowPolicyOverride="False" IsUserEditable="False" IsAdminEditable="True" IsImported="True" Length="250" IsMultivalued="False" ChoiceType="Off" DefaultPrivacy="Public" UserOverridePrivacy="False" IsReplicable="True" PrivacyPolicy="OptIn" DisplayOrder="7" IsColleagueEventLog="False" IsAlias="False" IsSearchable="True" IsUpgrade="False" IsUpgradePrivate="False" IsVisibleOnEditor="False" IsVisibleOnViewer="False" IsTaxonomic="False" Separator="Unknown" MaximumShown="10" IsSection="False" IsRequired="False" SubtypeName="UserProfile" IsImport="True" IsExport="False" DataSourcePropertyName="sn" OriginalDataSourcePropertyName="sn" AssociationName="" Connection="Profile Sync" />
<property Name="SPS-PhoneticLastName" DisplayName="Phonetic Last Name" ManagedPropertyName="" Type="string (Single Value)" ChoiceList="" Description="" URI="urn:schemas-microsoft-com:sharepoint:portal:profile:SPS-PhoneticLastName" IsSystem="False" AllowPolicyOverride="True" IsUserEditable="False" IsAdminEditable="True" IsImported="True" Length="64" IsMultivalued="False" ChoiceType="Off" DefaultPrivacy="Public" UserOverridePrivacy="False" IsReplicable="False" PrivacyPolicy="OptIn" DisplayOrder="8" IsColleagueEventLog="False" IsAlias="False" IsSearchable="True" IsUpgrade="False" IsUpgradePrivate="False" IsVisibleOnEditor="True" IsVisibleOnViewer="False" IsTaxonomic="False" Separator="Unknown" MaximumShown="10" IsSection="False" IsRequired="False" SubtypeName="UserProfile" IsImport="True" IsExport="False" DataSourcePropertyName="msDS-PhoneticLastName" OriginalDataSourcePropertyName="msDS-PhoneticLastName" AssociationName="" Connection="Profile Sync" />
<property Name="PreferredName" DisplayName="Name" ManagedPropertyName="" Type="string (Single Value)" ChoiceList="" Description="" URI="urn:schemas-microsoft-com:sharepoint:portal:profile:PreferredName" IsSystem="True" AllowPolicyOverride="False" IsUserEditable="False" IsAdminEditable="True" IsImported="True" Length="256" IsMultivalued="False" ChoiceType="Off" DefaultPrivacy="Public" UserOverridePrivacy="False" IsReplicable="True" PrivacyPolicy="Mandatory" DisplayOrder="9" IsColleagueEventLog="True" IsAlias="True" IsSearchable="True" IsUpgrade="False" IsUpgradePrivate="False" IsVisibleOnEditor="True" IsVisibleOnViewer="False" IsTaxonomic="False" Separator="Unknown" MaximumShown="10" IsSection="False" IsRequired="True" SubtypeName="UserProfile" IsImport="True" IsExport="False" DataSourcePropertyName="displayName" OriginalDataSourcePropertyName="displayName" AssociationName="" Connection="Profile Sync" />
<property Name="SPS-PhoneticDisplayName" DisplayName="Phonetic Display Name" ManagedPropertyName="" Type="string (Single Value)" ChoiceList="" Description="" URI="urn:schemas-microsoft-com:sharepoint:portal:profile:SPS-PhoneticDisplayName" IsSystem="False" AllowPolicyOverride="True" IsUserEditable="False" IsAdminEditable="True" IsImported="True" Length="256" IsMultivalued="False" ChoiceType="Off" DefaultPrivacy="Public" UserOverridePrivacy="False" IsReplicable="False" PrivacyPolicy="OptIn" DisplayOrder="10" IsColleagueEventLog="False" IsAlias="False" IsSearchable="True" IsUpgrade="False" IsUpgradePrivate="False" IsVisibleOnEditor="True" IsVisibleOnViewer="False" IsTaxonomic="False" Separator="Unknown" MaximumShown="10" IsSection="False" IsRequired="False" SubtypeName="UserProfile" IsImport="True" IsExport="False" DataSourcePropertyName="msDS-PhoneticDisplayName" OriginalDataSourcePropertyName="msDS-PhoneticDisplayName" AssociationName="" Connection="Profile Sync" />
<property Name="WorkPhone" DisplayName="Work phone" ManagedPropertyName="" Type="string (Single Value)" ChoiceList="" Description="" URI="urn:schemas-microsoft-com:sharepoint:portal:profile:WorkPhone" IsSystem="True" AllowPolicyOverride="True" IsUserEditable="False" IsAdminEditable="True" IsImported="True" Length="100" IsMultivalued="False" ChoiceType="Off" DefaultPrivacy="Public" UserOverridePrivacy="False" IsReplicable="True" PrivacyPolicy="Mandatory" DisplayOrder="11" IsColleagueEventLog="True" IsAlias="False" IsSearchable="True" IsUpgrade="False" IsUpgradePrivate="False" IsVisibleOnEditor="True" IsVisibleOnViewer="False" IsTaxonomic="False" Separator="Unknown" MaximumShown="10" IsSection="False" IsRequired="True" SubtypeName="UserProfile" IsImport="True" IsExport="False" DataSourcePropertyName="telephoneNumber" OriginalDataSourcePropertyName="telephoneNumber" AssociationName="" Connection="Profile Sync" />
<property Name="Department" DisplayName="Department" ManagedPropertyName="" Type="string (Single Value)" ChoiceList="" Description="" URI="urn:schemas-microsoft-com:sharepoint:portal:profile:Department" IsSystem="True" AllowPolicyOverride="True" IsUserEditable="False" IsAdminEditable="True" IsImported="True" Length="250" IsMultivalued="False" ChoiceType="Off" DefaultPrivacy="Public" UserOverridePrivacy="False" IsReplicable="True" PrivacyPolicy="Mandatory" DisplayOrder="12" IsColleagueEventLog="True" IsAlias="False" IsSearchable="True" IsUpgrade="False" IsUpgradePrivate="False" IsVisibleOnEditor="True" IsVisibleOnViewer="False" IsTaxonomic="False" Separator="Unknown" MaximumShown="10" IsSection="False" IsRequired="True" SubtypeName="UserProfile" IsImport="True" IsExport="False" DataSourcePropertyName="department" OriginalDataSourcePropertyName="department" AssociationName="" Connection="Profile Sync" />
<property Name="Title" DisplayName="Title" ManagedPropertyName="" Type="string (Single Value)" ChoiceList="" Description="" URI="urn:schemas-microsoft-com:sharepoint:portal:profile:Title" IsSystem="True" AllowPolicyOverride="True" IsUserEditable="False" IsAdminEditable="True" IsImported="True" Length="150" IsMultivalued="False" ChoiceType="Off" DefaultPrivacy="Public" UserOverridePrivacy="False" IsReplicable="True" PrivacyPolicy="Mandatory" DisplayOrder="13" IsColleagueEventLog="True" IsAlias="False" IsSearchable="True" IsUpgrade="False" IsUpgradePrivate="False" IsVisibleOnEditor="True" IsVisibleOnViewer="False" IsTaxonomic="False" Separator="Unknown" MaximumShown="10" IsSection="False" IsRequired="True" SubtypeName="UserProfile" IsImport="" IsExport="" DataSourcePropertyName="" OriginalDataSourcePropertyName="" AssociationName="" Connection="" />
<property Name="SPS-JobTitle" DisplayName="Job Title" ManagedPropertyName="" Type="string (Single Value)" ChoiceList="Microsoft.Office.Server.UserProfiles.ChoiceList" Description="" URI="urn:schemas-microsoft-com:sharepoint:portal:profile:SPS-JobTitle" IsSystem="True" AllowPolicyOverride="True" IsUserEditable="False" IsAdminEditable="True" IsImported="False" Length="150" IsMultivalued="False" ChoiceType="Open" DefaultPrivacy="Public" UserOverridePrivacy="True" IsReplicable="False" PrivacyPolicy="OptIn" DisplayOrder="14" IsColleagueEventLog="False" IsAlias="False" IsSearchable="True" IsUpgrade="False" IsUpgradePrivate="False" IsVisibleOnEditor="False" IsVisibleOnViewer="False" IsTaxonomic="True" Separator="Unknown" MaximumShown="10" IsSection="False" IsRequired="False" SubtypeName="UserProfile" IsImport="True" IsExport="False" DataSourcePropertyName="title" OriginalDataSourcePropertyName="title" AssociationName="" Connection="Profile Sync" />
<property Name="Manager" DisplayName="Manager" ManagedPropertyName="" Type="Person" ChoiceList="" Description="" URI="urn:schemas-microsoft-com:sharepoint:portal:profile:Manager" IsSystem="True" AllowPolicyOverride="False" IsUserEditable="False" IsAdminEditable="True" IsImported="True" Length="250" IsMultivalued="False" ChoiceType="Off" DefaultPrivacy="Public" UserOverridePrivacy="False" IsReplicable="False" PrivacyPolicy="OptIn" DisplayOrder="15" IsColleagueEventLog="True" IsAlias="False" IsSearchable="False" IsUpgrade="False" IsUpgradePrivate="False" IsVisibleOnEditor="True" IsVisibleOnViewer="False" IsTaxonomic="False" Separator="Unknown" MaximumShown="10" IsSection="False" IsRequired="False" SubtypeName="UserProfile" IsImport="True" IsExport="False" DataSourcePropertyName="manager" OriginalDataSourcePropertyName="manager" AssociationName="" Connection="Profile Sync" />
<property Name="AboutMe" DisplayName="About me" ManagedPropertyName="" Type="HTML" ChoiceList="" Description="Provide a personal description expressing what you would like others to know about you." URI="urn:schemas-microsoft-com:sharepoint:portal:profile:AboutMe" IsSystem="True" AllowPolicyOverride="True" IsUserEditable="True" IsAdminEditable="True" IsImported="False" Length="3600" IsMultivalued="False" ChoiceType="Off" DefaultPrivacy="Public" UserOverridePrivacy="False" IsReplicable="True" PrivacyPolicy="OptIn" DisplayOrder="16" IsColleagueEventLog="False" IsAlias="False" IsSearchable="True" IsUpgrade="False" IsUpgradePrivate="False" IsVisibleOnEditor="True" IsVisibleOnViewer="False" IsTaxonomic="False" Separator="Unknown" MaximumShown="10" IsSection="False" IsRequired="False" SubtypeName="UserProfile" IsImport="" IsExport="" DataSourcePropertyName="" OriginalDataSourcePropertyName="" AssociationName="" Connection="" />
<property Name="PersonalSpace" DisplayName="Personal site" ManagedPropertyName="" Type="URL" ChoiceList="" Description="" URI="urn:schemas-microsoft-com:sharepoint:portal:profile:PersonalSpace" IsSystem="True" AllowPolicyOverride="False" IsUserEditable="False" IsAdminEditable="True" IsImported="False" Length="1024" IsMultivalued="False" ChoiceType="Off" DefaultPrivacy="Public" UserOverridePrivacy="False" IsReplicable="False" PrivacyPolicy="OptIn" DisplayOrder="17" IsColleagueEventLog="False" IsAlias="False" IsSearchable="False" IsUpgrade="False" IsUpgradePrivate="False" IsVisibleOnEditor="False" IsVisibleOnViewer="False" IsTaxonomic="False" Separator="Unknown" MaximumShown="10" IsSection="False" IsRequired="False" SubtypeName="UserProfile" IsImport="" IsExport="" DataSourcePropertyName="" OriginalDataSourcePropertyName="" AssociationName="" Connection="" />
<property Name="PictureURL" DisplayName="Picture" ManagedPropertyName="" Type="URL" ChoiceList="" Description="Upload a picture to help others easily recognize you at meetings and events." URI="urn:schemas-microsoft-com:sharepoint:portal:profile:PictureURL" IsSystem="True" AllowPolicyOverride="True" IsUserEditable="True" IsAdminEditable="True" IsImported="False" Length="2048" IsMultivalued="False" ChoiceType="Off" DefaultPrivacy="Public" UserOverridePrivacy="False" IsReplicable="True" PrivacyPolicy="OptIn" DisplayOrder="18" IsColleagueEventLog="False" IsAlias="False" IsSearchable="True" IsUpgrade="False" IsUpgradePrivate="False" IsVisibleOnEditor="True" IsVisibleOnViewer="False" IsTaxonomic="False" Separator="Unknown" MaximumShown="10" IsSection="False" IsRequired="False" SubtypeName="UserProfile" IsImport="" IsExport="" DataSourcePropertyName="" OriginalDataSourcePropertyName="" AssociationName="" Connection="" />
<property Name="UserName" DisplayName="User name" ManagedPropertyName="" Type="string (Single Value)" ChoiceList="" Description="" URI="urn:schemas-microsoft-com:sharepoint:portal:profile:UserName" IsSystem="True" AllowPolicyOverride="True" IsUserEditable="False" IsAdminEditable="False" IsImported="True" Length="250" IsMultivalued="False" ChoiceType="Off" DefaultPrivacy="Public" UserOverridePrivacy="False" IsReplicable="True" PrivacyPolicy="OptIn" DisplayOrder="19" IsColleagueEventLog="False" IsAlias="True" IsSearchable="True" IsUpgrade="False" IsUpgradePrivate="False" IsVisibleOnEditor="False" IsVisibleOnViewer="False" IsTaxonomic="False" Separator="Unknown" MaximumShown="10" IsSection="False" IsRequired="False" SubtypeName="UserProfile" IsImport="True" IsExport="False" DataSourcePropertyName="sAMAccountName" OriginalDataSourcePropertyName="sAMAccountName" AssociationName="" Connection="Profile Sync" />
<property Name="QuickLinks" DisplayName="Quick links" ManagedPropertyName="" Type="string (Single Value)" ChoiceList="" Description="" URI="urn:schemas-microsoft-com:sharepoint:portal:profile:QuickLinks" IsSystem="True" AllowPolicyOverride="True" IsUserEditable="False" IsAdminEditable="False" IsImported="False" Length="3000" IsMultivalued="False" ChoiceType="Off" DefaultPrivacy="Public" UserOverridePrivacy="False" IsReplicable="False" PrivacyPolicy="OptIn" DisplayOrder="20" IsColleagueEventLog="False" IsAlias="False" IsSearchable="True" IsUpgrade="False" IsUpgradePrivate="False" IsVisibleOnEditor="False" IsVisibleOnViewer="False" IsTaxonomic="False" Separator="Unknown" MaximumShown="10" IsSection="False" IsRequired="False" SubtypeName="UserProfile" IsImport="" IsExport="" DataSourcePropertyName="" OriginalDataSourcePropertyName="" AssociationName="" Connection="" />
<property Name="WebSite" DisplayName="Web site" ManagedPropertyName="" Type="URL" ChoiceList="" Description="" URI="urn:schemas-microsoft-com:sharepoint:portal:profile:WebSite" IsSystem="True" AllowPolicyOverride="True" IsUserEditable="False" IsAdminEditable="True" IsImported="True" Length="1024" IsMultivalued="False" ChoiceType="Off" DefaultPrivacy="Public" UserOverridePrivacy="False" IsReplicable="True" PrivacyPolicy="OptIn" DisplayOrder="21" IsColleagueEventLog="False" IsAlias="False" IsSearchable="False" IsUpgrade="False" IsUpgradePrivate="False" IsVisibleOnEditor="False" IsVisibleOnViewer="False" IsTaxonomic="False" Separator="Unknown" MaximumShown="10" IsSection="False" IsRequired="False" SubtypeName="UserProfile" IsImport="" IsExport="" DataSourcePropertyName="" OriginalDataSourcePropertyName="" AssociationName="" Connection="" />
<property Name="PublicSiteRedirect" DisplayName="Public site redirect" ManagedPropertyName="" Type="URL" ChoiceList="" Description="" URI="urn:schemas-microsoft-com:sharepoint:portal:profile:PublicSiteRedirect" IsSystem="True" AllowPolicyOverride="False" IsUserEditable="False" IsAdminEditable="True" IsImported="True" Length="1024" IsMultivalued="False" ChoiceType="Off" DefaultPrivacy="Public" UserOverridePrivacy="False" IsReplicable="False" PrivacyPolicy="OptIn" DisplayOrder="27" IsColleagueEventLog="False" IsAlias="False" IsSearchable="False" IsUpgrade="False" IsUpgradePrivate="False" IsVisibleOnEditor="False" IsVisibleOnViewer="False" IsTaxonomic="False" Separator="Unknown" MaximumShown="10" IsSection="False" IsRequired="False" SubtypeName="UserProfile" IsImport="True" IsExport="False" DataSourcePropertyName="wWWHomePage" OriginalDataSourcePropertyName="wWWHomePage" AssociationName="" Connection="Profile Sync" />
<property Name="SPS-DataSource" DisplayName="Data source" ManagedPropertyName="" Type="string (Single Value)" ChoiceList="" Description="" URI="urn:schemas-microsoft-com:sharepoint:portal:profile:SPS-DataSource" IsSystem="True" AllowPolicyOverride="False" IsUserEditable="False" IsAdminEditable="False" IsImported="True" Length="155" IsMultivalued="False" ChoiceType="Off" DefaultPrivacy="Private" UserOverridePrivacy="False" IsReplicable="False" PrivacyPolicy="Disabled" DisplayOrder="5001" IsColleagueEventLog="False" IsAlias="False" IsSearchable="True" IsUpgrade="False" IsUpgradePrivate="False" IsVisibleOnEditor="False" IsVisibleOnViewer="False" IsTaxonomic="False" Separator="Unknown" MaximumShown="10" IsSection="False" IsRequired="False" SubtypeName="UserProfile" IsImport="" IsExport="" DataSourcePropertyName="" OriginalDataSourcePropertyName="" AssociationName="" Connection="" />
<property Name="SPS-MemberOf" DisplayName="MemberOf" ManagedPropertyName="" Type="string (Multi Value)" ChoiceList="Microsoft.Office.Server.UserProfiles.ChoiceList" Description="" URI="urn:schemas-microsoft-com:sharepoint:portal:profile:SPS-MemberOf" IsSystem="True" AllowPolicyOverride="False" IsUserEditable="False" IsAdminEditable="True" IsImported="True" Length="2048" IsMultivalued="True" ChoiceType="Open" DefaultPrivacy="Private" UserOverridePrivacy="False" IsReplicable="False" PrivacyPolicy="Disabled" DisplayOrder="5002" IsColleagueEventLog="False" IsAlias="False" IsSearchable="True" IsUpgrade="False" IsUpgradePrivate="False" IsVisibleOnEditor="False" IsVisibleOnViewer="False" IsTaxonomic="True" Separator="Unknown" MaximumShown="10" IsSection="False" IsRequired="False" SubtypeName="UserProfile" IsImport="" IsExport="" DataSourcePropertyName="" OriginalDataSourcePropertyName="" AssociationName="" Connection="" />
<property Name="SPS-Dotted-line" DisplayName="Dotted-line Manager" ManagedPropertyName="" Type="Person" ChoiceList="" Description="" URI="urn:schemas-microsoft-com:sharepoint:portal:profile:SPS-Dotted-line" IsSystem="True" AllowPolicyOverride="True" IsUserEditable="False" IsAdminEditable="True" IsImported="False" Length="250" IsMultivalued="False" ChoiceType="Off" DefaultPrivacy="Public" UserOverridePrivacy="False" IsReplicable="False" PrivacyPolicy="OptIn" DisplayOrder="5003" IsColleagueEventLog="False" IsAlias="False" IsSearchable="False" IsUpgrade="False" IsUpgradePrivate="False" IsVisibleOnEditor="True" IsVisibleOnViewer="False" IsTaxonomic="False" Separator="Comma" MaximumShown="10" IsSection="False" IsRequired="False" SubtypeName="UserProfile" IsImport="" IsExport="" DataSourcePropertyName="" OriginalDataSourcePropertyName="" AssociationName="" Connection="" />
<property Name="SPS-Peers" DisplayName="Peers" ManagedPropertyName="" Type="string (Single Value)" ChoiceList="" Description="" URI="urn:schemas-microsoft-com:sharepoint:portal:profile:SPS-Peers" IsSystem="True" AllowPolicyOverride="True" IsUserEditable="False" IsAdminEditable="False" IsImported="False" Length="3000" IsMultivalued="False" ChoiceType="Off" DefaultPrivacy="Public" UserOverridePrivacy="False" IsReplicable="False" PrivacyPolicy="OptIn" DisplayOrder="5004" IsColleagueEventLog="False" IsAlias="False" IsSearchable="False" IsUpgrade="False" IsUpgradePrivate="False" IsVisibleOnEditor="False" IsVisibleOnViewer="False" IsTaxonomic="False" Separator="Unknown" MaximumShown="10" IsSection="False" IsRequired="False" SubtypeName="UserProfile" IsImport="" IsExport="" DataSourcePropertyName="" OriginalDataSourcePropertyName="" AssociationName="" Connection="" />
<property Name="SPS-Responsibility" DisplayName="Ask Me About" ManagedPropertyName="" Type="string (Multi Value)" ChoiceList="Microsoft.Office.Server.UserProfiles.ChoiceList" Description="Update your "Ask Me About" with topics you can help people with, such as your responsibilities or areas of expertise." URI="urn:schemas-microsoft-com:sharepoint:portal:profile:SPS-Responsibility" IsSystem="True" AllowPolicyOverride="True" IsUserEditable="True" IsAdminEditable="True" IsImported="False" Length="0" IsMultivalued="True" ChoiceType="Open" DefaultPrivacy="Public" UserOverridePrivacy="False" IsReplicable="True" PrivacyPolicy="OptIn" DisplayOrder="5005" IsColleagueEventLog="True" IsAlias="False" IsSearchable="True" IsUpgrade="False" IsUpgradePrivate="False" IsVisibleOnEditor="True" IsVisibleOnViewer="False" IsTaxonomic="True" Separator="Comma" MaximumShown="10" IsSection="False" IsRequired="False" SubtypeName="UserProfile" IsImport="" IsExport="" DataSourcePropertyName="" OriginalDataSourcePropertyName="" AssociationName="" Connection="" />
<property Name="SPS-SipAddress" DisplayName="SIP Address" ManagedPropertyName="" Type="string (Single Value)" ChoiceList="" Description="" URI="urn:schemas-microsoft-com:sharepoint:portal:profile:SPS-SipAddress" IsSystem="True" AllowPolicyOverride="False" IsUserEditable="False" IsAdminEditable="True" IsImported="True" Length="250" IsMultivalued="False" ChoiceType="Off" DefaultPrivacy="Public" UserOverridePrivacy="False" IsReplicable="True" PrivacyPolicy="OptIn" DisplayOrder="5010" IsColleagueEventLog="False" IsAlias="False" IsSearchable="False" IsUpgrade="False" IsUpgradePrivate="False" IsVisibleOnEditor="False" IsVisibleOnViewer="False" IsTaxonomic="False" Separator="Comma" MaximumShown="10" IsSection="False" IsRequired="False" SubtypeName="UserProfile" IsImport="True" IsExport="False" DataSourcePropertyName="proxyAddresses" OriginalDataSourcePropertyName="proxyAddresses" AssociationName="" Connection="Profile Sync" />
<property Name="SPS-MySiteUpgrade" DisplayName="My Site Upgrade" ManagedPropertyName="" Type="boolean" ChoiceList="" Description="" URI="urn:schemas-microsoft-com:sharepoint:portal:profile:SPS-MySiteUpgrade" IsSystem="True" AllowPolicyOverride="False" IsUserEditable="True" IsAdminEditable="True" IsImported="False" Length="0" IsMultivalued="False" ChoiceType="Off" DefaultPrivacy="Public" UserOverridePrivacy="False" IsReplicable="False" PrivacyPolicy="OptIn" DisplayOrder="5012" IsColleagueEventLog="False" IsAlias="False" IsSearchable="False" IsUpgrade="False" IsUpgradePrivate="False" IsVisibleOnEditor="False" IsVisibleOnViewer="False" IsTaxonomic="False" Separator="Comma" MaximumShown="10" IsSection="False" IsRequired="False" SubtypeName="UserProfile" IsImport="" IsExport="" DataSourcePropertyName="" OriginalDataSourcePropertyName="" AssociationName="" Connection="" />
<property Name="SPS-DontSuggestList" DisplayName="Don't Suggest List" ManagedPropertyName="" Type="Person" ChoiceList="" Description="" URI="urn:schemas-microsoft-com:sharepoint:portal:profile:SPS-DontSuggestList" IsSystem="True" AllowPolicyOverride="False" IsUserEditable="True" IsAdminEditable="True" IsImported="False" Length="250" IsMultivalued="True" ChoiceType="Off" DefaultPrivacy="Private" UserOverridePrivacy="False" IsReplicable="False" PrivacyPolicy="OptIn" DisplayOrder="5013" IsColleagueEventLog="False" IsAlias="False" IsSearchable="False" IsUpgrade="False" IsUpgradePrivate="False" IsVisibleOnEditor="False" IsVisibleOnViewer="False" IsTaxonomic="False" Separator="Comma" MaximumShown="10" IsSection="False" IsRequired="False" SubtypeName="UserProfile" IsImport="" IsExport="" DataSourcePropertyName="" OriginalDataSourcePropertyName="" AssociationName="" Connection="" />
<property Name="SPS-ProxyAddresses" DisplayName="Proxy addresses" ManagedPropertyName="" Type="string (Multi Value)" ChoiceList="Microsoft.Office.Server.UserProfiles.ChoiceList" Description="" URI="urn:schemas-microsoft-com:sharepoint:portal:profile:SPS-ProxyAddresses" IsSystem="True" AllowPolicyOverride="False" IsUserEditable="False" IsAdminEditable="True" IsImported="True" Length="0" IsMultivalued="True" ChoiceType="Open" DefaultPrivacy="Public" UserOverridePrivacy="False" IsReplicable="False" PrivacyPolicy="OptIn" DisplayOrder="5014" IsColleagueEventLog="False" IsAlias="False" IsSearchable="False" IsUpgrade="False" IsUpgradePrivate="False" IsVisibleOnEditor="False" IsVisibleOnViewer="False" IsTaxonomic="True" Separator="Comma" MaximumShown="10" IsSection="False" IsRequired="False" SubtypeName="UserProfile" IsImport="" IsExport="" DataSourcePropertyName="" OriginalDataSourcePropertyName="" AssociationName="" Connection="" />
<property Name="SPS-HireDate" DisplayName="Hire date" ManagedPropertyName="" Type="date" ChoiceList="" Description="" URI="urn:schemas-microsoft-com:sharepoint:portal:profile:SPS-HireDate" IsSystem="False" AllowPolicyOverride="True" IsUserEditable="True" IsAdminEditable="True" IsImported="False" Length="0" IsMultivalued="False" ChoiceType="Off" DefaultPrivacy="Public" UserOverridePrivacy="True" IsReplicable="False" PrivacyPolicy="OptIn" DisplayOrder="5015" IsColleagueEventLog="True" IsAlias="False" IsSearchable="True" IsUpgrade="False" IsUpgradePrivate="False" IsVisibleOnEditor="False" IsVisibleOnViewer="False" IsTaxonomic="False" Separator="Comma" MaximumShown="10" IsSection="False" IsRequired="False" SubtypeName="UserProfile" IsImport="" IsExport="" DataSourcePropertyName="" OriginalDataSourcePropertyName="" AssociationName="" Connection="" />
<property Name="SPS-DisplayOrder" DisplayName="Display Order" ManagedPropertyName="" Type="integer" ChoiceList="" Description="" URI="urn:schemas-microsoft-com:sharepoint:portal:profile:SPS-DisplayOrder" IsSystem="False" AllowPolicyOverride="True" IsUserEditable="False" IsAdminEditable="True" IsImported="True" Length="0" IsMultivalued="False" ChoiceType="Off" DefaultPrivacy="Public" UserOverridePrivacy="False" IsReplicable="False" PrivacyPolicy="OptIn" DisplayOrder="5016" IsColleagueEventLog="False" IsAlias="False" IsSearchable="False" IsUpgrade="False" IsUpgradePrivate="False" IsVisibleOnEditor="True" IsVisibleOnViewer="False" IsTaxonomic="False" Separator="Unknown" MaximumShown="10" IsSection="False" IsRequired="False" SubtypeName="UserProfile" IsImport="" IsExport="" DataSourcePropertyName="" OriginalDataSourcePropertyName="" AssociationName="" Connection="" />
<property Name="SPS-ClaimID" DisplayName="Claim User Identifier" ManagedPropertyName="" Type="string (Single Value)" ChoiceList="" Description="" URI="urn:schemas-microsoft-com:sharepoint:portal:profile:SPS-ClaimID" IsSystem="True" AllowPolicyOverride="False" IsUserEditable="False" IsAdminEditable="False" IsImported="True" Length="256" IsMultivalued="False" ChoiceType="Off" DefaultPrivacy="Public" UserOverridePrivacy="False" IsReplicable="False" PrivacyPolicy="OptIn" DisplayOrder="5017" IsColleagueEventLog="False" IsAlias="False" IsSearchable="False" IsUpgrade="False" IsUpgradePrivate="False" IsVisibleOnEditor="True" IsVisibleOnViewer="False" IsTaxonomic="False" Separator="Unknown" MaximumShown="10" IsSection="False" IsRequired="False" SubtypeName="UserProfile" IsImport="" IsExport="" DataSourcePropertyName="" OriginalDataSourcePropertyName="" AssociationName="" Connection="" />
<property Name="SPS-ClaimProviderID" DisplayName="Claim Provider Identifier" ManagedPropertyName="" Type="string (Single Value)" ChoiceList="" Description="" URI="urn:schemas-microsoft-com:sharepoint:portal:profile:SPS-ClaimProviderID" IsSystem="True" AllowPolicyOverride="False" IsUserEditable="False" IsAdminEditable="False" IsImported="True" Length="256" IsMultivalued="False" ChoiceType="Off" DefaultPrivacy="Public" UserOverridePrivacy="False" IsReplicable="False" PrivacyPolicy="OptIn" DisplayOrder="5018" IsColleagueEventLog="False" IsAlias="False" IsSearchable="False" IsUpgrade="False" IsUpgradePrivate="False" IsVisibleOnEditor="False" IsVisibleOnViewer="False" IsTaxonomic="False" Separator="Unknown" MaximumShown="10" IsSection="False" IsRequired="False" SubtypeName="UserProfile" IsImport="True" IsExport="False" DataSourcePropertyName="Windows" OriginalDataSourcePropertyName="Windows" AssociationName="" Connection="Profile Sync" />
<property Name="SPS-ClaimProviderType" DisplayName="Claim Provider Type" ManagedPropertyName="" Type="string (Single Value)" ChoiceList="" Description="" URI="urn:schemas-microsoft-com:sharepoint:portal:profile:SPS-ClaimProviderType" IsSystem="True" AllowPolicyOverride="False" IsUserEditable="False" IsAdminEditable="False" IsImported="True" Length="256" IsMultivalued="False" ChoiceType="Off" DefaultPrivacy="Public" UserOverridePrivacy="False" IsReplicable="False" PrivacyPolicy="OptIn" DisplayOrder="5019" IsColleagueEventLog="False" IsAlias="False" IsSearchable="False" IsUpgrade="False" IsUpgradePrivate="False" IsVisibleOnEditor="False" IsVisibleOnViewer="False" IsTaxonomic="False" Separator="Unknown" MaximumShown="10" IsSection="False" IsRequired="False" SubtypeName="UserProfile" IsImport="True" IsExport="False" DataSourcePropertyName="Windows" OriginalDataSourcePropertyName="Windows" AssociationName="" Connection="Profile Sync" />
<property Name="SPS-LastColleagueAdded" DisplayName="Last Colleague Added" ManagedPropertyName="" Type="date" ChoiceList="" Description="" URI="urn:schemas-microsoft-com:sharepoint:portal:profile:SPS-LastColleagueAdded" IsSystem="True" AllowPolicyOverride="True" IsUserEditable="True" IsAdminEditable="True" IsImported="False" Length="0" IsMultivalued="False" ChoiceType="Off" DefaultPrivacy="Private" UserOverridePrivacy="False" IsReplicable="False" PrivacyPolicy="OptIn" DisplayOrder="5019" IsColleagueEventLog="False" IsAlias="False" IsSearchable="False" IsUpgrade="False" IsUpgradePrivate="False" IsVisibleOnEditor="False" IsVisibleOnViewer="False" IsTaxonomic="False" Separator="Comma" MaximumShown="10" IsSection="False" IsRequired="False" SubtypeName="UserProfile" IsImport="" IsExport="" DataSourcePropertyName="" OriginalDataSourcePropertyName="" AssociationName="" Connection="" />
<property Name="SPS-OWAUrl" DisplayName="Outlook Web Access URL" ManagedPropertyName="" Type="URL" ChoiceList="" Description="" URI="urn:schemas-microsoft-com:sharepoint:portal:profile:SPS-OWAUrl" IsSystem="True" AllowPolicyOverride="True" IsUserEditable="True" IsAdminEditable="True" IsImported="False" Length="2048" IsMultivalued="False" ChoiceType="Off" DefaultPrivacy="Private" UserOverridePrivacy="False" IsReplicable="False" PrivacyPolicy="OptIn" DisplayOrder="5020" IsColleagueEventLog="False" IsAlias="False" IsSearchable="False" IsUpgrade="False" IsUpgradePrivate="False" IsVisibleOnEditor="False" IsVisibleOnViewer="False" IsTaxonomic="False" Separator="Comma" MaximumShown="10" IsSection="False" IsRequired="False" SubtypeName="UserProfile" IsImport="" IsExport="" DataSourcePropertyName="" OriginalDataSourcePropertyName="" AssociationName="" Connection="" />
<property Name="SPS-SavedAccountName" DisplayName="Saved Account Name" ManagedPropertyName="" Type="string (Single Value)" ChoiceList="" Description="" URI="urn:schemas-microsoft-com:sharepoint:portal:profile:SPS-SavedAccountName" IsSystem="True" AllowPolicyOverride="False" IsUserEditable="False" IsAdminEditable="False" IsImported="False" Length="256" IsMultivalued="False" ChoiceType="Off" DefaultPrivacy="Public" UserOverridePrivacy="False" IsReplicable="False" PrivacyPolicy="OptIn" DisplayOrder="5020" IsColleagueEventLog="False" IsAlias="False" IsSearchable="False" IsUpgrade="False" IsUpgradePrivate="False" IsVisibleOnEditor="False" IsVisibleOnViewer="False" IsTaxonomic="False" Separator="Unknown" MaximumShown="10" IsSection="False" IsRequired="False" SubtypeName="UserProfile" IsImport="" IsExport="" DataSourcePropertyName="" OriginalDataSourcePropertyName="" AssociationName="" Connection="" />
<property Name="SPS-SavedSID" DisplayName="Saved SID" ManagedPropertyName="" Type="binary" ChoiceList="" Description="" URI="urn:schemas-microsoft-com:sharepoint:portal:profile:SPS-SavedSID" IsSystem="True" AllowPolicyOverride="False" IsUserEditable="False" IsAdminEditable="False" IsImported="False" Length="512" IsMultivalued="False" ChoiceType="Off" DefaultPrivacy="Public" UserOverridePrivacy="False" IsReplicable="False" PrivacyPolicy="OptIn" DisplayOrder="5021" IsColleagueEventLog="False" IsAlias="False" IsSearchable="False" IsUpgrade="False" IsUpgradePrivate="False" IsVisibleOnEditor="False" IsVisibleOnViewer="False" IsTaxonomic="False" Separator="Unknown" MaximumShown="10" IsSection="False" IsRequired="False" SubtypeName="UserProfile" IsImport="" IsExport="" DataSourcePropertyName="" OriginalDataSourcePropertyName="" AssociationName="" Connection="" />
<property Name="SPS-ResourceSID" DisplayName="Resource Forest SID" ManagedPropertyName="" Type="binary" ChoiceList="" Description="" URI="urn:schemas-microsoft-com:sharepoint:portal:profile:SPS-ResourceSID" IsSystem="True" AllowPolicyOverride="False" IsUserEditable="False" IsAdminEditable="False" IsImported="True" Length="512" IsMultivalued="False" ChoiceType="Off" DefaultPrivacy="Public" UserOverridePrivacy="False" IsReplicable="False" PrivacyPolicy="OptIn" DisplayOrder="5021" IsColleagueEventLog="False" IsAlias="False" IsSearchable="False" IsUpgrade="False" IsUpgradePrivate="False" IsVisibleOnEditor="False" IsVisibleOnViewer="False" IsTaxonomic="False" Separator="Unknown" MaximumShown="10" IsSection="False" IsRequired="False" SubtypeName="UserProfile" IsImport="" IsExport="" DataSourcePropertyName="" OriginalDataSourcePropertyName="" AssociationName="" Connection="" />
<property Name="SPS-ResourceAccountName" DisplayName="Resource Forest Account Name" ManagedPropertyName="" Type="Person" ChoiceList="" Description="" URI="urn:schemas-microsoft-com:sharepoint:portal:profile:SPS-ResourceAccountName" IsSystem="True" AllowPolicyOverride="False" IsUserEditable="False" IsAdminEditable="False" IsImported="True" Length="250" IsMultivalued="False" ChoiceType="Off" DefaultPrivacy="Public" UserOverridePrivacy="False" IsReplicable="False" PrivacyPolicy="Mandatory" DisplayOrder="5022" IsColleagueEventLog="False" IsAlias="True" IsSearchable="False" IsUpgrade="False" IsUpgradePrivate="False" IsVisibleOnEditor="False" IsVisibleOnViewer="False" IsTaxonomic="False" Separator="Unknown" MaximumShown="10" IsSection="False" IsRequired="True" SubtypeName="UserProfile" IsImport="" IsExport="" DataSourcePropertyName="" OriginalDataSourcePropertyName="" AssociationName="" Connection="" />
<property Name="SPS-ObjectExists" DisplayName="Object Exists" ManagedPropertyName="" Type="string (Single Value)" ChoiceList="" Description="" URI="urn:schemas-microsoft-com:sharepoint:portal:profile:SPS-ObjectExists" IsSystem="True" AllowPolicyOverride="False" IsUserEditable="False" IsAdminEditable="False" IsImported="True" Length="256" IsMultivalued="False" ChoiceType="Off" DefaultPrivacy="Public" UserOverridePrivacy="False" IsReplicable="False" PrivacyPolicy="OptIn" DisplayOrder="5023" IsColleagueEventLog="False" IsAlias="False" IsSearchable="False" IsUpgrade="False" IsUpgradePrivate="False" IsVisibleOnEditor="False" IsVisibleOnViewer="False" IsTaxonomic="False" Separator="Unknown" MaximumShown="10" IsSection="False" IsRequired="False" SubtypeName="UserProfile" IsImport="" IsExport="" DataSourcePropertyName="" OriginalDataSourcePropertyName="" AssociationName="" Connection="" />
<property Name="SPS-MasterAccountName" DisplayName="Master Account Name" ManagedPropertyName="" Type="Person" ChoiceList="" Description="" URI="urn:schemas-microsoft-com:sharepoint:portal:profile:SPS-MasterAccountName" IsSystem="True" AllowPolicyOverride="False" IsUserEditable="False" IsAdminEditable="False" IsImported="True" Length="250" IsMultivalued="False" ChoiceType="Off" DefaultPrivacy="Public" UserOverridePrivacy="False" IsReplicable="False" PrivacyPolicy="Mandatory" DisplayOrder="5028" IsColleagueEventLog="False" IsAlias="True" IsSearchable="False" IsUpgrade="False" IsUpgradePrivate="False" IsVisibleOnEditor="True" IsVisibleOnViewer="False" IsTaxonomic="False" Separator="Unknown" MaximumShown="10" IsSection="False" IsRequired="True" SubtypeName="UserProfile" IsImport="" IsExport="" DataSourcePropertyName="" OriginalDataSourcePropertyName="" AssociationName="" Connection="" />
<property Name="SPS-DistinguishedName" DisplayName="Distinguished Name" ManagedPropertyName="" Type="string (Single Value)" ChoiceList="" Description="" URI="urn:schemas-microsoft-com:sharepoint:portal:profile:SPS-DistinguishedName" IsSystem="True" AllowPolicyOverride="False" IsUserEditable="False" IsAdminEditable="True" IsImported="True" Length="2048" IsMultivalued="False" ChoiceType="Off" DefaultPrivacy="Public" UserOverridePrivacy="False" IsReplicable="False" PrivacyPolicy="OptIn" DisplayOrder="5029" IsColleagueEventLog="False" IsAlias="False" IsSearchable="False" IsUpgrade="False" IsUpgradePrivate="False" IsVisibleOnEditor="True" IsVisibleOnViewer="False" IsTaxonomic="False" Separator="Unknown" MaximumShown="10" IsSection="False" IsRequired="False" SubtypeName="UserProfile" IsImport="True" IsExport="False" DataSourcePropertyName="dn" OriginalDataSourcePropertyName="dn" AssociationName="" Connection="Profile Sync" />
<property Name="SPS-SourceObjectDN" DisplayName="Source Object Distinguished Name" ManagedPropertyName="" Type="string (Multi Value)" ChoiceList="" Description="" URI="urn:schemas-microsoft-com:sharepoint:portal:profile:SPS-SourceObjectDN" IsSystem="True" AllowPolicyOverride="False" IsUserEditable="False" IsAdminEditable="True" IsImported="True" Length="2048" IsMultivalued="False" ChoiceType="Off" DefaultPrivacy="Public" UserOverridePrivacy="False" IsReplicable="False" PrivacyPolicy="Mandatory" DisplayOrder="5041" IsColleagueEventLog="False" IsAlias="False" IsSearchable="False" IsUpgrade="False" IsUpgradePrivate="False" IsVisibleOnEditor="True" IsVisibleOnViewer="False" IsTaxonomic="False" Separator="Unknown" MaximumShown="10" IsSection="False" IsRequired="True" SubtypeName="UserProfile" IsImport="True" IsExport="False" DataSourcePropertyName="msDS-SourceObjectDN" OriginalDataSourcePropertyName="msDS-SourceObjectDN" AssociationName="" Connection="Profile Sync" />
<property Name="SPS-LastKeywordAdded" DisplayName="Last Keyword Added" ManagedPropertyName="" Type="date" ChoiceList="" Description="" URI="urn:schemas-microsoft-com:sharepoint:portal:profile:SPS-LastKeywordAdded" IsSystem="True" AllowPolicyOverride="True" IsUserEditable="True" IsAdminEditable="True" IsImported="False" Length="0" IsMultivalued="False" ChoiceType="Off" DefaultPrivacy="Private" UserOverridePrivacy="False" IsReplicable="False" PrivacyPolicy="OptIn" DisplayOrder="5100" IsColleagueEventLog="False" IsAlias="False" IsSearchable="True" IsUpgrade="False" IsUpgradePrivate="False" IsVisibleOnEditor="False" IsVisibleOnViewer="False" IsTaxonomic="False" Separator="Comma" MaximumShown="10" IsSection="False" IsRequired="False" SubtypeName="UserProfile" IsImport="" IsExport="" DataSourcePropertyName="" OriginalDataSourcePropertyName="" AssociationName="" Connection="" />
<property Name="WorkEmail" DisplayName="Work e-mail" ManagedPropertyName="" Type="Email" ChoiceList="" Description="" URI="urn:schemas-microsoft-com:sharepoint:portal:profile:WorkEmail" IsSystem="True" AllowPolicyOverride="False" IsUserEditable="False" IsAdminEditable="True" IsImported="True" Length="256" IsMultivalued="False" ChoiceType="Off" DefaultPrivacy="Public" UserOverridePrivacy="False" IsReplicable="True" PrivacyPolicy="Mandatory" DisplayOrder="5103" IsColleagueEventLog="True" IsAlias="True" IsSearchable="True" IsUpgrade="False" IsUpgradePrivate="False" IsVisibleOnEditor="True" IsVisibleOnViewer="False" IsTaxonomic="False" Separator="Unknown" MaximumShown="10" IsSection="False" IsRequired="True" SubtypeName="UserProfile" IsImport="True" IsExport="False" DataSourcePropertyName="mail" OriginalDataSourcePropertyName="mail" AssociationName="" Connection="Profile Sync" />
<property Name="CellPhone" DisplayName="Mobile phone" ManagedPropertyName="" Type="string (Single Value)" ChoiceList="" Description="This number will be shown on your profile. Also, it will be used for text message (SMS) alerts." URI="urn:schemas-microsoft-com:sharepoint:portal:profile:CellPhone" IsSystem="False" AllowPolicyOverride="True" IsUserEditable="True" IsAdminEditable="True" IsImported="False" Length="100" IsMultivalued="False" ChoiceType="Off" DefaultPrivacy="Public" UserOverridePrivacy="False" IsReplicable="True" PrivacyPolicy="OptIn" DisplayOrder="5104" IsColleagueEventLog="True" IsAlias="False" IsSearchable="True" IsUpgrade="False" IsUpgradePrivate="False" IsVisibleOnEditor="True" IsVisibleOnViewer="True" IsTaxonomic="False" Separator="Unknown" MaximumShown="10" IsSection="False" IsRequired="False" SubtypeName="UserProfile" IsImport="" IsExport="" DataSourcePropertyName="" OriginalDataSourcePropertyName="" AssociationName="" Connection="" />
<property Name="Fax" DisplayName="Fax" ManagedPropertyName="" Type="string (Single Value)" ChoiceList="" Description="" URI="urn:schemas-microsoft-com:sharepoint:portal:profile:Fax" IsSystem="False" AllowPolicyOverride="True" IsUserEditable="True" IsAdminEditable="True" IsImported="False" Length="100" IsMultivalued="False" ChoiceType="Off" DefaultPrivacy="Public" UserOverridePrivacy="True" IsReplicable="False" PrivacyPolicy="OptIn" DisplayOrder="5105" IsColleagueEventLog="False" IsAlias="False" IsSearchable="True" IsUpgrade="False" IsUpgradePrivate="False" IsVisibleOnEditor="True" IsVisibleOnViewer="True" IsTaxonomic="False" Separator="Unknown" MaximumShown="10" IsSection="False" IsRequired="False" SubtypeName="UserProfile" IsImport="" IsExport="" DataSourcePropertyName="" OriginalDataSourcePropertyName="" AssociationName="" Connection="" />
<property Name="HomePhone" DisplayName="Home phone" ManagedPropertyName="" Type="string (Single Value)" ChoiceList="" Description="" URI="urn:schemas-microsoft-com:sharepoint:portal:profile:HomePhone" IsSystem="False" AllowPolicyOverride="True" IsUserEditable="True" IsAdminEditable="True" IsImported="False" Length="100" IsMultivalued="False" ChoiceType="Off" DefaultPrivacy="Contacts" UserOverridePrivacy="True" IsReplicable="False" PrivacyPolicy="OptIn" DisplayOrder="5107" IsColleagueEventLog="True" IsAlias="False" IsSearchable="True" IsUpgrade="False" IsUpgradePrivate="False" IsVisibleOnEditor="True" IsVisibleOnViewer="True" IsTaxonomic="False" Separator="Unknown" MaximumShown="10" IsSection="False" IsRequired="False" SubtypeName="UserProfile" IsImport="" IsExport="" DataSourcePropertyName="" OriginalDataSourcePropertyName="" AssociationName="" Connection="" />
<property Name="Office" DisplayName="Office" ManagedPropertyName="" Type="string (Single Value)" ChoiceList="" Description="" URI="urn:schemas-microsoft-com:sharepoint:portal:profile:Office" IsSystem="True" AllowPolicyOverride="True" IsUserEditable="False" IsAdminEditable="True" IsImported="True" Length="250" IsMultivalued="False" ChoiceType="Off" DefaultPrivacy="Public" UserOverridePrivacy="False" IsReplicable="True" PrivacyPolicy="Mandatory" DisplayOrder="5108" IsColleagueEventLog="True" IsAlias="False" IsSearchable="True" IsUpgrade="False" IsUpgradePrivate="False" IsVisibleOnEditor="True" IsVisibleOnViewer="False" IsTaxonomic="False" Separator="Unknown" MaximumShown="10" IsSection="False" IsRequired="True" SubtypeName="UserProfile" IsImport="True" IsExport="False" DataSourcePropertyName="physicalDeliveryOfficeName" OriginalDataSourcePropertyName="physicalDeliveryOfficeName" AssociationName="" Connection="Profile Sync" />
<property Name="SPS-Location" DisplayName="Office Location" ManagedPropertyName="" Type="string (Single Value)" ChoiceList="Microsoft.Office.Server.UserProfiles.ChoiceList" Description="Enter your current location.<br />(e.g. China, Tokyo, West Campus)&#8221; URI=&#8221;urn:schemas-microsoft-com:sharepoint:portal:profile:SPS-Location&#8221; IsSystem=&#8221;False&#8221; AllowPolicyOverride=&#8221;True&#8221; IsUserEditable=&#8221;True&#8221; IsAdminEditable=&#8221;True&#8221; IsImported=&#8221;False&#8221; Length=&#8221;0&#8243; IsMultivalued=&#8221;False&#8221; ChoiceType=&#8221;Open&#8221; DefaultPrivacy=&#8221;Public&#8221; UserOverridePrivacy=&#8221;True&#8221; IsReplicable=&#8221;False&#8221; PrivacyPolicy=&#8221;OptIn&#8221; DisplayOrder=&#8221;5109&#8243; IsColleagueEventLog=&#8221;False&#8221; IsAlias=&#8221;False&#8221; IsSearchable=&#8221;True&#8221; IsUpgrade=&#8221;False&#8221; IsUpgradePrivate=&#8221;False&#8221; IsVisibleOnEditor=&#8221;True&#8221; IsVisibleOnViewer=&#8221;False&#8221; IsTaxonomic=&#8221;True&#8221; Separator=&#8221;Unknown&#8221; MaximumShown=&#8221;10&#8243; IsSection=&#8221;False&#8221; IsRequired=&#8221;False&#8221; SubtypeName=&#8221;UserProfile&#8221; IsImport=&#8221;" IsExport=&#8221;" DataSourcePropertyName=&#8221;" OriginalDataSourcePropertyName=&#8221;" AssociationName=&#8221;" Connection=&#8221;" /> </p>
<property Name="SPS-TimeZone" DisplayName="Time Zone" ManagedPropertyName="" Type="timezone" ChoiceList="" Description="Select the time zone for your current location. We will use this information to show the local time on your profile page." URI="urn:schemas-microsoft-com:sharepoint:portal:profile:SPS-TimeZone" IsSystem="False" AllowPolicyOverride="True" IsUserEditable="True" IsAdminEditable="True" IsImported="False" Length="0" IsMultivalued="False" ChoiceType="Off" DefaultPrivacy="Public" UserOverridePrivacy="True" IsReplicable="False" PrivacyPolicy="OptIn" DisplayOrder="5110" IsColleagueEventLog="False" IsAlias="False" IsSearchable="False" IsUpgrade="False" IsUpgradePrivate="False" IsVisibleOnEditor="True" IsVisibleOnViewer="False" IsTaxonomic="False" Separator="Unknown" MaximumShown="10" IsSection="False" IsRequired="False" SubtypeName="UserProfile" IsImport="" IsExport="" DataSourcePropertyName="" OriginalDataSourcePropertyName="" AssociationName="" Connection="" />
<property Name="Assistant" DisplayName="Assistant" ManagedPropertyName="" Type="Person" ChoiceList="" Description="" URI="urn:schemas-microsoft-com:sharepoint:portal:profile:Assistant" IsSystem="True" AllowPolicyOverride="True" IsUserEditable="True" IsAdminEditable="True" IsImported="False" Length="250" IsMultivalued="False" ChoiceType="Off" DefaultPrivacy="Public" UserOverridePrivacy="False" IsReplicable="False" PrivacyPolicy="OptIn" DisplayOrder="5200" IsColleagueEventLog="False" IsAlias="False" IsSearchable="False" IsUpgrade="False" IsUpgradePrivate="False" IsVisibleOnEditor="True" IsVisibleOnViewer="True" IsTaxonomic="False" Separator="Unknown" MaximumShown="10" IsSection="False" IsRequired="False" SubtypeName="UserProfile" IsImport="" IsExport="" DataSourcePropertyName="" OriginalDataSourcePropertyName="" AssociationName="" Connection="" />
<property Name="SPS-PastProjects" DisplayName="Past projects" ManagedPropertyName="" Type="string (Multi Value)" ChoiceList="Microsoft.Office.Server.UserProfiles.ChoiceList" Description="Provide information on previous projects, teams or groups." URI="urn:schemas-microsoft-com:sharepoint:portal:profile:SPS-PastProjects" IsSystem="True" AllowPolicyOverride="True" IsUserEditable="True" IsAdminEditable="True" IsImported="False" Length="0" IsMultivalued="True" ChoiceType="Open" DefaultPrivacy="Public" UserOverridePrivacy="True" IsReplicable="False" PrivacyPolicy="OptIn" DisplayOrder="5202" IsColleagueEventLog="False" IsAlias="False" IsSearchable="True" IsUpgrade="False" IsUpgradePrivate="False" IsVisibleOnEditor="True" IsVisibleOnViewer="True" IsTaxonomic="True" Separator="Comma" MaximumShown="10" IsSection="False" IsRequired="False" SubtypeName="UserProfile" IsImport="" IsExport="" DataSourcePropertyName="" OriginalDataSourcePropertyName="" AssociationName="" Connection="" />
<property Name="SPS-Skills" DisplayName="Skills" ManagedPropertyName="" Type="string (Multi Value)" ChoiceList="Microsoft.Office.Server.UserProfiles.ChoiceList" Description="Include skills used to perform your job or previous projects.<br />(e.g. C++, Public Speaking, Design)&#8221; URI=&#8221;urn:schemas-microsoft-com:sharepoint:portal:profile:SPS-Skills&#8221; IsSystem=&#8221;True&#8221; AllowPolicyOverride=&#8221;True&#8221; IsUserEditable=&#8221;True&#8221; IsAdminEditable=&#8221;True&#8221; IsImported=&#8221;False&#8221; Length=&#8221;0&#8243; IsMultivalued=&#8221;True&#8221; ChoiceType=&#8221;Open&#8221; DefaultPrivacy=&#8221;Public&#8221; UserOverridePrivacy=&#8221;True&#8221; IsReplicable=&#8221;False&#8221; PrivacyPolicy=&#8221;OptIn&#8221; DisplayOrder=&#8221;5203&#8243; IsColleagueEventLog=&#8221;True&#8221; IsAlias=&#8221;False&#8221; IsSearchable=&#8221;True&#8221; IsUpgrade=&#8221;False&#8221; IsUpgradePrivate=&#8221;False&#8221; IsVisibleOnEditor=&#8221;True&#8221; IsVisibleOnViewer=&#8221;True&#8221; IsTaxonomic=&#8221;True&#8221; Separator=&#8221;Comma&#8221; MaximumShown=&#8221;10&#8243; IsSection=&#8221;False&#8221; IsRequired=&#8221;False&#8221; SubtypeName=&#8221;UserProfile&#8221; IsImport=&#8221;" IsExport=&#8221;" DataSourcePropertyName=&#8221;" OriginalDataSourcePropertyName=&#8221;" AssociationName=&#8221;" Connection=&#8221;" /> </p>
<property Name="SPS-School" DisplayName="Schools" ManagedPropertyName="" Type="string (Multi Value)" ChoiceList="Microsoft.Office.Server.UserProfiles.ChoiceList" Description="List the schools you have attended." URI="urn:schemas-microsoft-com:sharepoint:portal:profile:SPS-School" IsSystem="True" AllowPolicyOverride="True" IsUserEditable="True" IsAdminEditable="True" IsImported="False" Length="0" IsMultivalued="True" ChoiceType="Open" DefaultPrivacy="Public" UserOverridePrivacy="True" IsReplicable="False" PrivacyPolicy="OptIn" DisplayOrder="5204" IsColleagueEventLog="False" IsAlias="False" IsSearchable="True" IsUpgrade="False" IsUpgradePrivate="False" IsVisibleOnEditor="True" IsVisibleOnViewer="True" IsTaxonomic="True" Separator="Comma" MaximumShown="10" IsSection="False" IsRequired="False" SubtypeName="UserProfile" IsImport="" IsExport="" DataSourcePropertyName="" OriginalDataSourcePropertyName="" AssociationName="" Connection="" />
<property Name="SPS-Birthday" DisplayName="Birthday" ManagedPropertyName="" Type="datenoyear" ChoiceList="" Description="" URI="urn:schemas-microsoft-com:sharepoint:portal:profile:SPS-Birthday" IsSystem="False" AllowPolicyOverride="True" IsUserEditable="True" IsAdminEditable="True" IsImported="False" Length="0" IsMultivalued="False" ChoiceType="Off" DefaultPrivacy="Public" UserOverridePrivacy="True" IsReplicable="False" PrivacyPolicy="OptIn" DisplayOrder="5205" IsColleagueEventLog="True" IsAlias="False" IsSearchable="True" IsUpgrade="False" IsUpgradePrivate="False" IsVisibleOnEditor="True" IsVisibleOnViewer="True" IsTaxonomic="False" Separator="Comma" MaximumShown="10" IsSection="False" IsRequired="False" SubtypeName="UserProfile" IsImport="" IsExport="" DataSourcePropertyName="" OriginalDataSourcePropertyName="" AssociationName="" Connection="" />
<property Name="SPS-StatusNotes" DisplayName="Status Message" ManagedPropertyName="" Type="string (Single Value)" ChoiceList="" Description="" URI="urn:schemas-microsoft-com:sharepoint:portal:profile:SPS-StatusNotes" IsSystem="False" AllowPolicyOverride="True" IsUserEditable="True" IsAdminEditable="True" IsImported="False" Length="512" IsMultivalued="False" ChoiceType="Off" DefaultPrivacy="Public" UserOverridePrivacy="False" IsReplicable="False" PrivacyPolicy="OptIn" DisplayOrder="5300" IsColleagueEventLog="True" IsAlias="False" IsSearchable="False" IsUpgrade="False" IsUpgradePrivate="False" IsVisibleOnEditor="True" IsVisibleOnViewer="False" IsTaxonomic="False" Separator="Unknown" MaximumShown="10" IsSection="False" IsRequired="False" SubtypeName="UserProfile" IsImport="" IsExport="" DataSourcePropertyName="" OriginalDataSourcePropertyName="" AssociationName="" Connection="" />
<property Name="SPS-Interests" DisplayName="Interests" ManagedPropertyName="" Type="string (Multi Value)" ChoiceList="Microsoft.Office.Server.UserProfiles.ChoiceList" Description="Share personal and business related interests. We will help you keep in touch with activities related to these interests through events in your newsfeed." URI="urn:schemas-microsoft-com:sharepoint:portal:profile:SPS-Interests" IsSystem="True" AllowPolicyOverride="True" IsUserEditable="True" IsAdminEditable="True" IsImported="False" Length="0" IsMultivalued="True" ChoiceType="Open" DefaultPrivacy="Public" UserOverridePrivacy="True" IsReplicable="False" PrivacyPolicy="OptIn" DisplayOrder="5402" IsColleagueEventLog="True" IsAlias="False" IsSearchable="True" IsUpgrade="False" IsUpgradePrivate="False" IsVisibleOnEditor="True" IsVisibleOnViewer="True" IsTaxonomic="True" Separator="Comma" MaximumShown="10" IsSection="False" IsRequired="False" SubtypeName="UserProfile" IsImport="" IsExport="" DataSourcePropertyName="" OriginalDataSourcePropertyName="" AssociationName="" Connection="" />
<property Name="SPS-EmailOptin" DisplayName="Email Notifications" ManagedPropertyName="" Type="integer" ChoiceList="" Description="" URI="urn:schemas-microsoft-com:sharepoint:portal:profile:SPS-EmailOptin" IsSystem="False" AllowPolicyOverride="True" IsUserEditable="True" IsAdminEditable="True" IsImported="False" Length="0" IsMultivalued="False" ChoiceType="Off" DefaultPrivacy="Public" UserOverridePrivacy="False" IsReplicable="False" PrivacyPolicy="OptIn" DisplayOrder="5500" IsColleagueEventLog="False" IsAlias="False" IsSearchable="False" IsUpgrade="False" IsUpgradePrivate="False" IsVisibleOnEditor="True" IsVisibleOnViewer="False" IsTaxonomic="False" Separator="Unknown" MaximumShown="10" IsSection="False" IsRequired="False" SubtypeName="UserProfile" IsImport="" IsExport="" DataSourcePropertyName="" OriginalDataSourcePropertyName="" AssociationName="" Connection="" />
<property Name="Company" DisplayName="Company" ManagedPropertyName="" Type="string (Single Value)" ChoiceList="" Description="Company" URI="urn:schemas-microsoft-com:sharepoint:portal:profile:Company" IsSystem="False" AllowPolicyOverride="True" IsUserEditable="False" IsAdminEditable="True" IsImported="False" Length="25" IsMultivalued="False" ChoiceType="Off" DefaultPrivacy="Public" UserOverridePrivacy="False" IsReplicable="True" PrivacyPolicy="Mandatory" DisplayOrder="5601" IsColleagueEventLog="True" IsAlias="False" IsSearchable="True" IsUpgrade="False" IsUpgradePrivate="False" IsVisibleOnEditor="True" IsVisibleOnViewer="True" IsTaxonomic="False" Separator="Comma" MaximumShown="1" IsSection="False" IsRequired="True" SubtypeName="UserProfile" IsImport="True" IsExport="False" DataSourcePropertyName="company" OriginalDataSourcePropertyName="company" AssociationName="" Connection="Profile Sync" />
<property Name="NGAllowMetaEmail" DisplayName="Receive Instant Notification Emails" ManagedPropertyName="" Type="boolean" ChoiceList="" Description="Receive email notifications when someone responds to one of your activities." URI="urn:schemas-microsoft-com:sharepoint:portal:profile:NGAllowMetaEmail" IsSystem="False" AllowPolicyOverride="True" IsUserEditable="True" IsAdminEditable="True" IsImported="False" Length="0" IsMultivalued="False" ChoiceType="Off" DefaultPrivacy="Public" UserOverridePrivacy="False" IsReplicable="False" PrivacyPolicy="Mandatory" DisplayOrder="5603" IsColleagueEventLog="False" IsAlias="False" IsSearchable="False" IsUpgrade="False" IsUpgradePrivate="False" IsVisibleOnEditor="True" IsVisibleOnViewer="False" IsTaxonomic="False" Separator="Comma" MaximumShown="10" IsSection="False" IsRequired="True" SubtypeName="UserProfile" IsImport="" IsExport="" DataSourcePropertyName="" OriginalDataSourcePropertyName="" AssociationName="" Connection="" />
<property Name="NGReceiveDigestEmail" DisplayName="Receive 24-hour Digest Email" ManagedPropertyName="" Type="boolean" ChoiceList="" Description="Receive digest email of community and colleague activities for the last 24 hours." URI="urn:schemas-microsoft-com:sharepoint:portal:profile:NGReceiveDigestEmail" IsSystem="False" AllowPolicyOverride="True" IsUserEditable="True" IsAdminEditable="True" IsImported="False" Length="0" IsMultivalued="False" ChoiceType="Off" DefaultPrivacy="Public" UserOverridePrivacy="False" IsReplicable="False" PrivacyPolicy="Mandatory" DisplayOrder="5604" IsColleagueEventLog="False" IsAlias="False" IsSearchable="False" IsUpgrade="False" IsUpgradePrivate="False" IsVisibleOnEditor="True" IsVisibleOnViewer="False" IsTaxonomic="False" Separator="Comma" MaximumShown="10" IsSection="False" IsRequired="True" SubtypeName="UserProfile" IsImport="" IsExport="" DataSourcePropertyName="" OriginalDataSourcePropertyName="" AssociationName="" Connection="" />
<property Name="NGAllowRssEmail" DisplayName="Receive News Stream Notification Emails" ManagedPropertyName="" Type="boolean" ChoiceList="" Description="Receive email notifications when new News Stream items match one of your keywords." URI="urn:schemas-microsoft-com:sharepoint:portal:profile:NGAllowRssEmail" IsSystem="False" AllowPolicyOverride="True" IsUserEditable="True" IsAdminEditable="True" IsImported="False" Length="0" IsMultivalued="False" ChoiceType="Off" DefaultPrivacy="Public" UserOverridePrivacy="False" IsReplicable="False" PrivacyPolicy="Mandatory" DisplayOrder="5605" IsColleagueEventLog="False" IsAlias="False" IsSearchable="False" IsUpgrade="False" IsUpgradePrivate="False" IsVisibleOnEditor="True" IsVisibleOnViewer="False" IsTaxonomic="False" Separator="Comma" MaximumShown="10" IsSection="False" IsRequired="True" SubtypeName="UserProfile" IsImport="" IsExport="" DataSourcePropertyName="" OriginalDataSourcePropertyName="" AssociationName="" Connection="" /></properties></xml></textarea></p>
]]></content:encoded>
			<wfw:commentRss>http://vallery.net/2010/11/30/enumerating-user-profile-property-fields-in-sharepoint-2010-with-powershell/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Using PowerShell and the DirectorySearcher class</title>
		<link>http://vallery.net/2010/04/09/using-powershell-and-the-directorysearched-class/</link>
		<comments>http://vallery.net/2010/04/09/using-powershell-and-the-directorysearched-class/#comments</comments>
		<pubDate>Thu, 08 Apr 2010 22:34:41 +0000</pubDate>
		<dc:creator>jvallery</dc:creator>
				<category><![CDATA[SharePoint 2007]]></category>
		<category><![CDATA[active directory]]></category>
		<category><![CDATA[LDAP]]></category>
		<category><![CDATA[PowerShell]]></category>

		<guid isPermaLink="false">http://vallery.net/?p=206</guid>
		<description><![CDATA[I needed to locate the LDAP distinguished name of an individual user account in a remote domain via PowerShell.   Assuming your script is running on a box that is part of a domain that has a trust to the remote domain we can do this by running a query against Active Directory with LDAP. By [...]]]></description>
			<content:encoded><![CDATA[<p>I needed to locate the LDAP distinguished name of an individual user account in a remote domain via PowerShell.   Assuming your script is running on a box that is part of a domain that has a trust to the remote domain we can do this by running a query against Active Directory with LDAP.</p>
<p>By using the DirectorySearcher class we can build complex LDAP queries to find objects in Active Directory.   With this information you can do all kinds of fun scripting things.</p>
<p>Here is a sample script:</p>
<pre><span style="color: #000000;">

</span><span style="color: #008000;">#</span><span style="color: #008000;">Specify the search criteria</span><span style="color: #008000;">
</span><span style="color: #800080;">$samname</span><span style="color: #000000;"> </span><span style="color: #FF0000;">=</span><span style="color: #000000;"> </span><span style="color: #800000;">"</span><span style="color: #800000;">jasonv</span><span style="color: #800000;">"</span><span style="color: #000000;">
</span><span style="color: #800080;">$domain</span><span style="color: #000000;"> </span><span style="color: #FF0000;">=</span><span style="color: #000000;"> </span><span style="color: #800000;">"</span><span style="color: #800000;">dev.lcl</span><span style="color: #800000;">"</span><span style="color: #000000;">

</span><span style="color: #008000;">#</span><span style="color: #008000;">Get a list of domains in the forest and grab the DN of the one matching the above parameter.</span><span style="color: #008000;">
</span><span style="color: #800080;">$forest</span><span style="color: #000000;"> </span><span style="color: #FF0000;">=</span><span style="color: #000000;"> [</span><span style="color: #008080;">System.DirectoryServices.ActiveDirectory.Forest</span><span style="color: #000000;">]::</span><span style="color: #8B4513;">GetCurrentForest</span><span style="color: #000000;">()
</span><span style="color: #800080;">$domain</span><span style="color: #000000;"> </span><span style="color: #FF0000;">=</span><span style="color: #000000;"> </span><span style="color: #800080;">$forest</span><span style="color: #000000;">.Domains | ? {</span><span style="color: #800080;">$_</span><span style="color: #000000;">.Name </span><span style="color: #FF0000;">-eq</span><span style="color: #000000;"> </span><span style="color: #800080;">$domain</span><span style="color: #000000;">}
</span><span style="color: #800080;">$domainDN</span><span style="color: #000000;"> </span><span style="color: #FF0000;">=</span><span style="color: #000000;"> </span><span style="color: #800080;">$domain</span><span style="color: #000000;">.</span><span style="color: #8B4513;">GetDirectoryEntry</span><span style="color: #000000;">().distinguishedName
</span><span style="color: #5F9EA0; font-weight: bold;">Write-Output</span><span style="color: #000000;">  </span><span style="color: #800000;">"</span><span style="color: #800000;">Found the remote domain, the full LDAP distinguished name is $DomainDN</span><span style="color: #800000;">"</span><span style="color: #000000;">

</span><span style="color: #008000;">#</span><span style="color: #008000;">Create an LDAP searcher object and pass in the DN of the domain we wish to query</span><span style="color: #008000;">
</span><span style="color: #800080;">$Searcher</span><span style="color: #000000;"> </span><span style="color: #FF0000;">=</span><span style="color: #000000;"> </span><span style="color: #5F9EA0; font-weight: bold;">New-Object</span><span style="color: #000000;"> </span><span style="color: #800000;">System.DirectoryServices.DirectorySearcher</span><span style="color: #000000;">([</span><span style="color: #008080;">ADSI</span><span style="color: #000000;">]</span><span style="color: #800000;">"</span><span style="color: #800000;">LDAP://$domainDN</span><span style="color: #800000;">"</span><span style="color: #000000;">)

</span><span style="color: #008000;">#</span><span style="color: #008000;">Pass in the ceriteria we are searching for.</span><span style="color: #008000;">
#</span><span style="color: #008000;">In this case we're looking for users with a particular SAM name.</span><span style="color: #008000;">
</span><span style="color: #800080;">$Searcher</span><span style="color: #000000;">.</span><span style="color: #8B4513;">filter</span><span style="color: #000000;"> </span><span style="color: #FF0000;">=</span><span style="color: #000000;"> </span><span style="color: #800000;">"</span><span style="color: #800000;">(&amp;(objectCategory=person)(objectClass=user)(sAMAccountName= $samname))</span><span style="color: #800000;">"</span><span style="color: #000000;">
</span><span style="color: #800080;">$results</span><span style="color: #000000;"> </span><span style="color: #FF0000;">=</span><span style="color: #000000;"> </span><span style="color: #800080;">$Searcher</span><span style="color: #000000;">.</span><span style="color: #8B4513;">Findall</span><span style="color: #000000;">()

</span><span style="color: #008000;">#</span><span style="color: #008000;">Loop through the results</span><span style="color: #008000;">
</span><span style="color: #0000FF;">Foreach</span><span style="color: #000000;">(</span><span style="color: #800080;">$result</span><span style="color: #000000;"> </span><span style="color: #0000FF;">in</span><span style="color: #000000;"> </span><span style="color: #800080;">$results</span><span style="color: #000000;">){
    </span><span style="color: #800080;">$User</span><span style="color: #000000;"> </span><span style="color: #FF0000;">=</span><span style="color: #000000;"> </span><span style="color: #800080;">$result</span><span style="color: #000000;">.</span><span style="color: #8B4513;">GetDirectoryEntry</span><span style="color: #000000;">()
    </span><span style="color: #800080;">$userDN</span><span style="color: #000000;"> </span><span style="color: #FF0000;">=</span><span style="color: #000000;">  </span><span style="color: #800080;">$user</span><span style="color: #000000;">.</span><span style="color: #8B4513;">DistinguishedName</span><span style="color: #000000;">
    </span><span style="color: #5F9EA0; font-weight: bold;">Write-Output</span><span style="color: #000000;"> </span><span style="color: #800000;">"</span><span style="color: #800000;">Found a user matching with the distingused name of $userDN</span><span style="color: #800000;">"</span><span style="color: #000000;">
}

</span></pre>
]]></content:encoded>
			<wfw:commentRss>http://vallery.net/2010/04/09/using-powershell-and-the-directorysearched-class/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why I don&#8217;t recycle paper</title>
		<link>http://vallery.net/2010/04/08/why-i-dont-recycle-paper/</link>
		<comments>http://vallery.net/2010/04/08/why-i-dont-recycle-paper/#comments</comments>
		<pubDate>Wed, 07 Apr 2010 23:14:18 +0000</pubDate>
		<dc:creator>jvallery</dc:creator>
				<category><![CDATA[Random Thoughts]]></category>
		<category><![CDATA[economics]]></category>
		<category><![CDATA[environment]]></category>
		<category><![CDATA[recycle]]></category>

		<guid isPermaLink="false">http://vallery.net/2010/04/08/why-i-dont-recycle-paper/</guid>
		<description><![CDATA[I had a run in with a co-worker today who was upset that I hadn’t placed a couple sheets of paper in the recycling bin instead opting for the trash. I do this on purpose and I thought it would make an interesting blog post to explain why. The primary goal of recycling is to [...]]]></description>
			<content:encoded><![CDATA[<p style="float:right; margin:0 0 10px 15px; width:240px;">
		<img src="http://vallery.net/wp-content/uploads/2010/04/image_thumb.png" width="240" />
		</p><p>I had a run in with a co-worker today who was upset that I hadn’t placed a couple sheets of paper in the recycling bin instead opting for the trash.  I do this on purpose and I thought it would make an interesting blog post to explain why.<a href="http://vallery.net/wp-content/uploads/2010/04/image.png"><img style="display: inline; margin-left: 0px; margin-right: 0px; border: 0px;" title="image" src="http://vallery.net/wp-content/uploads/2010/04/image_thumb.png" border="0" alt="image" width="210" height="210" align="right" /></a></p>
<p>The primary goal of recycling is to minimize the impact of our consumption on the environment.  The basic argument however as to why we recycle usually goes along the lines that as humans we should recycle our consumables so that they can be used again without depending on a natural resource to replenish them.  The thing that the vast majority of folks fail to realize is that in many circumstances that statement is either incorrect or actually in opposition of the goal behind recycling.</p>
<p>To dig a bit further we need to look at recycling on a case by case basis for the material in question.  Typically recyclable materials are broken down into the following types:</p>
<p><strong>Paper </strong>–</p>
<p>The source of paper is wood which obviously comes from trees.  Those trees are typically purpose grown to provide paper.  There are large swaths of forest that were planted specifically by the various providers of wood in order to meet the demand we have on it.  In this very real sense wood is not a natural resource it is actually a crop.  There are more trees today in the United States than when the original settlers landed on this continent centuries ago.  Why? Because we need them.  It’s basic supply and demand economics in that as this country&#8217;s appetite for wood increased more trees were planted.</p>
<p>The cost, both monetarily and ecologically, associated with producing a recycled sheet of paper exceeds the cost of producing one from new wood.  This is because for recycled paper you have additional steps in the production process.  You must collect the recyclables, sort them, haul them to a processing facility, separate the paper from other debris and items, grind the paper into pulp, bleach it (using harmful chemicals), and then produce a sheet of paper.  All of these extra steps use energy which today is delivered in the form of fossil fuels.  The diesel that the truck to haul the recyclables burned, the coal to run the power plant which provided the electricity to process the paper, etc.  With new paper there is of course still energy expended but several studies indicate that the amount used for a recycled piece of paper exceeds the amount needed for a new sheet of paper.</p>
<p>The other benefit you have of using new paper is that you’re planting trees.  By consuming more paper you’re asking the paper manufactures to plant more trees on your behalf.  During the 25-30 years that the tree spends maturing to be ready for harvest it is busy eating carbon dioxide and producing oxygen.  If you subscribe to the greenhouse gas and global warming theories you’re now demonstrably reducing the carbon dioxide levels in the atmosphere by not recycling paper.</p>
<p>This is why I think, and a lot of other folks do as well, that you’re actually hurting the environment more be recycling paper. Throw it in the trash and we will grow more trees.</p>
<p><a href="http://www.google.com/search?q=why+I+don%27t+recycle+paper">If you think I&#8217;m alone look for yourself</a></p>
<p><strong> </strong></p>
<p><strong>Plastic (biodegradable) –</strong></p>
<p>These plastics were designed specifically to decompose quickly in sunlight and the soil.  They can sometimes even be used in compost.  Again, it makes much more sense to throw these in the trash than to recycle them if you’re not a composter.  The trip to the landfill uses much less energy than the equivalent required to process this in a recycling facility.</p>
<p><strong>Plastic (Non-biodegradable) –</strong></p>
<p>Recycle these!!!!! Non-biodegradable plastic is the single item that the average consumer throws away which has the largest negative environmental impact.  It can sit around in landfills for centuries.  If it can be recycled into something useful (which in this case is often a reuse) that is the best possible outcome.</p>
<p><strong>Glass –</strong></p>
<p>I’m on the fence about glass.  The information is inconclusive.  Glass is obviously derived from a natural resource (silicon) that has a finite supply.  If you’ve ever been to a beach though you’ll recognize that even though it is finite it is also nearly inexhaustible.  I don’t have a strong opinion one way or the other and will reserve judgment until more concrete studies are done that look at the cost/benefit of recycling glass.</p>
<p><strong>Aluminum –</strong></p>
<p>You should certainly recycle aluminum as the source is primarily bauxite. Since bauxite is a mined natural resource we can significantly limit our dependency by recycling.  This same reason is why you can actually sell your aluminum soda cans back for cash.  It’s much more efficient to recycle than to mine new bauxite and produce aluminum.</p>
<p><strong>Other metals –</strong></p>
<p>It really depends on the metal but like aluminum the source was most certainly a mined mineral. I recommend recycling these items (soup cans, etc).</p>
]]></content:encoded>
			<wfw:commentRss>http://vallery.net/2010/04/08/why-i-dont-recycle-paper/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My impression of the iPad after 72 hours</title>
		<link>http://vallery.net/2010/04/06/my-impression-of-the-ipad-after-72-hours/</link>
		<comments>http://vallery.net/2010/04/06/my-impression-of-the-ipad-after-72-hours/#comments</comments>
		<pubDate>Tue, 06 Apr 2010 17:26:19 +0000</pubDate>
		<dc:creator>jvallery</dc:creator>
				<category><![CDATA[Reviews]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[kindle]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[tweetie]]></category>
		<category><![CDATA[twitterific]]></category>

		<guid isPermaLink="false">http://vallery.net/2010/04/06/my-impression-of-the-ipad-after-72-hours/</guid>
		<description><![CDATA[In follow-up to my earlier post I wanted to share my thoughts now that I’ve actually used my iPad during my day to day routine. I’m still very pleased with the hardware.&#160;&#160; The size is just about perfect for taking to a meeting or sitting on the couch.&#160; I haven’t yet traveled with it but [...]]]></description>
			<content:encoded><![CDATA[<p style="float:right; margin:0 0 10px 15px; width:240px;">
		<img src="http://vallery.net/wp-content/uploads/2010/04/twitterific2.png" width="240" />
		</p><p>In follow-up to my <a href="http://vallery.net/2010/04/05/my-first-impression-of-the-ipad/">earlier post</a> I wanted to share my thoughts now that I’ve actually used my iPad during my day to day routine.</p>
<p>I’m still very pleased with the hardware.&#160;&#160; The size is just about perfect for taking to a meeting or sitting on the couch.&#160; I haven’t yet traveled with it but will have that opportunity next week.&#160;&#160; I expect it to be great for use on the plane.</p>
<p>When using the <a href="http://store.apple.com/us/product/MC361ZM/A">Apple case</a> I find that sitting the slightly raised iPad down on the table to be at the perfect angle for typing.</p>
<p>The battery life is great.&#160;&#160; While I had my initial concerns about the inability to charge the iPad with anything but the included wall charger, that hasn’t proved to be as big of an issue as I expected.&#160;&#160; In reality I haven’t dropped below 60% battery usage after 2 days of fairly heavy&#160; usage.&#160; I just plug it in the wall charger at night before I go to bed.&#160;&#160; I still think they will need to address the issue but it’s not bothering me.</p>
<p>The browser is absolutely fantastic.&#160;&#160;&#160; Aside from the obvious and unfortunate omission of flash support it is actually a really capable device for basic web surfing.&#160;&#160; Initially I was concerned that there is no native Facebook application that leverages the capabilities of the iPad.&#160;&#160;&#160;&#160; I’ve actually found using the full web version of Facebook to be great thanks to the screen real estate and the capabilities of Safari.&#160;&#160; I would argue that thanks to the touch interface surfing the web might actually be better on the iPad compared to a traditional PC.</p>
<p>I really can see the potential to lower my dependency on my laptop for basic tasks.&#160;&#160; In example, I’ve found it to be particularly useful for basic emailing and calendar activities.&#160;&#160; Contrary to my iPhone it is actually pretty easy to type on, copy/paste, etc.&#160;&#160; I don’t mind writing an email on my iPhone in a pinch but it’s not something I would do regularly.&#160;&#160; With the iPad it’s actually a much more pleasurable experience.</p>
<p>I’ve also been enjoying a few additional applications:</p>
<p>&#160;</p>
<p><a href="http://itunes.apple.com/us/app/kindle/id302584613?mt=8"><img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="kindle" border="0" alt="kindle" align="left" src="http://vallery.net/wp-content/uploads/2010/04/kindle3.png" width="100" height="99" /></a></p>
<p><a href="http://itunes.apple.com/us/app/kindle/id302584613?mt=8">Kindle for iPad</a> &#8211; To correct my earlier post, it turns out there is a <a href="http://itunes.apple.com/us/app/kindle/id302584613?mt=8">Kindle app for the iPad</a>.&#160;&#160; I’m happy to see this since I have a decent investment in ebooks from Amazon.&#160; The UI is fine, but not as polished as Apple’s iBook.    <br />    <br clear="all" />    <br /><a href="http://itunes.apple.com/us/app/evernote/id281796108?mt=8"><img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="evernote" border="0" alt="evernote" align="left" src="http://vallery.net/wp-content/uploads/2010/04/evernote2.png" width="100" height="101" /></a></p>
<p><a href="http://blog.evernote.com/2010/04/03/evernote-for-ipad-is-here/">Evernote for iPad</a>&#160; -&#160; I’m already a big user of Evernote so the iPad version was very welcome.&#160;&#160; I used this in meetings yesterday and today to take notes.&#160;&#160; It’s great to sit the iPad down on a conference table to keep track of what is being discussed.&#160;&#160; I think this use case has the potential to be the single greatest “killer app” to bring the iPad to the enterprise.    <br />    <br clear="all" /></p>
<p><a href="http://itunes.apple.com/us/app/twitterrific-for-ipad/id359914600?mt=8"><img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="twitterific" border="0" alt="twitterific" align="left" src="http://vallery.net/wp-content/uploads/2010/04/twitterific2.png" width="100" height="101" /></a></p>
<p><a href="http://itunes.apple.com/us/app/twitterrific-for-ipad/id359914600?mt=8">Twitterific for iPad</a> -&#160;&#160; I had been using <a href="http://itunes.apple.com/us/app/tweetie-2/id333903271?mt=8">Tweetie 2</a> on my iPhone as of late for interaction with twitter.&#160;&#160; Based on the great reviews of Twitterific for iPad I gave it a shot.&#160;&#160;&#160; This is a much better UI for interacting with twitter, thanks to the additional screen real estate.&#160; I’m hopeful that the folks behind Tweetie will come out with an iPad version because there are some features missing in Twitterific.&#160;&#160; I particularly enjoy the location aware components of Tweetie including searching for “tweets near me” and the inclusion of google maps links when a tweet includes lat/lon information.    <br />    <br clear="all" /></p>
]]></content:encoded>
			<wfw:commentRss>http://vallery.net/2010/04/06/my-impression-of-the-ipad-after-72-hours/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 0.911 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2012-02-05 14:01:26 -->
<!-- Compression = gzip -->
