<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://powershell.com/cs/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Search results for 'app:weblogs' matching tags 'Compare-Object' and 'Import-CliXML'</title><link>http://powershell.com/cs/search/SearchResults.aspx?q=app:weblogs&amp;tag=Compare-Object,Import-CliXML&amp;orTags=0&amp;o=DateDescending</link><description>Search results for 'app:weblogs' matching tags 'Compare-Object' and 'Import-CliXML'</description><dc:language>en-US</dc:language><generator>CommunityServer 2008.5 (Build: 30929.2835)</generator><item><title>Tipps &amp;amp; Tricks Using Compare-Object</title><link>http://powershell.com/cs/blogs/tobias/archive/2009/01/09/tipps-amp-tricks-using-compare-object.aspx</link><pubDate>Fri, 09 Jan 2009 06:00:00 GMT</pubDate><guid isPermaLink="false">f421715f-7aba-45f0-8a8d-44de5318a3a7:839</guid><dc:creator>Tobias Weltner</dc:creator><description>
&lt;p&gt;


&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Compare-Object&lt;/strong&gt; is a very powerful Cmdlet that can compare different result sets. The funny thing is: when you try to use &lt;strong&gt;Compare-Object &lt;/strong&gt;in simple scenarios, all works fine. Once you put it to work in production environments, it often fails. Here is why. This article describes what to watch out for and how to correctly configure&lt;strong&gt; Compare-Object&lt;/strong&gt; to make it work for you.&lt;/p&gt;
&lt;h2&gt;Using Compare-Object To Find New Processes&lt;/h2&gt;
&lt;p&gt;PowerShell can easily compare result sets for you and filter out only those items that have changed. Let&amp;#39;s say you&amp;#39;d like to know which processes have been started after a given point in time. How can you do that?&lt;/p&gt;
&lt;p&gt;The workhorse doing the comparinson is called &lt;strong&gt;Compare-Object&lt;/strong&gt;. This Cmdlet takes two resultsets and automatically analyzes them. It then outputs only those items present in either one of the result sets. To find out the processes started after a given point in time, you first create a base resultset of all currently running processes like this:&lt;/p&gt;
&lt;div style="font-family:&amp;#39;Courier New&amp;#39;;font-size:12;background:#012456;"&gt;&lt;span style="color:#eeedf0;background-color:#012456;"&gt;PS&amp;gt;&amp;nbsp;$shot1&amp;nbsp;=&amp;nbsp;Get-Process&lt;br /&gt;PS&amp;gt;&amp;nbsp;notepad&lt;br /&gt;PS&amp;gt;&amp;nbsp;$shot2&amp;nbsp;=&amp;nbsp;Get-Process&lt;br /&gt;PS&amp;gt;&amp;nbsp;Compare-Object&amp;nbsp;$shot1&amp;nbsp;$shot2&lt;br /&gt;&lt;br /&gt;InputObject&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SideIndicator&lt;br /&gt;-----------&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-------------&lt;br /&gt;System.Diagnostics.Process&amp;nbsp;(notepad)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;=&amp;gt;&lt;br /&gt;System.Diagnostics.Process&amp;nbsp;(WmiPrvSE)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;=&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;

