<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>derekf's blog</title>
        <link>http://geekswithblogs.net/derekf/Default.aspx</link>
        <description>On C#, repackaging applications, and deploying via group policy...</description>
        <language>en-US</language>
        <copyright>derekf</copyright>
        <managingEditor>derekf@derekf.com</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <image>
            <title>derekf's blog</title>
            <url>http://geekswithblogs.net/images/RSS2Image.gif</url>
            <link>http://geekswithblogs.net/derekf/Default.aspx</link>
            <width>77</width>
            <height>60</height>
        </image>
        <item>
            <title>RootDSE without WINS</title>
            <link>http://geekswithblogs.net/derekf/archive/2008/08/11/124354.aspx</link>
            <description>&lt;p&gt;We're removing WINS from our environment.  Don't ask me why, I'm not a big fan of the idea... but they don't pay me to make decisions, they pay me to make things work.&lt;/p&gt;
&lt;p&gt;Things work fine without WINS, once you've joined the domain, DNS takes it all over and everything works.&lt;/p&gt;
&lt;p&gt;However, we have a utility that does most of those tasks needed to join a machine to the domain -- creates an INI file used to create the machine account, renames the machine to meet our standards, and does the join (among other things).  The person joining the domain specifies their username, password, and their user domain.&lt;/p&gt;
&lt;p&gt;At pilot sites where WINS is no longer available, the app started failing.  Research found it was the call to LDAP to try to find the RootDSE.  To reproduce, set your primary and secondary WINS addys to be an invalid IP.  Adding company.com as a DNS suffix makes it work, but apparently the networking folks don't want to add a suffix to the DHCP configuration.&lt;/p&gt;
&lt;p&gt;If we go with something along the lines of&lt;/p&gt;
&lt;pre&gt;&lt;font color="#0000ff"&gt;DirectoryEntry&lt;/font&gt; rootEntry = &lt;font color="#0000ff"&gt;new DirectoryEntry&lt;/font&gt;(&lt;a href="ldap://domain/RootDSE"&gt;&lt;font color="#ff0000"&gt;LDAP://domain/RootDSE&lt;/font&gt;&lt;/a&gt;);&lt;/pre&gt;
&lt;p&gt;&lt;font size="2"&gt;it fails with "The server is not operational"&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;However, specifying the FQDN works:&lt;/font&gt;&lt;/p&gt;
&lt;pre&gt;&lt;font color="#0000ff"&gt;DirectoryEntry&lt;/font&gt; rootEntry = &lt;font color="#0000ff"&gt;new DirectoryEntry&lt;/font&gt;(&lt;a href="ldap://domain.company.com/RootDSE"&gt;&lt;font color="#ff0000"&gt;LDAP://domain.company.com/RootDSE&lt;/font&gt;&lt;/a&gt;);&lt;/pre&gt;
&lt;p&gt;So, hopefully this will help someone, although if you're more of a networking guy than me it was probably obvious all along.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=124354"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=124354" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/derekf/aggbug/124354.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>derekf</dc:creator>
            <guid>http://geekswithblogs.net/derekf/archive/2008/08/11/124354.aspx</guid>
            <pubDate>Mon, 11 Aug 2008 13:31:32 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/derekf/comments/124354.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/derekf/archive/2008/08/11/124354.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/derekf/comments/commentRss/124354.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/derekf/services/trackbacks/124354.aspx</trackback:ping>
        </item>
        <item>
            <title>Apps Expire from Local Cache, part 2</title>
            <link>http://geekswithblogs.net/derekf/archive/2008/07/24/123991.aspx</link>
            <description>&lt;p&gt;Even though I'm no longer involved with group policy, I'm still the go-to guy for issues.&lt;/p&gt;
&lt;p&gt;Got a call this morning from a helpdesk guy who was working an issue with Add New Programs not populating.  He'd dug through RSOP and found that two apps had failed to remove. (More specifically, RSOP showed the yellow bang on User Configuration/Software Settings/Software installation, with these two listed as "Removed Applications").  The details for these two apps specified "&lt;strong&gt;The removal of xxx from policy yyy failed.  The error was : The installation source for this product is not available.  Verify that the source exists and that you can access it&lt;/strong&gt;"&lt;/p&gt;
&lt;p&gt;A little digging found that both of these apps had been removed from policy with the "Immediately Uninstall" option months ago, and somewhere along the way the app folder was removed from the local servers.  One of the apps had the folder contents available; simply replacing it on the local server was sufficient to allow the uninstall to complete.&lt;/p&gt;
&lt;p&gt;For the other app, the source no longer exists.  Most users were able to uninstall with the local cached copy, but this user no longer had that MSI.  Helpdesk will be using MSIZAP to get rid of the registry entries for this app so the user can install the newer revision of this app.&lt;/p&gt;
&lt;p&gt;Not sure how long the user has been having trouble.  The lesson to be learned here is to not be in such a hurry to remove the source from the local servers; users may need it for a while after if you've removed it from policy with "Immediately Uninstall", or if you're going to ever push out an app as an upgrade to this one.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=123991"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=123991" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/derekf/aggbug/123991.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>derekf</dc:creator>
            <guid>http://geekswithblogs.net/derekf/archive/2008/07/24/123991.aspx</guid>
            <pubDate>Thu, 24 Jul 2008 12:49:06 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/derekf/comments/123991.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/derekf/archive/2008/07/24/123991.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/derekf/comments/commentRss/123991.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/derekf/services/trackbacks/123991.aspx</trackback:ping>
        </item>
        <item>
            <title>Change of duties</title>
            <link>http://geekswithblogs.net/derekf/archive/2008/05/12/122079.aspx</link>
            <description>&lt;p&gt;The Powers That Be have decreed that the work I've been doing with group policy will be transitioned to another group, so I won't be involved with that anymore.&lt;/p&gt;
&lt;p&gt;Since I won't have any things I've found with GP anymore, I guess future posts will involve my other two roles: application packaging and being the junior coder... along with those things I learn in my endeavor to become a not-so-junior programmer -- I've got lots to learn in C#, plus a whole lot of C++ to learn (both native and managed).  Should be fun.&lt;/p&gt;
&lt;p&gt;Additionally, I'm a full time college student as well.  There may be some interesting things I find there (or if future semesters are anything like the last one, postings may be sporadic while I scramble to keep on top of my classes)&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=122079"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=122079" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/derekf/aggbug/122079.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>derekf</dc:creator>
            <guid>http://geekswithblogs.net/derekf/archive/2008/05/12/122079.aspx</guid>
            <pubDate>Mon, 12 May 2008 15:02:13 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/derekf/comments/122079.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/derekf/archive/2008/05/12/122079.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/derekf/comments/commentRss/122079.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/derekf/services/trackbacks/122079.aspx</trackback:ping>
        </item>
        <item>
            <title>What GPOs applied to this machine?</title>
            <link>http://geekswithblogs.net/derekf/archive/2008/01/04/118239.aspx</link>
            <description>&lt;div&gt;I was asked earlier today to come up with a list of what GPOs applied to a given box.  Simple enough given the code from one of the previous posts to ask AD what GPOs apply to the machine's OU, but I'm not convinced there's more to it than that.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Senior coder had started going through GetGPOList(), FreeGPOList(), and GetAppliedGPOList() but they didn't really play well in C# from an interop standpoint.  I'll likely give them a try at a later time.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Instead, today I went looking through the registry and came across &lt;font face="Arial"&gt;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\GPLink-List -- hey look, Windows keeps track of what GPOs apply, and unlike the "Machine OU" option I mentioned above, it also deals with inheritance.&lt;/font&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;The task seems pretty clear: Go through the subkeys of the GPLink-List key, and translate the DsPath entry from a GUID to a name.  &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;        &lt;span style="COLOR: blue"&gt;private&lt;/span&gt; &lt;span style="COLOR: #2b91af"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="COLOR: blue"&gt;string&lt;/span&gt;&amp;gt; &lt;span style="COLOR: #010001"&gt;GetListOfGPOs&lt;/span&gt;()&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;        {&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;            &lt;span style="COLOR: #2b91af"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="COLOR: blue"&gt;string&lt;/span&gt;&amp;gt; &lt;span style="COLOR: #010001"&gt;GPOList&lt;/span&gt; = &lt;span style="COLOR: blue"&gt;new&lt;/span&gt; &lt;span style="COLOR: #2b91af"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="COLOR: blue"&gt;string&lt;/span&gt;&amp;gt;();&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;            &lt;span style="COLOR: blue"&gt;string&lt;/span&gt; &lt;span style="COLOR: #010001"&gt;Keyname&lt;/span&gt; = &lt;span style="COLOR: #a31515"&gt;@"SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\GPLink-List"&lt;/span&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;            &lt;span style="COLOR: #2b91af"&gt;RegistryKey&lt;/span&gt; &lt;span style="COLOR: #010001"&gt;rk&lt;/span&gt; = &lt;span style="COLOR: #2b91af"&gt;Registry&lt;/span&gt;.&lt;span style="COLOR: #010001"&gt;LocalMachine&lt;/span&gt;.&lt;span style="COLOR: #010001"&gt;OpenSubKey&lt;/span&gt;(&lt;span style="COLOR: #010001"&gt;Keyname&lt;/span&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;            &lt;span style="COLOR: blue"&gt;string&lt;/span&gt;[] &lt;span style="COLOR: #010001"&gt;keys&lt;/span&gt; = &lt;span style="COLOR: #010001"&gt;rk&lt;/span&gt;.&lt;span style="COLOR: #010001"&gt;GetSubKeyNames&lt;/span&gt;();&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;            &lt;span style="COLOR: blue"&gt;foreach&lt;/span&gt;(&lt;span style="COLOR: blue"&gt;string&lt;/span&gt; &lt;span style="COLOR: #010001"&gt;GPOKey&lt;/span&gt; &lt;span style="COLOR: blue"&gt;in&lt;/span&gt; &lt;span style="COLOR: #010001"&gt;keys&lt;/span&gt;)&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;            {&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;                &lt;span style="COLOR: #2b91af"&gt;RegistryKey&lt;/span&gt; &lt;span style="COLOR: #010001"&gt;theKey&lt;/span&gt; = &lt;span style="COLOR: #2b91af"&gt;Registry&lt;/span&gt;.&lt;span style="COLOR: #010001"&gt;LocalMachine&lt;/span&gt;.&lt;span style="COLOR: #010001"&gt;OpenSubKey&lt;/span&gt;(&lt;span style="COLOR: #010001"&gt;Keyname&lt;/span&gt; + &lt;span style="COLOR: #a31515"&gt;"\\"&lt;/span&gt; + &lt;span style="COLOR: #010001"&gt;GPOKey&lt;/span&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;                &lt;span style="COLOR: blue"&gt;string&lt;/span&gt; &lt;span style="COLOR: #010001"&gt;Value&lt;/span&gt; = &lt;span style="COLOR: #010001"&gt;theKey&lt;/span&gt;.&lt;span style="COLOR: #010001"&gt;GetValue&lt;/span&gt;(&lt;span style="COLOR: #a31515"&gt;"DSPath"&lt;/span&gt;, &lt;span style="COLOR: #a31515"&gt;""&lt;/span&gt;).&lt;span style="COLOR: #010001"&gt;ToString&lt;/span&gt;();&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;                &lt;span style="COLOR: blue"&gt;if&lt;/span&gt; (&lt;span style="COLOR: #010001"&gt;Value&lt;/span&gt;.&lt;span style="COLOR: #010001"&gt;Contains&lt;/span&gt;(&lt;span style="COLOR: #a31515"&gt;"cn="&lt;/span&gt;))&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;                    &lt;span style="COLOR: #010001"&gt;GPOList&lt;/span&gt;.&lt;span style="COLOR: #010001"&gt;Add&lt;/span&gt;(&lt;span style="COLOR: #010001"&gt;TranslateFromGUIDToName&lt;/span&gt;(&lt;span style="COLOR: #010001"&gt;Value&lt;/span&gt;));&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;                &lt;span style="COLOR: blue"&gt;else&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;                    &lt;span style="COLOR: #010001"&gt;GPOList&lt;/span&gt;.&lt;span style="COLOR: #010001"&gt;Add&lt;/span&gt;(&lt;span style="COLOR: #010001"&gt;Value&lt;/span&gt;); &lt;span style="COLOR: green"&gt;// Special case: "LocalGPO"&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;            }&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;            &lt;span style="COLOR: blue"&gt;return&lt;/span&gt; &lt;span style="COLOR: #010001"&gt;GPOList&lt;/span&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;        }&lt;/span&gt;&lt;/div&gt;
&lt;p&gt; &lt;/p&gt;
&lt;div&gt; and of course, we need a function to translate the GUID (actually the entire path) to the policy name.  You might want additional info as well, all we were looking for was the name.  Adjust the Properties you're looking for to suit:&lt;/div&gt;
&lt;p&gt;   &lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;        &lt;span style="COLOR: blue"&gt;private&lt;/span&gt; &lt;span style="COLOR: blue"&gt;string&lt;/span&gt; &lt;span style="COLOR: #010001"&gt;TranslateFromGUIDToName&lt;/span&gt;(&lt;span style="COLOR: blue"&gt;string&lt;/span&gt; &lt;span style="COLOR: #010001"&gt;path&lt;/span&gt;)&lt;/span&gt;&lt;/p&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;        {&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;            &lt;span style="COLOR: blue"&gt;using&lt;/span&gt; (&lt;span style="COLOR: #2b91af"&gt;DirectorySearcher&lt;/span&gt; &lt;span style="COLOR: #010001"&gt;mySearcher&lt;/span&gt; = &lt;span style="COLOR: blue"&gt;new&lt;/span&gt; &lt;span style="COLOR: #2b91af"&gt;DirectorySearcher&lt;/span&gt;(&lt;span style="COLOR: blue"&gt;new&lt;/span&gt; &lt;span style="COLOR: #2b91af"&gt;DirectoryEntry&lt;/span&gt;(&lt;span style="COLOR: #a31515"&gt;"LDAP://"&lt;/span&gt; + &lt;span style="COLOR: #010001"&gt;path&lt;/span&gt;, &lt;span style="COLOR: blue"&gt;null&lt;/span&gt;, &lt;span style="COLOR: blue"&gt;null&lt;/span&gt;, &lt;span style="COLOR: #2b91af"&gt;AuthenticationTypes&lt;/span&gt;.&lt;span style="COLOR: #010001"&gt;Secure&lt;/span&gt;)))&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;            {&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;                &lt;span style="COLOR: #010001"&gt;mySearcher&lt;/span&gt;.&lt;span style="COLOR: #010001"&gt;ClientTimeout&lt;/span&gt; = &lt;span style="COLOR: blue"&gt;new&lt;/span&gt; &lt;span style="COLOR: #2b91af"&gt;TimeSpan&lt;/span&gt;(0, 0, 10);&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;                &lt;span style="COLOR: #010001"&gt;mySearcher&lt;/span&gt;.&lt;span style="COLOR: #010001"&gt;SearchScope&lt;/span&gt; = &lt;span style="COLOR: #2b91af"&gt;SearchScope&lt;/span&gt;.&lt;span style="COLOR: #010001"&gt;Subtree&lt;/span&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;                &lt;span style="COLOR: blue"&gt;try&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;                {&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;                    &lt;span style="COLOR: #2b91af"&gt;SearchResult&lt;/span&gt; &lt;span style="COLOR: #010001"&gt;result&lt;/span&gt; = &lt;span style="COLOR: #010001"&gt;mySearcher&lt;/span&gt;.&lt;span style="COLOR: #010001"&gt;FindOne&lt;/span&gt;();&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;                    &lt;span style="COLOR: blue"&gt;if&lt;/span&gt; (&lt;span style="COLOR: #010001"&gt;result&lt;/span&gt; != &lt;span style="COLOR: blue"&gt;null&lt;/span&gt;)&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;                    {&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;                        &lt;span style="COLOR: blue"&gt;if&lt;/span&gt; (&lt;span style="COLOR: #010001"&gt;result&lt;/span&gt;.&lt;span style="COLOR: #010001"&gt;Properties&lt;/span&gt;[&lt;span style="COLOR: #a31515"&gt;"displayName"&lt;/span&gt;][0] != &lt;span style="COLOR: blue"&gt;null&lt;/span&gt;)&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;                        {&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;                            &lt;span style="COLOR: #010001"&gt;mySearcher&lt;/span&gt;.&lt;span style="COLOR: #010001"&gt;Dispose&lt;/span&gt;();&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;                            &lt;span style="COLOR: blue"&gt;return&lt;/span&gt; &lt;span style="COLOR: #010001"&gt;result&lt;/span&gt;.&lt;span style="COLOR: #010001"&gt;Properties&lt;/span&gt;[&lt;span style="COLOR: #a31515"&gt;"displayName"&lt;/span&gt;][0].&lt;span style="COLOR: #010001"&gt;ToString&lt;/span&gt;();&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;                        }&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;                    }&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;                }&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;                &lt;span style="COLOR: blue"&gt;catch&lt;/span&gt; (&lt;span style="COLOR: #2b91af"&gt;Exception&lt;/span&gt; &lt;span style="COLOR: #010001"&gt;ex&lt;/span&gt;)&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;                {&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;                    &lt;span style="COLOR: blue"&gt;return&lt;/span&gt; &lt;span style="COLOR: #010001"&gt;ex&lt;/span&gt;.&lt;span style="COLOR: #010001"&gt;Message&lt;/span&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;                }&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;            }&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;            &lt;span style="COLOR: blue"&gt;return&lt;/span&gt; &lt;span style="COLOR: #a31515"&gt;"Not found."&lt;/span&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;        }&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font face="Arial"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font face="Arial"&gt;So there you have it.  Not all that useful -- just giving the names of the policies that applied, but it's a start.&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=118239"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=118239" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/derekf/aggbug/118239.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>derekf</dc:creator>
            <guid>http://geekswithblogs.net/derekf/archive/2008/01/04/118239.aspx</guid>
            <pubDate>Fri, 04 Jan 2008 14:33:26 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/derekf/comments/118239.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/derekf/archive/2008/01/04/118239.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/derekf/comments/commentRss/118239.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/derekf/services/trackbacks/118239.aspx</trackback:ping>
        </item>
        <item>
            <title>Error when publishing apps in GPO:</title>
            <link>http://geekswithblogs.net/derekf/archive/2007/12/28/118035.aspx</link>
            <description>&lt;p&gt;We got an error yesterday that I'd not seen before, when publishing two separate packages.  Both of them were created by Visual Studio 2008 instead of our typical Wise/InstallShield packages.&lt;/p&gt;
&lt;p&gt;The error was "No package in the software installation data in the Active Directory meets this criteria.".  &lt;/p&gt;
&lt;p&gt;A web search found nothing useful on this error; I'd started digging into it to maybe be the first to provide something on it -- but during troubleshooting both packages were published without error.  MSI logging wasn't on, so I've got insufficient details to give any theory.  So.. if you get this error, I guess try again later.  &lt;/p&gt;
&lt;p&gt;Anybody got a better answer?  I'm still curious about the cause of the error.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=118035"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=118035" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/derekf/aggbug/118035.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>derekf</dc:creator>
            <guid>http://geekswithblogs.net/derekf/archive/2007/12/28/118035.aspx</guid>
            <pubDate>Fri, 28 Dec 2007 16:47:30 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/derekf/comments/118035.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/derekf/archive/2007/12/28/118035.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/derekf/comments/commentRss/118035.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/derekf/services/trackbacks/118035.aspx</trackback:ping>
        </item>
        <item>
            <title>Apps Expire from local MSI cache</title>
            <link>http://geekswithblogs.net/derekf/archive/2007/12/10/117553.aspx</link>
            <description>&lt;p&gt;I've had this post rattling around in my head for a few months now, but I've never had enough hard data to really flesh it out as well as I'd liked.&lt;/p&gt;
&lt;p&gt;I still don't, but I need to get this down on paper.&lt;/p&gt;
&lt;p&gt;Apps deployed via Group Policy expire from the local cache.  This can be a problem if the app is removed from the servers, or if you make changes to an existing app that would make its MSI not match the installation (Product/Package code changes, etc).&lt;/p&gt;
&lt;p&gt;I don't have the details as to why - whether it's the oldest that gets purged, or least commonly used, or largest; whenever the problem has been seen here, it gets fixed first and the why gets worried about later.  I'd hoped that the next batch would last long enough for me to dig out the details but no such luck.&lt;/p&gt;
&lt;p&gt;Want to reproduce the problem?  Simple:  &lt;/p&gt;
&lt;p&gt;1.  Publish an app via Group Policy.  Let thousands of people install it.&lt;/p&gt;
&lt;p&gt;2.  Let it sit for a while (like I said: I don't have the details as to what causes it to expire)&lt;/p&gt;
&lt;p&gt;3.  Change the product code in the MSI on the server.&lt;/p&gt;
&lt;p&gt;4.  Try to uninstall the package on the client.  MSI not found, tries to recache from the network, not found there either.&lt;/p&gt;
&lt;p&gt;Ran this past a coworker who is an MSI guru; he ran it past his folks and nobody had heard of MSIs not staying in the local cache.  It is entirely possible that it's something specific to our implementation (a policy setting?).  It seems to manifest itself as the same old "Installation Source cannot be found" message when users attempt to repair, uninstall, or upgrade an app.&lt;/p&gt;
&lt;p&gt;Have you seen this?  Do you know anything more about it?&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=117553"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=117553" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/derekf/aggbug/117553.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>derekf</dc:creator>
            <guid>http://geekswithblogs.net/derekf/archive/2007/12/10/117553.aspx</guid>
            <pubDate>Mon, 10 Dec 2007 19:22:37 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/derekf/comments/117553.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/derekf/archive/2007/12/10/117553.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/derekf/comments/commentRss/117553.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/derekf/services/trackbacks/117553.aspx</trackback:ping>
        </item>
        <item>
            <title>Cleanup </title>
            <link>http://geekswithblogs.net/derekf/archive/2007/10/01/115742.aspx</link>
            <description>&lt;p&gt;Back to the basic apps I started with.&lt;/p&gt;
&lt;p&gt;There were a couple of locations where the output was "System.Byte[]" or "System.Object[]".  &lt;/p&gt;
&lt;p&gt;System.Object[] appears to happen in "msifilelist", and only on those apps that have a transform.&lt;/p&gt;
&lt;p&gt;Given that you're loading everything into a DataRow, code like this will separate out the transform if one exists:&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;foreach&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt; (&lt;span style="COLOR: blue"&gt;object&lt;/span&gt; &lt;span style="COLOR: #020002"&gt;a&lt;/span&gt; &lt;span style="COLOR: blue"&gt;in&lt;/span&gt; &lt;span style="COLOR: #020002"&gt;myDirectoryEntry&lt;/span&gt;.&lt;span style="COLOR: #020002"&gt;Properties&lt;/span&gt;[&lt;span style="COLOR: #a31515"&gt;"msifilelist"&lt;/span&gt;])&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: 0.5in; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;if&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt; (&lt;span style="COLOR: #020002"&gt;a&lt;/span&gt;.&lt;span style="COLOR: #020002"&gt;ToString&lt;/span&gt;().&lt;span style="COLOR: #020002"&gt;ToLower&lt;/span&gt;().&lt;span style="COLOR: #020002"&gt;EndsWith&lt;/span&gt;(&lt;span style="COLOR: #a31515"&gt;".mst"&lt;/span&gt;))&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt 1in; TEXT-INDENT: 0.5in; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #020002; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;dr&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;[&lt;span style="COLOR: #a31515"&gt;"Transforms"&lt;/span&gt;] = &lt;span style="COLOR: #020002"&gt;a&lt;/span&gt;.&lt;span style="COLOR: #020002"&gt;ToString&lt;/span&gt;();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: 0.5in; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;else&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt 1in; TEXT-INDENT: 0.5in; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #020002; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;dr&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;[&lt;span style="COLOR: #a31515"&gt;"msifilelist"&lt;/span&gt;] += &lt;span style="COLOR: #020002"&gt;a&lt;/span&gt;.&lt;span style="COLOR: #020002"&gt;ToString&lt;/span&gt;();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;The System.Byte[] is a bit more complex.&lt;/p&gt;
&lt;p&gt;In a similar way, &lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;foreach&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt; (&lt;span style="COLOR: blue"&gt;object&lt;/span&gt; &lt;span style="COLOR: #020002"&gt;a&lt;/span&gt; &lt;span style="COLOR: blue"&gt;in&lt;/span&gt; &lt;span style="COLOR: #020002"&gt;myDirectoryEntry&lt;/span&gt;.&lt;span style="COLOR: #020002"&gt;Properties&lt;/span&gt;[&lt;span style="COLOR: #a31515"&gt;"productcode"&lt;/span&gt;])&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;font face="Arial"&gt;&lt;/font&gt;&lt;/span&gt; &lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;font face="Arial"&gt;works to get the bytes out of the ProductCode property, but the object contains an array.  You can't access the contents of an array from within an object -- a[1] isn't valid, and none of the casts I tried worked.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;font face="Arial"&gt;&lt;/font&gt;&lt;/span&gt; &lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;font face="Arial"&gt;Found &lt;a href="http://www.codeproject.com/Purgatory/ObjectByteArrayConverter.asp"&gt;some code online&lt;/a&gt; to convert an object to an array of bytes.  It works, to an extent, but there's quite a bit of extra stuff tacked on to both the beginning and the end of the array.  I don't know why - it's got to come from something in that function, but I can't tell where.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;font face="Arial"&gt;&lt;/font&gt;&lt;/span&gt; &lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;font face="Arial"&gt;Simple enough to loop through and clean it up:&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;span&gt;
&lt;div style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #2b91af"&gt;StringBuilder&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt; &lt;span style="COLOR: #020002"&gt;sb&lt;/span&gt; = &lt;span style="COLOR: #020002"&gt;StringBuilder&lt;/span&gt;();&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;byte&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt;[] &lt;span style="COLOR: #020002"&gt;code&lt;/span&gt; = &lt;span style="COLOR: #020002"&gt;ObjectToByteArray&lt;/span&gt;(&lt;span style="COLOR: #020002"&gt;a&lt;/span&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;int&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt; &lt;span style="COLOR: #020002"&gt;i&lt;/span&gt; = 0;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;foreach&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt; (&lt;span style="COLOR: blue"&gt;byte&lt;/span&gt; &lt;span style="COLOR: #020002"&gt;b&lt;/span&gt; &lt;span style="COLOR: blue"&gt;in&lt;/span&gt; &lt;span style="COLOR: #020002"&gt;code&lt;/span&gt;)&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: 0.5in"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;{&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: 0.5in"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;if&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt; (&lt;span style="COLOR: #020002"&gt;i&lt;/span&gt;++ &amp;gt;= 27)&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt 1in; TEXT-INDENT: 0.5in"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;{&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt 1in; TEXT-INDENT: 0.5in"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #020002"&gt;sb&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt;.&lt;span style="COLOR: #020002"&gt;Append&lt;/span&gt;(&lt;span style="COLOR: #020002"&gt;b&lt;/span&gt;.&lt;span style="COLOR: #020002"&gt;ToString&lt;/span&gt;(&lt;span style="COLOR: #a31515"&gt;"X2"&lt;/span&gt;));&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt 1in; TEXT-INDENT: 0.5in"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: 0.5in"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: 0.5in"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;string&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt; &lt;span style="COLOR: #020002"&gt;outString&lt;/span&gt; = &lt;span style="COLOR: #020002"&gt;ToString&lt;/span&gt;();&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: 0.5in"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: 0.5in"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;font face="Arial"&gt;However, the GUID as returned from AD doesn't match what it should.  Not only is this just an array of bytes, but the dashes are missing and the bytes in the first three sections are in a jumbled order.&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: 0.5in"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;font face="Arial"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: 0.5in"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;font face="Arial"&gt;One would have thought that &lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: 0.5in"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #2b91af"&gt;Guid&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt; &lt;span style="COLOR: #020002"&gt;g&lt;/span&gt; = &lt;span style="COLOR: blue"&gt;new&lt;/span&gt; &lt;span style="COLOR: #2b91af"&gt;Guid&lt;/span&gt;(&lt;span style="COLOR: #020002"&gt;outstring&lt;/span&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #020002"&gt;outString&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt; = &lt;span style="COLOR: #020002"&gt;g&lt;/span&gt;.&lt;span style="COLOR: #020002"&gt;ToString&lt;/span&gt;(&lt;span style="COLOR: #a31515"&gt;"B"&lt;/span&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Arial"&gt;would have taken care of that -- and it does add in the dashes, but the byte order is still off.. and by off, I mean like this:&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Arial"&gt;If the proper GUID is {12345678-ABCD-1234-ABCD-123456789AB}, the returned GUID is {78563412-CDAB-3412-ABCD-123456789AB}.  I know this is a side effect of how Windows handles GUIDs internally, and there's probably an easy way to fix it, but I couldn't find it.  So, I did my own:&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Arial"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;            &lt;span style="COLOR: #2b91af"&gt;StringBuilder&lt;/span&gt; &lt;span style="COLOR: #020002"&gt;newString&lt;/span&gt; = &lt;span style="COLOR: blue"&gt;new&lt;/span&gt; &lt;span style="COLOR: #2b91af"&gt;StringBuilder&lt;/span&gt;();&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;            &lt;span style="COLOR: #020002"&gt;newString&lt;/span&gt;.&lt;span style="COLOR: #020002"&gt;Append&lt;/span&gt;(&lt;span style="COLOR: #a31515"&gt;"{"&lt;/span&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;            &lt;span style="COLOR: #020002"&gt;newString&lt;/span&gt;.&lt;span style="COLOR: #020002"&gt;Append&lt;/span&gt;(&lt;span style="COLOR: #020002"&gt;outString&lt;/span&gt;.&lt;span style="COLOR: #020002"&gt;Substring&lt;/span&gt;(6, 2));&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;            &lt;span style="COLOR: #020002"&gt;newString&lt;/span&gt;.&lt;span style="COLOR: #020002"&gt;Append&lt;/span&gt;(&lt;span style="COLOR: #020002"&gt;outString&lt;/span&gt;.&lt;span style="COLOR: #020002"&gt;Substring&lt;/span&gt;(4, 2));&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;            &lt;span style="COLOR: #020002"&gt;newString&lt;/span&gt;.&lt;span style="COLOR: #020002"&gt;Append&lt;/span&gt;(&lt;span style="COLOR: #020002"&gt;outString&lt;/span&gt;.&lt;span style="COLOR: #020002"&gt;Substring&lt;/span&gt;(2, 2));&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;            &lt;span style="COLOR: #020002"&gt;newString&lt;/span&gt;.&lt;span style="COLOR: #020002"&gt;Append&lt;/span&gt;(&lt;span style="COLOR: #020002"&gt;outString&lt;/span&gt;.&lt;span style="COLOR: #020002"&gt;Substring&lt;/span&gt;(0, 2));&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;            &lt;span style="COLOR: #020002"&gt;newString&lt;/span&gt;.&lt;span style="COLOR: #020002"&gt;Append&lt;/span&gt;(&lt;span style="COLOR: #a31515"&gt;"-"&lt;/span&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;            &lt;span style="COLOR: #020002"&gt;newString&lt;/span&gt;.&lt;span style="COLOR: #020002"&gt;Append&lt;/span&gt;(&lt;span style="COLOR: #020002"&gt;outString&lt;/span&gt;.&lt;span style="COLOR: #020002"&gt;Substring&lt;/span&gt;(10, 2));&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;            &lt;span style="COLOR: #020002"&gt;newString&lt;/span&gt;.&lt;span style="COLOR: #020002"&gt;Append&lt;/span&gt;(&lt;span style="COLOR: #020002"&gt;outString&lt;/span&gt;.&lt;span style="COLOR: #020002"&gt;Substring&lt;/span&gt;(8, 2));&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;            &lt;span style="COLOR: #020002"&gt;newString&lt;/span&gt;.&lt;span style="COLOR: #020002"&gt;Append&lt;/span&gt;(&lt;span style="COLOR: #a31515"&gt;"-"&lt;/span&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;            &lt;span style="COLOR: #020002"&gt;newString&lt;/span&gt;.&lt;span style="COLOR: #020002"&gt;Append&lt;/span&gt;(&lt;span style="COLOR: #020002"&gt;outString&lt;/span&gt;.&lt;span style="COLOR: #020002"&gt;Substring&lt;/span&gt;(14, 2));&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;            &lt;span style="COLOR: #020002"&gt;newString&lt;/span&gt;.&lt;span style="COLOR: #020002"&gt;Append&lt;/span&gt;(&lt;span style="COLOR: #020002"&gt;outString&lt;/span&gt;.&lt;span style="COLOR: #020002"&gt;Substring&lt;/span&gt;(12, 2));&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;            &lt;span style="COLOR: #020002"&gt;newString&lt;/span&gt;.&lt;span style="COLOR: #020002"&gt;Append&lt;/span&gt;(&lt;span style="COLOR: #a31515"&gt;"-"&lt;/span&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;            &lt;span style="COLOR: #020002"&gt;newString&lt;/span&gt;.&lt;span style="COLOR: #020002"&gt;Append&lt;/span&gt;(&lt;span style="COLOR: #020002"&gt;outString&lt;/span&gt;.&lt;span style="COLOR: #020002"&gt;Substring&lt;/span&gt;(16, 4));&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;            &lt;span style="COLOR: #020002"&gt;newString&lt;/span&gt;.&lt;span style="COLOR: #020002"&gt;Append&lt;/span&gt;(&lt;span style="COLOR: #a31515"&gt;"-"&lt;/span&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;            &lt;span style="COLOR: #020002"&gt;newString&lt;/span&gt;.&lt;span style="COLOR: #020002"&gt;Append&lt;/span&gt;(&lt;span style="COLOR: #020002"&gt;outString&lt;/span&gt;.&lt;span style="COLOR: #020002"&gt;Substring&lt;/span&gt;(20, 12));&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;            &lt;span style="COLOR: #020002"&gt;newString&lt;/span&gt;.&lt;span style="COLOR: #020002"&gt;Append&lt;/span&gt;(&lt;span style="COLOR: #a31515"&gt;"}"&lt;/span&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;            &lt;span style="COLOR: blue"&gt;return&lt;/span&gt; &lt;span style="COLOR: #020002"&gt;newString&lt;/span&gt;.&lt;span style="COLOR: #020002"&gt;ToString&lt;/span&gt;().&lt;span style="COLOR: #020002"&gt;ToUpper&lt;/span&gt;();&lt;/span&gt;&lt;/div&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font size="2"&gt;
&lt;p&gt;&lt;font face="Arial"&gt;So, there you have it.  Nothing groundbreaking, but if you're just trying to get the product or upgrade codes from AD, here's the missing piece from the code I already put up.  I would have expected the Package Code to be in AD as well, but it's not.&lt;/font&gt;&lt;/p&gt;
&lt;/font&gt;&lt;font color="#008000" size="2"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=115742"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=115742" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/derekf/aggbug/115742.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>derekf</dc:creator>
            <guid>http://geekswithblogs.net/derekf/archive/2007/10/01/115742.aspx</guid>
            <pubDate>Mon, 01 Oct 2007 13:33:37 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/derekf/comments/115742.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/derekf/archive/2007/10/01/115742.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/derekf/comments/commentRss/115742.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/derekf/services/trackbacks/115742.aspx</trackback:ping>
        </item>
        <item>
            <title>Time granularity in Robocopy</title>
            <link>http://geekswithblogs.net/derekf/archive/2007/09/03/115130.aspx</link>
            <description>&lt;div&gt;We came across an issue where Robocopy was thinking that many files on a given server had been modified from the version that was on a different server.&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;Not a big deal, except "changed files" = "files that need to be copied out", and there were a lot of files that would have been copied over slow links to distant servers.&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;The wierd thing - some folks were seeing the problem with Robocopy, and some were not.  Finally narrowed it down.. the people who weren't seeing the problem were on an older version of Robocopy (&lt;font color="#3366ff"&gt;confirmed 9-4-07: v 1.95&lt;/font&gt;) and the folks who were were on XP010.  However, that doesn't explain the root cause.&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;If you looked at the two files in Explorer, the Modified dates were identical.  The files themselves were identical.  However, Robocopy said one was Newer.&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;Wrote a stupid little app that gave the Modified time down to the millisecond.. still identical.&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;However, when I got down to the Ticks level (100 nanosecond), the files had different timestamps.. a mirroring utility that was in use on some servers only replicated the time down to the millisecond.  The old Robocopy only looked as far as Milliseconds, where the new one (and our primary directory replication tool) looked all the way at the Ticks level.&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;The fix?  Wrote another stupid little app that compared two files - if the date, hour, minute, second, and millisecond were the same, but one of them had zeroes in the last four characters of the Ticks value (ticks % 10000), set the time of the zero to be the time of the not-zero.  Beats copying all those files out.&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;Code?  Here you go:&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;pre&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="COLOR: blue"&gt;long&lt;/span&gt; &lt;span style="COLOR: #010001"&gt;filetick&lt;/span&gt; = &lt;span style="COLOR: #2b91af"&gt;File&lt;/span&gt;.&lt;span style="COLOR: #010001"&gt;GetLastWriteTime&lt;/span&gt;(&lt;span style="COLOR: #010001"&gt;file&lt;/span&gt;).&lt;span style="COLOR: #010001"&gt;Ticks&lt;/span&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;o:p&gt;
&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="COLOR: blue"&gt;long&lt;/span&gt; &lt;span style="COLOR: #010001"&gt;badfiletick&lt;/span&gt; = &lt;span style="COLOR: #2b91af"&gt;File&lt;/span&gt;.&lt;span style="COLOR: #010001"&gt;GetLastWriteTime&lt;/span&gt;(&lt;span style="COLOR: #010001"&gt;badfile&lt;/span&gt;).&lt;span style="COLOR: #010001"&gt;Ticks&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;pre&gt;&lt;pre class="MsoNormal" style="MARGIN-BOTTOM: 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="MsoNormal" style="MARGIN-BOTTOM: 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;pre class="MsoNormal" style="MARGIN-BOTTOM: 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="COLOR: #2b91af"&gt;DateTime&lt;/span&gt; &lt;span style="COLOR: #010001"&gt;fileDT&lt;/span&gt; = &lt;span style="COLOR: #2b91af"&gt;File&lt;/span&gt;.&lt;span style="COLOR: #010001"&gt;GetLastWriteTime&lt;/span&gt;(&lt;span style="COLOR: #010001"&gt;file&lt;/span&gt;);&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="MsoNormal" style="MARGIN-BOTTOM: 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="COLOR: #2b91af"&gt;DateTime&lt;/span&gt; &lt;span style="COLOR: #010001"&gt;badDT&lt;/span&gt; = &lt;span style="COLOR: #2b91af"&gt;File&lt;/span&gt;.&lt;span style="COLOR: #010001"&gt;GetLastWriteTime&lt;/span&gt;(&lt;span style="COLOR: #010001"&gt;badfile&lt;/span&gt;);&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="MsoNormal" style="MARGIN-BOTTOM: 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="MsoNormal" style="MARGIN-BOTTOM: 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="MsoNormal" style="MARGIN-BOTTOM: 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="COLOR: blue"&gt;bool&lt;/span&gt; &lt;span style="COLOR: #010001"&gt;filetrunc&lt;/span&gt; = &lt;span style="COLOR: blue"&gt;false&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="MsoNormal" style="MARGIN-BOTTOM: 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="COLOR: blue"&gt;bool&lt;/span&gt; &lt;span style="COLOR: #010001"&gt;badtrunc&lt;/span&gt; = &lt;span style="COLOR: blue"&gt;false&lt;/span&gt;;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="MsoNormal" style="MARGIN-BOTTOM: 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="MsoNormal" style="MARGIN-BOTTOM: 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="MsoNormal" style="MARGIN-BOTTOM: 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="COLOR: #010001"&gt;filetrunc&lt;/span&gt; = &lt;span style="COLOR: #010001"&gt;IsTruncated&lt;/span&gt;(&lt;span style="COLOR: #010001"&gt;filetick&lt;/span&gt;);&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="MsoNormal" style="MARGIN-BOTTOM: 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="COLOR: #010001"&gt;badtrunc&lt;/span&gt; = &lt;span style="COLOR: #010001"&gt;IsTruncated&lt;/span&gt;(&lt;span style="COLOR: #010001"&gt;badfiletick&lt;/span&gt;);&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="MsoNormal" style="MARGIN-BOTTOM: 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="MsoNormal" style="MARGIN-BOTTOM: 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;pre class="MsoNormal" style="MARGIN-BOTTOM: 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;   &lt;/span&gt;&lt;span style="COLOR: blue"&gt;if&lt;/span&gt; ((&lt;span style="COLOR: #010001"&gt;fileDT&lt;/span&gt;.&lt;span style="COLOR: #010001"&gt;Date&lt;/span&gt; == &lt;span style="COLOR: #010001"&gt;badDT&lt;/span&gt;.&lt;span style="COLOR: #010001"&gt;Date&lt;/span&gt;) &amp;amp;&amp;amp; (&lt;span style="COLOR: #010001"&gt;fileDT&lt;/span&gt;.&lt;span style="COLOR: #010001"&gt;Hour&lt;/span&gt; == &lt;span style="COLOR: #010001"&gt;badDT&lt;/span&gt;.&lt;span style="COLOR: #010001"&gt;Hour&lt;/span&gt;) &amp;amp;&amp;amp; (&lt;span style="COLOR: #010001"&gt;fileDT&lt;/span&gt;.&lt;span style="COLOR: #010001"&gt;Minute&lt;/span&gt; == &lt;span style="COLOR: #010001"&gt;badDT&lt;/span&gt;.&lt;span style="COLOR: #010001"&gt;Minute&lt;/span&gt;) &amp;amp;&amp;amp; (&lt;span style="COLOR: #010001"&gt;fileDT&lt;/span&gt;.&lt;span style="COLOR: #010001"&gt;Second&lt;/span&gt; == &lt;span style="COLOR: #010001"&gt;badDT&lt;/span&gt;.&lt;span style="COLOR: #010001"&gt;Second&lt;/span&gt;) &amp;amp;&amp;amp; (&lt;span style="COLOR: #010001"&gt;fileDT&lt;/span&gt;.&lt;span style="COLOR: #010001"&gt;Millisecond&lt;/span&gt; == &lt;span style="COLOR: #010001"&gt;badDT&lt;/span&gt;.&lt;span style="COLOR: #010001"&gt;Millisecond&lt;/span&gt;))&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;      &lt;/span&gt;&lt;span style="COLOR: blue"&gt;if&lt;/span&gt; (&lt;span style="COLOR: #010001"&gt;filetrunc&lt;/span&gt; || &lt;span style="COLOR: #010001"&gt;badtrunc&lt;/span&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;
&lt;pre&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;           &lt;/span&gt;&lt;span style="COLOR: blue"&gt;if&lt;/span&gt; (!(&lt;span style="COLOR: #010001"&gt;filetrunc&lt;/span&gt; &amp;amp;&amp;amp; &lt;span style="COLOR: #010001"&gt;badtrunc&lt;/span&gt;))&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;                &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;                      &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;                          &lt;/span&gt;&lt;span style="COLOR: blue"&gt;if&lt;/span&gt; (&lt;span style="COLOR: #010001"&gt;filetrunc&lt;/span&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;                              &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #2b91af; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;                               File&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;.&lt;span style="COLOR: #010001"&gt;SetLastWriteTime&lt;/span&gt;(&lt;span style="COLOR: #010001"&gt;file&lt;/span&gt;, &lt;span style="COLOR: #2b91af"&gt;File&lt;/span&gt;.&lt;span style="COLOR: #010001"&gt;GetLastWriteTime&lt;/span&gt;(&lt;span style="COLOR: #010001"&gt;badfile&lt;/span&gt;));&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;                               &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;                          &lt;/span&gt;&lt;span style="COLOR: blue"&gt;else&lt;/span&gt; &lt;span style="COLOR: blue"&gt;if&lt;/span&gt; (&lt;span style="COLOR: #010001"&gt;badtrunc&lt;/span&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;                               &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #2b91af; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;                               File&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;.&lt;span style="COLOR: #010001"&gt;SetLastWriteTime&lt;/span&gt;(&lt;span style="COLOR: #010001"&gt;badfile&lt;/span&gt;, &lt;span style="COLOR: #2b91af"&gt;File&lt;/span&gt;.&lt;span style="COLOR: #010001"&gt;GetLastWriteTime&lt;/span&gt;(&lt;span style="COLOR: #010001"&gt;file&lt;/span&gt;));&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;                               &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;                       &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;span style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;                 &lt;/span&gt;}&lt;/span&gt;&lt;/pre&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/pre&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;span style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"&gt;and&lt;/span&gt;&lt;/div&gt;
&lt;pre&gt;&lt;span style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"&gt;&lt;font face="Arial"&gt;&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;span style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;pre class="MsoNormal" style="MARGIN-BOTTOM: 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;&lt;span style="COLOR: blue"&gt;public&lt;/span&gt; &lt;span style="COLOR: blue"&gt;bool&lt;/span&gt; &lt;span style="COLOR: #010001"&gt;IsTruncated&lt;/span&gt;(&lt;span style="COLOR: blue"&gt;long&lt;/span&gt; &lt;span style="COLOR: #010001"&gt;ticks&lt;/span&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;   &lt;/span&gt;&lt;span style="mso-spacerun: yes"&gt;     &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;&lt;span style="COLOR: blue"&gt;return&lt;/span&gt; ((&lt;span style="COLOR: #010001"&gt;ticks&lt;/span&gt; % 10000) == 0);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;span style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;}&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"&gt;&lt;font face="Arial"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"&gt;&lt;font face="Arial"&gt;As always, if there's a better way to do this, please let me know - I'm still a junior coder.&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/pre&gt;
&lt;pre class="MsoNormal" style="MARGIN-BOTTOM: 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="MsoNormal" style="MARGIN-BOTTOM: 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=115130"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=115130" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/derekf/aggbug/115130.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>derekf</dc:creator>
            <guid>http://geekswithblogs.net/derekf/archive/2007/09/03/115130.aspx</guid>
            <pubDate>Mon, 03 Sep 2007 23:40:44 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/derekf/comments/115130.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/derekf/archive/2007/09/03/115130.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/derekf/comments/commentRss/115130.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/derekf/services/trackbacks/115130.aspx</trackback:ping>
        </item>
        <item>
            <title>App Distribution across domains</title>
            <link>http://geekswithblogs.net/derekf/archive/2007/08/07/114477.aspx</link>
            <description>&lt;p&gt;This one is more for my benefit than for yours... the base question for this one is a question that I've been asked more than once at work, and even more than once by the same person.  I figure if I write it out, perhaps I'll be able to explain it better.&lt;/p&gt;
&lt;p&gt;Okay - first, the players.&lt;/p&gt;
&lt;p&gt;Two domains.  Let's call them DomA and DomB.&lt;/p&gt;
&lt;p&gt;Two users.  We can call them UserA and UserB, and for the sake of discussion, we'll put them in their own domains: DomA\UserA and DomB\UserB.&lt;/p&gt;
&lt;p&gt;Two app policies (published apps) - one per domain.  Let's call them AppPolicyDomA and AppPolicyDomB to make it easy.&lt;/p&gt;
&lt;p&gt;A couple of apps per policy.  Let's go with one that's locked down with a domain-specific group (DomA\MyAppGroup and DomB\MyOtherAppGroup) and one that's open to Authenticated Users.  I don't think I'll need app names.&lt;/p&gt;
&lt;p&gt;Okay, given all these players, the base question is:&lt;/p&gt;
&lt;p&gt;"If a user from DomB logs onto a machine in DomA, what apps will he (or she) be able to install?"&lt;/p&gt;
&lt;p&gt;One opinion that was expressed was that because Loopback Merge was turned on, it'd redirect processing back to the user's own domain.  That's not actually right though, and here's why.&lt;/p&gt;
&lt;p&gt;Any given machine - be it in DomA or in DomB, will get only those policies that are linked to that specific machine's OU... and that's going to be domain-specific.  So, the contents of the user's Add/Remove programs will be those apps in those policies that are linked to that machine's OU and the user has rights to -- loopback merge or not, there's nothing that would tell this machine in DomA to go look at DomB's AppPolicyDomB to pull down the list.  &lt;/p&gt;
&lt;p&gt;So.. what would DomB\UserB be able to install if he logged onto a machine in DomA?&lt;/p&gt;
&lt;p&gt;1) Any app open to "Authenticated Users".  This could be a problem if the domains have different licensing schemes (DomA has a site license for the exact number of DomA users, etc).&lt;/p&gt;
&lt;p&gt;2) Any app where DomB's user account is a member of the DomA group.  In our environment, that's pretty much none of them.  &lt;/p&gt;
&lt;p&gt;3) All apps assigned to the machine will already be installed.  &lt;/p&gt;
&lt;p&gt;Now, you could conceivably use WMI filtering to prevent the Auth Users apps from being available. Filtering was ruled out at a level well above my pay grade so I've done no digging into this one.&lt;/p&gt;
&lt;p&gt;Okay, this may not have helped so much, but at least I can point folks at this next time they ask.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=114477"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=114477" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/derekf/aggbug/114477.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>derekf</dc:creator>
            <guid>http://geekswithblogs.net/derekf/archive/2007/08/07/114477.aspx</guid>
            <pubDate>Wed, 08 Aug 2007 02:02:18 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/derekf/comments/114477.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/derekf/archive/2007/08/07/114477.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/derekf/comments/commentRss/114477.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/derekf/services/trackbacks/114477.aspx</trackback:ping>
        </item>
        <item>
            <title>Deleting a 64 bit registry entry from a 32 bit app in C#.</title>
            <link>http://geekswithblogs.net/derekf/archive/2007/06/26/113485.aspx</link>
            <description>&lt;p&gt;Okay, this may be old hat to some of you, but it took me some time to figure it out and I didn't find much useful when searching.&lt;/p&gt;
&lt;p&gt;Came across a need to delete a 64 bit registry value from a 32 bit app.  The standard registry delete functions would end up deleting it from the Wow6432Node, which was what was not the desired outcome.&lt;/p&gt;
&lt;p&gt;The code to make it happen is pretty simple, but I've got no error checking in the sample code here:&lt;/p&gt;
&lt;p&gt;First, the P/Invoke stuff:&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: &amp;quot;Courier New&amp;quot;"&gt;&lt;span style="mso-spacerun: yes"&gt; &lt;/span&gt;[DllImport("advapi32.dll")]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: &amp;quot;Courier New&amp;quot;"&gt;static&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: &amp;quot;Courier New&amp;quot;"&gt; &lt;span style="COLOR: blue"&gt;extern&lt;/span&gt; &lt;span style="COLOR: blue"&gt;int&lt;/span&gt; RegOpenKeyEx(&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: &amp;quot;Courier New&amp;quot;"&gt;&lt;span style="mso-tab-count: 1"&gt;      &lt;/span&gt;RegistryHive hKey,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: &amp;quot;Courier New&amp;quot;"&gt;&lt;span style="mso-tab-count: 1"&gt;      &lt;/span&gt;[MarshalAs(UnmanagedType.VBByRefStr)] &lt;span style="COLOR: blue"&gt;ref&lt;/span&gt; &lt;span style="COLOR: blue"&gt;string&lt;/span&gt; subKey,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: &amp;quot;Courier New&amp;quot;"&gt;&lt;span style="mso-tab-count: 1"&gt;      &lt;/span&gt;&lt;span style="COLOR: blue"&gt;int&lt;/span&gt; options,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: &amp;quot;Courier New&amp;quot;"&gt;&lt;span style="mso-tab-count: 1"&gt;      &lt;/span&gt;&lt;span style="COLOR: blue"&gt;int&lt;/span&gt; sam,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: &amp;quot;Courier New&amp;quot;"&gt;&lt;span style="mso-tab-count: 1"&gt;      &lt;/span&gt;&lt;span style="COLOR: blue"&gt;out&lt;/span&gt; UIntPtr phkResult );&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: &amp;quot;Courier New&amp;quot;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: &amp;quot;Courier New&amp;quot;"&gt;&lt;span style="mso-spacerun: yes"&gt; &lt;/span&gt;[DllImport("advapi32.dll")]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: &amp;quot;Courier New&amp;quot;"&gt;static&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: &amp;quot;Courier New&amp;quot;"&gt; &lt;span style="COLOR: blue"&gt;extern&lt;/span&gt; &lt;span style="COLOR: blue"&gt;int&lt;/span&gt; RegDeleteValue(&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: &amp;quot;Courier New&amp;quot;"&gt;&lt;span style="mso-tab-count: 1"&gt;      &lt;/span&gt;UIntPtr hKey,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: &amp;quot;Courier New&amp;quot;"&gt;&lt;span style="mso-tab-count: 1"&gt;      &lt;/span&gt;[MarshalAs(UnmanagedType.VBByRefStr)] &lt;span style="COLOR: blue"&gt;ref&lt;/span&gt; &lt;span style="COLOR: blue"&gt;string&lt;/span&gt; lpValueName&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: &amp;quot;Courier New&amp;quot;"&gt;&lt;span style="mso-tab-count: 1"&gt;      &lt;/span&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;And then, the meat of the program:&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: &amp;quot;Courier New&amp;quot;"&gt;&lt;span style="mso-tab-count: 1"&gt;      &lt;/span&gt;UIntPtr KeyHandle = UIntPtr.Zero;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: &amp;quot;Courier New&amp;quot;"&gt;&lt;span style="mso-tab-count: 1"&gt;      &lt;/span&gt;&lt;span style="COLOR: blue"&gt;string&lt;/span&gt; key = @"Software\Microsoft\Windows NT\CurrentVersion\TestKey";&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: &amp;quot;Courier New&amp;quot;"&gt;&lt;span style="mso-tab-count: 1"&gt;      &lt;/span&gt;&lt;span style="COLOR: blue"&gt;string&lt;/span&gt; &lt;span style="COLOR: blue"&gt;value&lt;/span&gt; = "DeleteThisValue";&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: &amp;quot;Courier New&amp;quot;"&gt;&lt;span style="mso-tab-count: 1"&gt;      &lt;/span&gt;RegOpenKeyEx(RegistryHive.LocalMachine,&lt;span style="COLOR: blue"&gt;ref&lt;/span&gt; key,0,0x000f013f,&lt;span style="COLOR: blue"&gt;out&lt;/span&gt; KeyHandle);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 10pt"&gt;&lt;span style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: &amp;quot;Courier New&amp;quot;"&gt;&lt;span style="mso-tab-count: 1"&gt;      &lt;/span&gt;RegDeleteValue(KeyHandle,&lt;span style="COLOR: blue"&gt;ref&lt;/span&gt; &lt;span style="COLOR: blue"&gt;value&lt;/span&gt;);&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;The magic numbers 0 and 0x000f103f shouldn't be hardcoded; the 0 is "Non-volatile registry" and the hex number is both "KEY_WOW64_64KEY" (0x100) and "KEY_ALL_ACCESS (0xf003f)".&lt;br /&gt;
&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=113485"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=113485" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/derekf/aggbug/113485.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>derekf</dc:creator>
            <guid>http://geekswithblogs.net/derekf/archive/2007/06/26/113485.aspx</guid>
            <pubDate>Wed, 27 Jun 2007 01:55:37 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/derekf/comments/113485.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/derekf/archive/2007/06/26/113485.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/derekf/comments/commentRss/113485.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/derekf/services/trackbacks/113485.aspx</trackback:ping>
        </item>
        <item>
            <title>Converting a policy name to a GUID</title>
            <link>http://geekswithblogs.net/derekf/archive/2007/04/23/111892.aspx</link>
            <description>&lt;p&gt;Ok, part of all this we've already talked about requires that you have the policy's GUID.  But how do you get it?&lt;/p&gt;