&lt;p&gt;Now, whenever you want to see what has changed in your environment, create a second snapshot and compare both. Let&amp;#39;s start notepad.exe really quick, then create another snapshot and compare both:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Compare-Object&lt;/strong&gt; returns only those processes that exist in either &lt;strong&gt;$shot1 &lt;/strong&gt;or &lt;strong&gt;$shot2&lt;/strong&gt;, and the &lt;strong&gt;SideIndicator&lt;/strong&gt; property tells you in which result set the object was present. A &lt;strong&gt;SideIndicator&lt;/strong&gt; &amp;quot;=&amp;gt;&amp;quot; indicates that processes existed in only the second result set so you know these must be new processes. Interestingly enough, when I launched notepad, Windows also launched a process called &lt;em&gt;WmiPrvSE&lt;/em&gt;.&lt;/p&gt;
&lt;h2&gt;Finding New Files And Folders&lt;/h2&gt;
&lt;p&gt;Wow, that&amp;#39;s easy! Why not use this to find new files and folders added to a folder you&amp;#39;d like to monitor? To do that, you&amp;#39;d first generate a snapshot of that folder, then wait for content to be changed, and finally create another snapshot and compare contents. Let&amp;#39;s take a look:&lt;/p&gt;
&lt;div style="font-family:&amp;#39;Courier New&amp;#39;;font-size:12;background:#012456;"&gt;&lt;span style="color:#eeedf0;background-color:#012456;"&gt;PS&amp;gt;&amp;nbsp;$shot1&amp;nbsp;=&amp;nbsp;Dir&amp;nbsp;$home&lt;br /&gt;PS&amp;gt;&amp;nbsp;Set-Content&amp;nbsp;$home\testfile1.txt&amp;nbsp;&amp;quot;A&amp;nbsp;new&amp;nbsp;file&amp;quot;&lt;br /&gt;PS&amp;gt;&amp;nbsp;$shot2&amp;nbsp;=&amp;nbsp;Dir&amp;nbsp;$home&lt;br /&gt;PS&amp;gt;&amp;nbsp;Compare-Object&amp;nbsp;$shot1&amp;nbsp;$shot2&lt;br /&gt;&lt;br /&gt;InputObject&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SideIndicator&lt;br /&gt;-----------&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-------------&lt;br /&gt;testfile1.txt&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;=&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;It worked. It will not always work like a charm, though. There is an important caveat you need to know about: &lt;strong&gt;SyncWindow&lt;/strong&gt;.&lt;/p&gt;
&lt;h2&gt;Adjusting SyncWindow&lt;/h2&gt;
&lt;p&gt;Whenever &lt;strong&gt;Compare-Object &lt;/strong&gt;compares object sets, it uses a &lt;strong&gt;SyncWindow&lt;/strong&gt; to resync both lists when there is no match. The default &lt;strong&gt;SyncWindow&lt;/strong&gt; setting in PowerShell V1 is 5, so whenever the result sets has too many consecutive differences, the result will not be what you expected. Here is an example:&lt;/p&gt;
&lt;div style="font-family:&amp;#39;Courier New&amp;#39;;font-size:12;background:#012456;"&gt;&lt;span style="color:#eeedf0;background-color:#012456;"&gt;PS&amp;gt;&amp;nbsp;$shot1&amp;nbsp;=&amp;nbsp;1..10&lt;br /&gt;PS&amp;gt;&amp;nbsp;$shot2&amp;nbsp;=&amp;nbsp;10..1&lt;br /&gt;PS&amp;gt;&amp;nbsp;Compare-Object&amp;nbsp;$shot1&amp;nbsp;$shot2&lt;br /&gt;&lt;br /&gt;PS&amp;gt;&amp;nbsp;$shot1&amp;nbsp;=&amp;nbsp;1..15&lt;br /&gt;PS&amp;gt;&amp;nbsp;$shot2&amp;nbsp;=&amp;nbsp;15..1&lt;br /&gt;PS&amp;gt;&amp;nbsp;Compare-Object&amp;nbsp;$shot1&amp;nbsp;$shot2&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;InputObject&amp;nbsp;SideIndicator&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-----------&amp;nbsp;-------------&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;15&amp;nbsp;=&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;&amp;lt;=&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;14&amp;nbsp;=&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&amp;lt;=&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&amp;nbsp;=&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;=&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;14&amp;nbsp;&amp;lt;=&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;15&amp;nbsp;&amp;lt;=&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;In the first part, &lt;strong&gt;Compare-Object&lt;/strong&gt; compares two lists of numbers. Both lists contain the same numbers but in reverse order. The result is nothing, and that is correct since both sets contain the same numbers.&lt;/p&gt;
&lt;p&gt;In the second part, there are 15 numbers in each set. This time, &lt;strong&gt;Compare-Object&lt;/strong&gt; returns a bunch of nonsense information, claiming for example that the number 15 is present only in &lt;strong&gt;$shot1 &lt;/strong&gt;and then only in&lt;strong&gt; $shot2&lt;/strong&gt;. Why?&lt;/p&gt;
&lt;p&gt;The default &lt;strong&gt;SyncWindow&lt;/strong&gt; is 5, so whenerver there is no match, &lt;strong&gt;Compare-Object&lt;/strong&gt; uses a delta of +/- 5 items to find the next matching item. When there are 10 elements in a set, a SyncWindow of 5 is sufficient to resync both lists (plus/minus 5 results in a maximum of 10 allowable consecutive differences). When there are 15 elements, &lt;strong&gt;SyncWindow&lt;/strong&gt; would need to be at least 7 (the first comparison would be number 1 of &lt;strong&gt;$shot1&lt;/strong&gt; against number 15 of &lt;strong&gt;$shot2&lt;/strong&gt;; with a SyncWindow of 7, &lt;strong&gt;Compare-Object&lt;/strong&gt; would move 14 elements in $shot2 to find a match and would indeed find the matching number 1).&lt;/p&gt;
&lt;p&gt;Fortunately, you can change the &lt;strong&gt;SyncWindow&lt;/strong&gt; property using the parameter &lt;strong&gt;-syncWindow&lt;/strong&gt;:&lt;/p&gt;
&lt;div style="font-family:&amp;#39;Courier New&amp;#39;;font-size:12;background:#012456;"&gt;&lt;span style="color:#eeedf0;background-color:#012456;"&gt;PS&amp;gt;&amp;nbsp;$shot1&amp;nbsp;=&amp;nbsp;1..15&lt;br /&gt;PS&amp;gt;&amp;nbsp;$shot2&amp;nbsp;=&amp;nbsp;15..1&lt;br /&gt;PS&amp;gt;&amp;nbsp;Compare-Object&amp;nbsp;$shot1&amp;nbsp;$shot2&amp;nbsp;-syncWindow&amp;nbsp;7&lt;br /&gt;PS&amp;gt;&amp;nbsp;Compare-Object&amp;nbsp;$shot1&amp;nbsp;$shot2&amp;nbsp;-syncWindow&amp;nbsp;6&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;InputObject&amp;nbsp;SideIndicator&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-----------&amp;nbsp;-------------&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;15&amp;nbsp;=&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;&amp;lt;=&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;=&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;15&amp;nbsp;&amp;lt;=&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;