&lt;p&gt;Simple enough:&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;&lt;span style="COLOR: blue"&gt;private&lt;/span&gt; &lt;span style="COLOR: blue"&gt;string&lt;/span&gt; &lt;span style="COLOR: #010001"&gt;Query&lt;/span&gt;(&lt;span style="COLOR: blue"&gt;string&lt;/span&gt; &lt;span style="COLOR: #010001"&gt;Criteria&lt;/span&gt;, &lt;span style="COLOR: blue"&gt;string&lt;/span&gt; &lt;span style="COLOR: #010001"&gt;Attribute&lt;/span&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;           &lt;/span&gt;&lt;span style="COLOR: #2b91af"&gt;DirectorySearcher&lt;/span&gt; &lt;span style="COLOR: #010001"&gt;mySearcher&lt;/span&gt; = &lt;span style="COLOR: blue"&gt;new&lt;/span&gt; &lt;span style="COLOR: #2b91af"&gt;DirectorySearcher&lt;/span&gt;(&lt;span style="COLOR: blue"&gt;new&lt;/span&gt; &lt;span style="COLOR: #2b91af"&gt;DirectoryEntry&lt;/span&gt;(&lt;span style="COLOR: #a31515"&gt;"LDAP://DC=DOMAIN,DC=&lt;st1:place w:st="on"&gt;&lt;st1:city w:st="on"&gt;MYCOMPANY&lt;/st1:city&gt;,&lt;st1:state w:st="on"&gt;DC&lt;/st1:state&gt;&lt;/st1:place&gt;=com"&lt;/span&gt;,&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;&lt;span style="COLOR: blue"&gt;null&lt;/span&gt;,&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;&lt;span style="COLOR: blue"&gt;null&lt;/span&gt;,&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;&lt;span style="COLOR: #2b91af"&gt;AuthenticationTypes&lt;/span&gt;.&lt;span style="COLOR: #010001"&gt;Secure&lt;/span&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;));&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt; &lt;/span&gt;&lt;span style="mso-spacerun: yes"&gt;           &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;&lt;span style="COLOR: #010001"&gt;mySearcher&lt;/span&gt;.&lt;span style="COLOR: #010001"&gt;ClientTimeout&lt;/span&gt; = &lt;span style="COLOR: blue"&gt;new&lt;/span&gt; &lt;span style="COLOR: #2b91af"&gt;TimeSpan&lt;/span&gt;(0, 0, 10);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;&lt;span style="COLOR: #010001"&gt;mySearcher&lt;/span&gt;.&lt;span style="COLOR: #010001"&gt;Filter&lt;/span&gt; = &lt;span style="COLOR: #010001"&gt;Criteria&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;&lt;span style="COLOR: #010001"&gt;mySearcher&lt;/span&gt;.&lt;span style="COLOR: #010001"&gt;SearchScope&lt;/span&gt; = &lt;span style="COLOR: #2b91af"&gt;SearchScope&lt;/span&gt;.&lt;span style="COLOR: #010001"&gt;Subtree&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;&lt;span style="COLOR: blue"&gt;try&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;                &lt;/span&gt;&lt;span style="COLOR: #2b91af"&gt;SearchResult&lt;/span&gt; &lt;span style="COLOR: #010001"&gt;result&lt;/span&gt; = &lt;span style="COLOR: #010001"&gt;mySearcher&lt;/span&gt;.&lt;span style="COLOR: #010001"&gt;FindOne&lt;/span&gt;();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;                &lt;/span&gt;&lt;span style="COLOR: green"&gt;//if exception was not thrown, means it connected successfuly&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;                &lt;/span&gt;&lt;span style="COLOR: blue"&gt;if&lt;/span&gt; (&lt;span style="COLOR: #010001"&gt;result&lt;/span&gt; != &lt;span style="COLOR: blue"&gt;null&lt;/span&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;                &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;                    &lt;/span&gt;&lt;span style="COLOR: blue"&gt;if&lt;/span&gt;(&lt;span style="COLOR: #010001"&gt;result&lt;/span&gt;.&lt;span style="COLOR: #010001"&gt;Properties&lt;/span&gt;[&lt;span style="COLOR: #010001"&gt;Attribute&lt;/span&gt;][0] != &lt;span style="COLOR: blue"&gt;null&lt;/span&gt;)&lt;span style="COLOR: green"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;                    &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;                        &lt;/span&gt;&lt;span style="COLOR: #010001"&gt;mySearcher&lt;/span&gt;.&lt;span style="COLOR: #010001"&gt;Dispose&lt;/span&gt;();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;                        &lt;/span&gt;&lt;span style="COLOR: blue"&gt;return&lt;/span&gt; &lt;span style="COLOR: #010001"&gt;result&lt;/span&gt;.&lt;span style="COLOR: #010001"&gt;Properties&lt;/span&gt;[&lt;span style="COLOR: #010001"&gt;Attribute&lt;/span&gt;][0].&lt;span style="COLOR: #010001"&gt;ToString&lt;/span&gt;();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;                    &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;                &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;&lt;span style="COLOR: blue"&gt;catch&lt;/span&gt; (&lt;span style="COLOR: #2b91af"&gt;Exception&lt;/span&gt; &lt;span style="COLOR: #010001"&gt;ex&lt;/span&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;                &lt;/span&gt;&lt;span style="COLOR: blue"&gt;return&lt;/span&gt; &lt;span style="COLOR: #010001"&gt;ex&lt;/span&gt;.&lt;span style="COLOR: #010001"&gt;Message&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;&lt;span style="COLOR: #010001"&gt;mySearcher&lt;/span&gt;.&lt;span style="COLOR: #010001"&gt;Dispose&lt;/span&gt;();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;&lt;span style="COLOR: blue"&gt;return&lt;/span&gt; &lt;span style="COLOR: #a31515"&gt;"Not found."&lt;/span&gt;;&lt;span style="mso-spacerun: yes"&gt;           &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;/span&gt; &lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;font face="Arial"&gt;with the provision that the "Criteria" and "Attribute" arguments are, respectively,&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;/span&gt; &lt;/p&gt;
&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;font face="Arial"&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;"(&amp;amp;(objectCategory=groupPolicyContainer)(name="&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt; + &lt;span style="COLOR: #010001"&gt;GUID &lt;/span&gt;+ &lt;span style="COLOR: #a31515"&gt;"))"&lt;/span&gt;&lt;/span&gt;  and &lt;font color="#a31515" size="2"&gt;"displayName" to convert &lt;font color="#000000"&gt;from GUID to policy name, and&lt;/font&gt; &lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;"(&amp;amp;(objectCategory=groupPolicyContainer)(displayName="&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt; + &lt;span style="COLOR: #010001"&gt;Policy Name &lt;/span&gt;+ &lt;span style="COLOR: #a31515"&gt;"))"&lt;/span&gt;,&lt;span style="COLOR: #a31515"&gt;"name" &lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&lt;span style="COLOR: #a31515"&gt;&lt;font face="Arial" color="#000000"&gt;to go from policy name to GUID.&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/font&gt;&lt;/span&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=111892"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=111892" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/derekf/aggbug/111892.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>derekf</dc:creator>
            <guid>http://geekswithblogs.net/derekf/archive/2007/04/23/111892.aspx</guid>
            <pubDate>Mon, 23 Apr 2007 11:04:57 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/derekf/comments/111892.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/derekf/archive/2007/04/23/111892.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/derekf/comments/commentRss/111892.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/derekf/services/trackbacks/111892.aspx</trackback:ping>
        </item>
        <item>
            <title>Package flags, part 2</title>
            <link>http://geekswithblogs.net/derekf/archive/2007/02/25/107229.aspx</link>
            <description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;I found my more detailed notes on the package flags.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;A couple of corrections:&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;The flag “524288” specifically tells whether an app is published or assigned – it’s set for assigned, unset for published.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;8 is typically set for published apps and cleared for assigned.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;I promised code.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none; tab-stops: .25in 27.0pt .5in 45.0pt .75in 63.0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;private&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt; &lt;SPAN style="COLOR: blue"&gt;void&lt;/SPAN&gt; &lt;SPAN style="COLOR: #010001"&gt;SearchAD&lt;/SPAN&gt;(&lt;SPAN style="COLOR: blue"&gt;string&lt;/SPAN&gt; &lt;SPAN style="COLOR: #010001"&gt;target&lt;/SPAN&gt;, &lt;SPAN style="COLOR: blue"&gt;string&lt;/SPAN&gt; &lt;SPAN style="COLOR: #010001"&gt;policy&lt;/SPAN&gt;, &lt;SPAN style="COLOR: blue"&gt;string&lt;/SPAN&gt; &lt;SPAN style="COLOR: #010001"&gt;policyname&lt;/SPAN&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none; tab-stops: .25in 27.0pt .5in 45.0pt .75in 63.0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none; tab-stops: .25in 27.0pt .5in 45.0pt .75in 63.0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;DirectoryEntry&lt;/SPAN&gt; &lt;SPAN style="COLOR: #010001"&gt;entry&lt;/SPAN&gt; = &lt;SPAN style="COLOR: blue"&gt;null&lt;/SPAN&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none; tab-stops: .25in 27.0pt .5in 45.0pt .75in 63.0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;try&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none; tab-stops: .25in 27.0pt .5in 45.0pt .75in 63.0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none; tab-stops: .25in 27.0pt .5in 45.0pt .75in 63.0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: #010001"&gt;entry&lt;/SPAN&gt; = &lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt; &lt;SPAN style="COLOR: #2b91af"&gt;DirectoryEntry&lt;/SPAN&gt;(&lt;SPAN style="COLOR: #010001"&gt;policy&lt;/SPAN&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none; tab-stops: .25in 27.0pt .5in 45.0pt .75in 63.0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none; tab-stops: .25in 27.0pt .5in 45.0pt .75in 63.0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;catch&lt;/SPAN&gt; (&lt;SPAN style="COLOR: #2b91af"&gt;COMException&lt;/SPAN&gt; &lt;SPAN style="COLOR: #010001"&gt;Ex&lt;/SPAN&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none; tab-stops: .25in 27.0pt .5in 45.0pt .75in 63.0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none; tab-stops: .25in 27.0pt .5in 45.0pt .75in 63.0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: #010001"&gt;toolStripStatusLabel1&lt;/SPAN&gt;.&lt;SPAN style="COLOR: #010001"&gt;Text&lt;/SPAN&gt; = &lt;SPAN style="COLOR: #a31515"&gt;"Couldn't connect to the specified Active Directory Path - Error = "&lt;/SPAN&gt; + &lt;SPAN style="COLOR: #010001"&gt;Ex&lt;/SPAN&gt;.&lt;SPAN style="COLOR: #010001"&gt;Message&lt;/SPAN&gt; + &lt;SPAN style="COLOR: #010001"&gt;Ex&lt;/SPAN&gt;.&lt;SPAN style="COLOR: #010001"&gt;InnerException&lt;/SPAN&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none; tab-stops: .25in 27.0pt .5in 45.0pt .75in 63.0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;return&lt;/SPAN&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none; tab-stops: .25in 27.0pt .5in 45.0pt .75in 63.0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none; tab-stops: .25in 27.0pt .5in 45.0pt .75in 63.0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none; tab-stops: .25in 27.0pt .5in 45.0pt .75in 63.0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;DirectorySearcher&lt;/SPAN&gt; &lt;SPAN style="COLOR: #010001"&gt;mySearcher&lt;/SPAN&gt; = &lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt; &lt;SPAN style="COLOR: #2b91af"&gt;DirectorySearcher&lt;/SPAN&gt;(&lt;SPAN style="COLOR: #010001"&gt;entry&lt;/SPAN&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none; tab-stops: .25in 27.0pt .5in 45.0pt .75in 63.0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;TimeSpan&lt;/SPAN&gt; &lt;SPAN style="COLOR: #010001"&gt;waitTime&lt;/SPAN&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none; tab-stops: .25in 27.0pt .5in 45.0pt .75in 63.0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none; tab-stops: .25in 27.0pt .5in 45.0pt .75in 63.0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;try&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none; tab-stops: .25in 27.0pt .5in 45.0pt .75in 63.0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none; tab-stops: .25in 27.0pt .5in 45.0pt .75in 63.0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: #010001"&gt;waitTime&lt;/SPAN&gt; = &lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt; &lt;SPAN style="COLOR: #2b91af"&gt;TimeSpan&lt;/SPAN&gt;(0, 0, 60); &lt;SPAN style="COLOR: green"&gt;//hh--mm-ss&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none; tab-stops: .25in 27.0pt .5in 45.0pt .75in 63.0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: #010001"&gt;mySearcher&lt;/SPAN&gt;.&lt;SPAN style="COLOR: #010001"&gt;ClientTimeout&lt;/SPAN&gt; = &lt;SPAN style="COLOR: #010001"&gt;waitTime&lt;/SPAN&gt;; &lt;SPAN style="COLOR: green"&gt;//wait this much time to display results&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none; tab-stops: .25in 27.0pt .5in 45.0pt .75in 63.0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none; tab-stops: .25in 27.0pt .5in 45.0pt .75in 63.0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;catch&lt;/SPAN&gt; (&lt;SPAN style="COLOR: #2b91af"&gt;Exception&lt;/SPAN&gt; &lt;SPAN style="COLOR: #010001"&gt;Ex&lt;/SPAN&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none; tab-stops: .25in 27.0pt .5in 45.0pt .75in 63.0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none; tab-stops: .25in 27.0pt .5in 45.0pt .75in 63.0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: #010001"&gt;toolStripStatusLabel1&lt;/SPAN&gt;.&lt;SPAN style="COLOR: #010001"&gt;Text&lt;/SPAN&gt; = &lt;SPAN style="COLOR: #a31515"&gt;"Error = "&lt;/SPAN&gt; + &lt;SPAN style="COLOR: #010001"&gt;Ex&lt;/SPAN&gt;.&lt;SPAN style="COLOR: #010001"&gt;Message&lt;/SPAN&gt; + &lt;SPAN style="COLOR: #010001"&gt;Ex&lt;/SPAN&gt;.&lt;SPAN style="COLOR: #010001"&gt;InnerException&lt;/SPAN&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none; tab-stops: .25in 27.0pt .5in 45.0pt .75in 63.0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;return&lt;/SPAN&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none; tab-stops: .25in 27.0pt .5in 45.0pt .75in 63.0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none; tab-stops: .25in 27.0pt .5in 45.0pt .75in 63.0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none; tab-stops: .25in 27.0pt .5in 45.0pt .75in 63.0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;try&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none; tab-stops: .25in 27.0pt .5in 45.0pt .75in 63.0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none; tab-stops: .25in 27.0pt .5in 45.0pt .75in 63.0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;SearchResult&lt;/SPAN&gt; &lt;SPAN style="COLOR: #010001"&gt;result&lt;/SPAN&gt; = &lt;SPAN style="COLOR: #010001"&gt;mySearcher&lt;/SPAN&gt;.&lt;SPAN style="COLOR: #010001"&gt;FindOne&lt;/SPAN&gt;();&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none; tab-stops: .25in 27.0pt .5in 45.0pt .75in 63.0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none; tab-stops: .25in 27.0pt .5in 45.0pt .75in 63.0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none; tab-stops: .25in 27.0pt .5in 45.0pt .75in 63.0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: green"&gt;//if exception was not thrown, means it connected successfuly&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none; tab-stops: .25in 27.0pt .5in 45.0pt .75in 63.0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;if&lt;/SPAN&gt; (&lt;SPAN style="COLOR: #010001"&gt;result&lt;/SPAN&gt; != &lt;SPAN style="COLOR: blue"&gt;null&lt;/SPAN&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none; tab-stops: .25in 27.0pt .5in 45.0pt .75in 63.0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none; tab-stops: .25in 27.0pt .5in 45.0pt .75in 63.0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: green"&gt;// Get the 'DirectoryEntry' that corresponds to 'mySearchResult'.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none; tab-stops: .25in 27.0pt .5in 45.0pt .75in 63.0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;DirectoryEntry&lt;/SPAN&gt; &lt;SPAN style="COLOR: #010001"&gt;myDirectoryEntry&lt;/SPAN&gt; = &lt;SPAN style="COLOR: #010001"&gt;result&lt;/SPAN&gt;.&lt;SPAN style="COLOR: #010001"&gt;GetDirectoryEntry&lt;/SPAN&gt;();&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none; tab-stops: .25in 27.0pt .5in 45.0pt .75in 63.0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none; tab-stops: .25in 27.0pt .5in 45.0pt .75in 63.0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none; tab-stops: .25in 27.0pt .5in 45.0pt .75in 63.0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: green"&gt;// Get the properties of the 'mySearchResult'.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none; tab-stops: .25in 27.0pt .5in 45.0pt .75in 63.0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;ResultPropertyCollection&lt;/SPAN&gt; &lt;SPAN style="COLOR: #010001"&gt;myResultPropColl&lt;/SPAN&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none; tab-stops: .25in 27.0pt .5in 45.0pt .75in 63.0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: #010001"&gt;myResultPropColl&lt;/SPAN&gt; = &lt;SPAN style="COLOR: #010001"&gt;result&lt;/SPAN&gt;.&lt;S