&lt;p&gt;Now, what would the &lt;strong&gt;SyncWindow&lt;/strong&gt; need to be with an array of 16 or 25 elements? Easy: Take the array size, divide it by two and there you go. For an array of 16 elements, the minimum &lt;strong&gt;SyncWindow&lt;/strong&gt; needs to be 8, and for an array of 25 elements it needs to be 12.&lt;/p&gt;
&lt;div style="font-family:&amp;#39;Courier New&amp;#39;;font-size:12;background:#012456;"&gt;&lt;span style="color:#eeedf0;background-color:#012456;"&gt;PS&amp;gt;&amp;nbsp;$shot1&amp;nbsp;=&amp;nbsp;1..5&lt;br /&gt;PS&amp;gt;&amp;nbsp;$shot2&amp;nbsp;=&amp;nbsp;5..1&lt;br /&gt;PS&amp;gt;&amp;nbsp;Compare-Object&amp;nbsp;$shot1&amp;nbsp;$shot2&lt;br /&gt;PS&amp;gt;&amp;nbsp;$shot1&amp;nbsp;=&amp;nbsp;1..10&lt;br /&gt;PS&amp;gt;&amp;nbsp;$shot2&amp;nbsp;=&amp;nbsp;10..1&lt;br /&gt;PS&amp;gt;&amp;nbsp;Compare-Object&amp;nbsp;$shot1&amp;nbsp;$shot2&lt;br /&gt;PS&amp;gt;&amp;nbsp;$shot1&amp;nbsp;=&amp;nbsp;1..15&lt;br /&gt;PS&amp;gt;&amp;nbsp;$shot2&amp;nbsp;=&amp;nbsp;15..1&lt;br /&gt;PS&amp;gt;&amp;nbsp;Compare-Object&amp;nbsp;$shot1&amp;nbsp;$shot2&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;InputObject&amp;nbsp;SideIndicator&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-----------&amp;nbsp;-------------&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;15&amp;nbsp;=&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;&amp;lt;=&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;14&amp;nbsp;=&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&amp;lt;=&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&amp;nbsp;=&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;=&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;14&amp;nbsp;&amp;lt;=&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;15&amp;nbsp;&amp;lt;=&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;PS&amp;gt;&amp;nbsp;$shot1&amp;nbsp;=&amp;nbsp;1..15&lt;br /&gt;PS&amp;gt;&amp;nbsp;$shot2&amp;nbsp;=&amp;nbsp;15..1&lt;br /&gt;PS&amp;gt;&amp;nbsp;Compare-Object&amp;nbsp;$shot1&amp;nbsp;$shot2&amp;nbsp;-syncWindow&amp;nbsp;7&lt;br /&gt;PS&amp;gt;&amp;nbsp;Compare-Object&amp;nbsp;$shot1&amp;nbsp;$shot2&amp;nbsp;-syncWindow&amp;nbsp;6&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;InputObject&amp;nbsp;SideIndicator&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-----------&amp;nbsp;-------------&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;15&amp;nbsp;=&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;&amp;lt;=&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;=&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;15&amp;nbsp;&amp;lt;=&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;Here are a couple of things to note regarding &lt;strong&gt;SyncWindow&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;When SyncWindows is too low,&lt;strong&gt; Compare-Object&lt;/strong&gt; returns false information and reports objects twice, once for each result set&lt;/li&gt;
&lt;li&gt;The default &lt;strong&gt;SyncWindow&lt;/strong&gt; setting of 5 is sufficient only when you expect very small changes in your result sets&lt;/li&gt;
&lt;li&gt;To make sure you catch all matches, you would have to set &lt;strong&gt;SyncWindow&lt;/strong&gt; to half of the number of expected differences. You can also set &lt;strong&gt;SyncWindow&lt;/strong&gt; to a very large number like 1000 as catch-all. This however may cause long delays and a lot of memory consumption&lt;/li&gt;
&lt;li&gt;In PowerShell V2, the default &lt;strong&gt;syncWindow&lt;/strong&gt; setting has been raised as a consequence of this&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Picking Properties&lt;/h2&gt;
&lt;p&gt;Remember everything in PowerShell is represented as object, and objects have properties. If you don&amp;#39;t care about properties, &lt;strong&gt;Compare-Object &lt;/strong&gt;picks the information to use for comparison automatically. This may not be what you want. Have a look:&lt;/p&gt;
&lt;div style="font-family:&amp;#39;Courier New&amp;#39;;font-size:12;background:#012456;"&gt;&lt;span style="color:#eeedf0;background-color:#012456;"&gt;PS&amp;gt;&amp;nbsp;$shot1&amp;nbsp;=&amp;nbsp;Dir&amp;nbsp;$home&lt;br /&gt;PS&amp;gt;&amp;nbsp;Add-Content&amp;nbsp;$home\testfile1.txt&amp;nbsp;&amp;quot;Another&amp;nbsp;line&amp;quot;&lt;br /&gt;PS&amp;gt;&amp;nbsp;$shot2&amp;nbsp;=&amp;nbsp;Dir&amp;nbsp;$home&lt;br /&gt;PS&amp;gt;&amp;nbsp;Compare-Object&amp;nbsp;$shot1&amp;nbsp;$shot2&lt;br /&gt;&lt;br /&gt;PS&amp;gt;&amp;nbsp;Compare-Object&amp;nbsp;$shot1&amp;nbsp;$shot2&amp;nbsp;-property&amp;nbsp;Name,&amp;nbsp;Length&lt;br /&gt;&lt;br /&gt;Name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Length&amp;nbsp;SideIndicator&lt;br /&gt;----&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;------&amp;nbsp;-------------&lt;br /&gt;testfile1.txt&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;26&amp;nbsp;=&amp;gt;&lt;br /&gt;testfile1.txt&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;12&amp;nbsp;&amp;lt;=&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;This is actually a little modification to the example script earlier. I create a folder snapshot, then I add a line to the file I created in the earlier example. Next, I create another snapshot and compare both. The result is: nothing. Why?&lt;/p&gt;
&lt;p&gt;Because I did not pick an object property. So &lt;strong&gt;Compare-Object &lt;/strong&gt;simply looked at the file name, and since I added a line to an existing file, no new file name was created. &lt;/p&gt;
&lt;p&gt;To monitor file changes, I need to explicitly tell &lt;strong&gt;Compare-Object&lt;/strong&gt; to compare both the name and the &lt;strong&gt;Length&lt;/strong&gt; property. Once I do that, I get back two results. The &lt;strong&gt;SideIndicator&lt;/strong&gt; tells me that the file testfile1.txt was 12 Bytes in the initial snapshot and now is 26 Bytes.&lt;/p&gt;
&lt;h2&gt;Working With Results&lt;/h2&gt;
&lt;p&gt;The results delivered by &lt;strong&gt;Compare-Object&lt;/strong&gt; are custom objects returning the properties you selected as well as the &lt;strong&gt;SideIndicator&lt;/strong&gt; property. You can filter and return only selected information. For example, if you&amp;#39;d like to filter the result to show only new elements (&lt;strong&gt;SideIndicator&lt;/strong&gt; equals &amp;quot;=&amp;gt;&amp;quot;), use &lt;strong&gt;Where-Object &lt;/strong&gt;like this:&lt;/p&gt;
&lt;div style="font-family:&amp;#39;Courier New&amp;#39;;font-size:12;background:#012456;"&gt;&lt;span style="color:#eeedf0;background-color:#012456;"&gt;PS&amp;gt;&amp;nbsp;Compare-Object&amp;nbsp;$shot1&amp;nbsp;$shot2&amp;nbsp;-property&amp;nbsp;Name,&amp;nbsp;Length&amp;nbsp;|&amp;nbsp;Where-Object&amp;nbsp;{&amp;nbsp;$_.SideIndicator&amp;nbsp;-eq&amp;nbsp;&amp;#39;=&amp;gt;&amp;#39;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;Name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Length&amp;nbsp;SideIndicator&lt;br /&gt;----&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;------&amp;nbsp;-------------&lt;br /&gt;testfile1.txt&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;26&amp;nbsp;=&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;You could also use the &lt;strong&gt;-passThru&lt;/strong&gt; parameter to actually return the original objects compared by &lt;strong&gt;Compare-Object&lt;/strong&gt;. When you do this, the SideIndicator property is appended to the original object and you can still use it for filtering:&lt;/p&gt;
&lt;div style="font-family:&amp;#39;Courier New&amp;#39;;font-size:12;background:#012456;"&gt;&lt;span style="color:#eeedf0;background-color:#012456;"&gt;PS&amp;gt;&amp;nbsp;Compare-Object&amp;nbsp;$shot1&amp;nbsp;$shot2&amp;nbsp;-property&amp;nbsp;name,&amp;nbsp;length&amp;nbsp;|&amp;nbsp;fl&amp;nbsp;*&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;testfile.txt&lt;br /&gt;length&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;51&lt;br /&gt;SideIndicator&amp;nbsp;:&amp;nbsp;=&amp;gt;&lt;br /&gt;&lt;br /&gt;name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;testfile.txt&lt;br /&gt;length&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;39&lt;br /&gt;SideIndicator&amp;nbsp;:&amp;nbsp;&amp;lt;=&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;PS&amp;gt;&amp;nbsp;Compare-Object&amp;nbsp;$shot1&amp;nbsp;$shot2&amp;nbsp;-property&amp;nbsp;name,&amp;nbsp;length&amp;nbsp;&lt;/span&gt;&lt;span style="background-color:#012456;" class="style1"&gt;-passThru&lt;/span&gt;&lt;span style="color:#eeedf0;background-color:#012456;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Directory:&amp;nbsp;Microsoft.PowerShell.Core\FileSystem::C:\Users\Tobias&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Mode&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LastWriteTime&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Length&amp;nbsp;Name&lt;br /&gt;----&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-------------&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;------&amp;nbsp;----&lt;br /&gt;-a---&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1/9/2009&amp;nbsp;&amp;nbsp;11:38&amp;nbsp;AM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;51&amp;nbsp;testfile.txt&lt;br /&gt;-a---&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1/9/2009&amp;nbsp;&amp;nbsp;11:34&amp;nbsp;AM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;39&amp;nbsp;testfile.txt&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;PS&amp;gt;&amp;nbsp;Compare-Object&amp;nbsp;$shot1&amp;nbsp;$shot2&amp;nbsp;-property&amp;nbsp;name,&amp;nbsp;length&amp;nbsp;-passThru&amp;nbsp;|&amp;nbsp;fl&amp;nbsp;*&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;PSPath&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;Microsoft.PowerShell.Core\FileSystem::C:\Users\Tobias\testfile.txt&lt;br /&gt;PSParentPath&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;Microsoft.PowerShell.Core\FileSystem::C:\Users\Tobias&lt;br /&gt;PSChildName&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;testfile.txt&lt;br /&gt;PSDrive&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;C&lt;br /&gt;PSProvider&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;Microsoft.PowerShell.Core\FileSystem&lt;br /&gt;PSIsContainer&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;False&lt;br /&gt;&lt;/span&gt;&lt;span style="background-color:#012456;" class="style1"&gt;SideIndicator&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;=&amp;gt;&lt;/span&gt;&lt;span style="color:#eeedf0;background-color:#012456;"&gt;&lt;br /&gt;Mode&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;-a---&lt;br /&gt;Name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;testfile.txt&lt;br /&gt;Length&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;51&lt;br /&gt;DirectoryName&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;C:\Users\Tobias&lt;br /&gt;Directory&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;C:\Users\Tobias&lt;br /&gt;IsReadOnly&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;False&lt;br /&gt;Exists&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;True&lt;br /&gt;FullName&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;C:\Users\Tobias\testfile.txt&lt;br /&gt;Extension&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;.txt&lt;br /&gt;CreationTime&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;1/9/2009&amp;nbsp;11:31:05&amp;nbsp;AM&lt;br /&gt;CreationTimeUtc&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;1/9/2009&amp;nbsp;10:31:05&amp;nbsp;AM&lt;br /&gt;LastAccessTime&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;1/9/2009&amp;nbsp;11:31:05&amp;nbsp;AM&lt;br /&gt;LastAccessTimeUtc&amp;nbsp;:&amp;nbsp;1/9/2009&amp;nbsp;10:31:05&amp;nbsp;AM&lt;br /&gt;LastWriteTime&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;1/9/2009&amp;nbsp;11:38:17&amp;nbsp;AM&lt;br /&gt;LastWriteTimeUtc&amp;nbsp;&amp;nbsp;:&amp;nbsp;1/9/2009&amp;nbsp;10:38:17&amp;nbsp;AM&lt;br /&gt;Attributes&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;Archive&lt;br /&gt;&lt;br /&gt;PSPath&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;Microsoft.PowerShell.Core\FileSystem::C:\Users\Tobias\testfile.txt&lt;br /&gt;PSParentPath&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;Microsoft.PowerShell.Core\FileSystem::C:\Users\Tobias&lt;br /&gt;PSChildName&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;testfile.txt&lt;br /&gt;PSDrive&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;C&lt;br /&gt;PSProvider&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;Microsoft.PowerShell.Core\FileSystem&lt;br /&gt;PSIsContainer&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;False&lt;br /&gt;&lt;/span&gt;&lt;span style="background-color:#012456;" class="style1"&gt;SideIndicator&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;&amp;lt;=&lt;/span&gt;&lt;span style="color:#eeedf0;background-color:#012456;"&gt;&lt;br /&gt;Mode&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;-a---&lt;br /&gt;Name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;testfile.txt&lt;br /&gt;Length&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;39&lt;br /&gt;DirectoryName&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;C:\Users\Tobias&lt;br /&gt;Directory&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;C:\Users\Tobias&lt;br /&gt;IsReadOnly&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;False&lt;br /&gt;Exists&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;True&lt;br /&gt;FullName&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;C:\Users\Tobias\testfile.txt&lt;br /&gt;Extension&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;.txt&lt;br /&gt;CreationTime&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;1/9/2009&amp;nbsp;11:31:05&amp;nbsp;AM&lt;br /&gt;CreationTimeUtc&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;1/9/2009&amp;nbsp;10:31:05&amp;nbsp;AM&lt;br /&gt;LastAccessTime&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;1/9/2009&amp;nbsp;11:31:05&amp;nbsp;AM&lt;br /&gt;LastAccessTimeUtc&amp;nbsp;:&amp;nbsp;1/9/2009&amp;nbsp;10:31:05&amp;nbsp;AM&lt;br /&gt;LastWriteTime&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;1/9/2009&amp;nbsp;11:34:58&amp;nbsp;AM&lt;br /&gt;LastWriteTimeUtc&amp;nbsp;&amp;nbsp;:&amp;nbsp;1/9/2009&amp;nbsp;10:34:58&amp;nbsp;AM&lt;br /&gt;Attributes&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;Archive&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;PS&amp;gt;&amp;nbsp;Compare-Object&amp;nbsp;$shot1&amp;nbsp;$shot2&amp;nbsp;-property&amp;nbsp;name,&amp;nbsp;length&amp;nbsp;&lt;/span&gt;&lt;span style="background-color:#012456;" class="style1"&gt;-passThru&lt;/span&gt;&lt;span style="color:#eeedf0;background-color:#012456;"&gt;&amp;nbsp;|&amp;nbsp;Where-Object&amp;nbsp;{&amp;nbsp;$_.&lt;/span&gt;&lt;span style="background-color:#012456;" class="style1"&gt;SideIndicator&amp;nbsp;-eq&amp;nbsp;&amp;#39;=&amp;gt;&amp;#39;&lt;/span&gt;&lt;span style="color:#eeedf0;background-color:#012456;"&gt;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Directory:&amp;nbsp;Microsoft.PowerShell.Core\FileSystem::C:\Users\Tobias&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Mode&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LastWriteTime&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Length&amp;nbsp;Name&lt;br /&gt;----&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-------------&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;------&amp;nbsp;----&lt;br /&gt;-a---&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1/9/2009&amp;nbsp;&amp;nbsp;11:38&amp;nbsp;AM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;51&amp;nbsp;testfile.txt&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;h2&gt;&lt;/h2&gt;
&lt;h2&gt;Persisting Comparison Information&lt;/h2&gt;
&lt;p&gt;All comparisons so far have taken place in memory because we created the result sets on the fly. What if I&amp;#39;d like to compare folder content against a predefined base set?&lt;/p&gt;
&lt;p&gt;You can easily do that. Simply export the result sets to XML, then reload them and do the comparison. There are three important rules when you do that:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Use &lt;strong&gt;Select-Object &lt;/strong&gt;to select only the object properties you really need for your comparison prior to exporting objects to XML or else the XML will be very large&lt;/li&gt;
&lt;li&gt;The result sets you compare both need to be written to XML and re-imported. Do not compare an imported XML result set against a live result set because object types are different&lt;/li&gt;
&lt;li&gt;Specify the properties you want to compare when you use &lt;strong&gt;Compare-Object&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Here is an example of persisting result sets. First, I create a snapshot of my &lt;strong&gt;$home&lt;/strong&gt; drive and export it as XML. Since I am interested in new files and changed files, I only export Name and Length.&lt;/p&gt;
&lt;p&gt;Next, whenever I am in need, I can import the base folder set and compare it against the current folder content. To do that, I export&amp;nbsp; the current folder content as XML, too, and reimport it so that&lt;/p&gt;
&lt;div style="font-family:&amp;#39;Courier New&amp;#39;;font-size:12;background:#012456;"&gt;&lt;span style="color:#eeedf0;background-color:#012456;"&gt;PS&amp;gt;&amp;nbsp;Dir&amp;nbsp;$home&amp;nbsp;|&amp;nbsp;Select-Object&amp;nbsp;Name,&amp;nbsp;Length&amp;nbsp;|&amp;nbsp;Export-Clixml&amp;nbsp;$home\baseline.xml&lt;br /&gt;PS&amp;gt;&amp;nbsp;Add-Content&amp;nbsp;$home\testfile.txt&amp;nbsp;&amp;quot;Hello&amp;nbsp;World&amp;quot;&lt;br /&gt;PS&amp;gt;&amp;nbsp;$shot1&amp;nbsp;=&amp;nbsp;Import-Clixml&amp;nbsp;$home\baseline.xml&lt;br /&gt;PS&amp;gt;&amp;nbsp;Dir&amp;nbsp;$home&amp;nbsp;|&amp;nbsp;Select-Object&amp;nbsp;Name,&amp;nbsp;Length&amp;nbsp;|&amp;nbsp;Export-Clixml&amp;nbsp;$home\temp.xml&lt;br /&gt;PS&amp;gt;&amp;nbsp;$shot2&amp;nbsp;=&amp;nbsp;Import-Clixml&amp;nbsp;$home\temp.xml&lt;br /&gt;PS&amp;gt;&amp;nbsp;Compare-Object&amp;nbsp;$shot1&amp;nbsp;$shot2&amp;nbsp;-property&amp;nbsp;Name,&amp;nbsp;Length&lt;br /&gt;&lt;br /&gt;Name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Length&amp;nbsp;SideIndicator&lt;br /&gt;----&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;------&amp;nbsp;-------------&lt;br /&gt;baseline.xml&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;58150&amp;nbsp;=&amp;gt;&lt;br /&gt;temp.xml&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;45056&amp;nbsp;=&amp;gt;&lt;br /&gt;testfile.txt&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;39&amp;nbsp;=&amp;gt;&lt;br /&gt;baseline.xml&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;8192&amp;nbsp;&amp;lt;=&lt;br /&gt;temp.xml&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;58152&amp;nbsp;&amp;lt;=&lt;br /&gt;testfile.txt&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;26&amp;nbsp;&amp;lt;=&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;Note that in this example, since I stored the xml files in the same folder I monitored, they will also show up in the result set.&lt;/p&gt;
&lt;h2&gt;Summary&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Compare-Object &lt;/strong&gt;is a great way of comparing result sets. You just need to be careful to make sure:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;you are comparing the same object types (do not mix imported xml data with live data)&lt;/li&gt;
&lt;li&gt;the syncWindow is large enough to cover the number of expected differences&lt;/li&gt;
&lt;li&gt;you specify the properties you really want to compare&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Use the &lt;strong&gt;SideIndicator&lt;/strong&gt; property to filter result so you only get the changes in one of the result sets. And use the &lt;strong&gt;-passThru&lt;/strong&gt; parameter to get the real objects.&lt;/p&gt;
&lt;p&gt;Cheerio&lt;/p&gt;
&lt;p&gt;-Tobias&lt;/p&gt;</description></item></channel></rss>