<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.msgoodies.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;AkcDSXk7eip7ImA9WxBWF00.&quot;"><id>tag:blogger.com,1999:blog-8600848</id><updated>2010-02-09T10:34:38.702+01:00</updated><title>msgoodies</title><subtitle type="html">Welcome to our blog on the topics that we find interesting in our work life. It mainly focuses on Microsoft related technologies like Unified Communications, PowerShell, ILM and how these are used at the enterprise customers that we work with.</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://msgoodies.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://msgoodies.blogspot.com/" /><link rel="hub" href="http://pubsubhubbub.appspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default?alt=atom&amp;start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Dennis Lundtoft Thomsen [MVP]</name><uri>http://www.blogger.com/profile/14713138671966546640</uri><email>noreply@blogger.com</email></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>590</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.msgoodies.com/blogspot/msgoodies" /><feedburner:info uri="blogspot/msgoodies" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><geo:lat>57.098423</geo:lat><geo:long>9.897963</geo:long><feedburner:emailServiceId>blogspot/msgoodies</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><entry gd:etag="W/&quot;AkcDSXk6eSp7ImA9WxBWF00.&quot;"><id>tag:blogger.com,1999:blog-8600848.post-5647510904308381261</id><published>2010-02-09T10:26:00.001+01:00</published><updated>2010-02-09T10:34:38.711+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-09T10:34:38.711+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Unified Communications" /><title>Information Overload and Social Impact of UC</title><content type="html">&lt;p&gt;&lt;a href="http://twitter.com/michaeljkillian"&gt;Michael J. Killian&lt;/a&gt; has created a 3-series post on his view on Unified Communications, &lt;a href="http://bit.ly/aKK886"&gt;Information Overload&lt;/a&gt;, the &lt;a href="http://bit.ly/dBa8OQ"&gt;Social Behavior Impacts&lt;/a&gt; and &lt;a href="http://bit.ly/dxnFqX"&gt;Social Networking in The Enterprise&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Interesting and well written perspectives for anyone interested in the non-technical side of working with Unified Communications!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8600848-5647510904308381261?l=msgoodies.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=J2uBnkfMX_8:TlYmFW7ThJA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=J2uBnkfMX_8:TlYmFW7ThJA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=J2uBnkfMX_8:TlYmFW7ThJA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=J2uBnkfMX_8:TlYmFW7ThJA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=J2uBnkfMX_8:TlYmFW7ThJA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/msgoodies/~4/J2uBnkfMX_8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://msgoodies.blogspot.com/feeds/5647510904308381261/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=8600848&amp;postID=5647510904308381261&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/5647510904308381261?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/5647510904308381261?v=2" /><link rel="alternate" type="text/html" href="http://feeds.msgoodies.com/~r/blogspot/msgoodies/~3/J2uBnkfMX_8/information-overload-and-social-impact.html" title="Information Overload and Social Impact of UC" /><author><name>Dennis Lundtoft Thomsen [MVP]</name><uri>http://www.blogger.com/profile/14713138671966546640</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="16206148123269563940" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://msgoodies.blogspot.com/2010/02/information-overload-and-social-impact.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0cESH08fip7ImA9WxBWE00.&quot;"><id>tag:blogger.com,1999:blog-8600848.post-2296691393915993674</id><published>2010-02-04T17:02:00.001+01:00</published><updated>2010-02-04T17:30:09.376+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-04T17:30:09.376+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Telephony" /><category scheme="http://www.blogger.com/atom/ns#" term="Unified Communications" /><title>NET acquires SmartSIP from Evangelyze</title><content type="html">&lt;p&gt;Good news for users of &lt;a href="www.net.com"&gt;NET&lt;/a&gt; Gateways for their OCS implementations (and future customers ;-) NET has acquired the smartSIP product from &lt;a href="www.evangelyze.net"&gt;Evangelyze&lt;/a&gt; -&lt;/p&gt;  &lt;p&gt;&lt;em&gt;The SmartSIP product line includes both the SmartSIP and SmartVoIP products. SmartSIP enables UC presence and interoperability for SIP phones while providing integration for Microsoft's Office Communications Server with IP-PBXs and integration for ITSP voice providers. SmartVoIP, a 2008 Internet Telephony Product of the Year, is an extension of SmartSIP that provides branch office integration with Microsoft Office Communications Server.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Read the full press release &lt;a href="http://bit.ly/cE04dZ"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8600848-2296691393915993674?l=msgoodies.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=l7Qd_Vuj9OQ:bofIxk7z7Mw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=l7Qd_Vuj9OQ:bofIxk7z7Mw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=l7Qd_Vuj9OQ:bofIxk7z7Mw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=l7Qd_Vuj9OQ:bofIxk7z7Mw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=l7Qd_Vuj9OQ:bofIxk7z7Mw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/msgoodies/~4/l7Qd_Vuj9OQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://msgoodies.blogspot.com/feeds/2296691393915993674/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=8600848&amp;postID=2296691393915993674&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/2296691393915993674?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/2296691393915993674?v=2" /><link rel="alternate" type="text/html" href="http://feeds.msgoodies.com/~r/blogspot/msgoodies/~3/l7Qd_Vuj9OQ/net-acquires-smartsip-from-evangelyze.html" title="NET acquires SmartSIP from Evangelyze" /><author><name>Dennis Lundtoft Thomsen [MVP]</name><uri>http://www.blogger.com/profile/14713138671966546640</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="16206148123269563940" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://msgoodies.blogspot.com/2010/02/net-acquires-smartsip-from-evangelyze.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUUBQns9cSp7ImA9WxBWEkU.&quot;"><id>tag:blogger.com,1999:blog-8600848.post-7797143497187250267</id><published>2010-02-04T13:40:00.001+01:00</published><updated>2010-02-04T13:40:53.569+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-04T13:40:53.569+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Script" /><category scheme="http://www.blogger.com/atom/ns#" term="PowerShell V2" /><title>Invoking the PowerShell Debugger from Script</title><content type="html">&lt;p&gt;With PowerShell v2, a new and much improved command line debugger was introduced. The old one is still around though. Anyway, more information can be found in the help subject about_Debuggers.&lt;/p&gt;  &lt;p&gt;The strange part is that Set-PsDebug –Step invokes the old debugger and there does not seem to be a way of invoking the new one. You can only invoke the new one by setting a breakpoint. Even though, breakpoints are a very useful feature which I use a lot, I would also like to do it from inside a script.&lt;/p&gt;  &lt;p&gt;I have played around with some ways of doing this.&lt;/p&gt;  &lt;p&gt;First, a self-contained function&lt;/p&gt;  &lt;div id="codeSnippetWrapper"&gt;   &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;Function Invoke-Debugger{&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;function&lt;/span&gt; debug{}&lt;br /&gt;    $bp=Set-PSBreakPoint -Command debug&lt;br /&gt;    debug&lt;br /&gt;    $bp | Remove-PSBreakpoint&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt; test{&lt;br /&gt;    write-host 1&lt;br /&gt;    Invoke-Debugger&lt;br /&gt;    write-host 2&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;test&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;It works great, but has the downside, that the current execution pointer is inside the Invoke-Debugger function -&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div id="codeSnippetWrapper"&gt;&lt;br /&gt;  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;1&lt;br /&gt;Entering debug mode. Use h or ? &lt;span style="color: #0000ff"&gt;for&lt;/span&gt; help.&lt;br /&gt;&lt;br /&gt;Hit Command breakpoint on &lt;span style="color: #006080"&gt;'debug'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;x.ps1:4       debug&lt;br /&gt;7 $docs&amp;gt;&amp;gt;&amp;gt; l&lt;br /&gt;&lt;br /&gt;    1:  Function Invoke-Debugger{&lt;br /&gt;    2:      &lt;span style="color: #0000ff"&gt;function&lt;/span&gt; debug{}&lt;br /&gt;    3:      $bp=Set-PSBreakPoint -Command debug&lt;br /&gt;    4:*     debug&lt;br /&gt;    5:      $bp | Remove-PSBreakpoint&lt;br /&gt;    6:  }&lt;br /&gt;    7:&lt;br /&gt;    8:  &lt;span style="color: #0000ff"&gt;function&lt;/span&gt; test{&lt;br /&gt;    9:      write-host 1&lt;br /&gt;   10:      Invoke-Debugger&lt;br /&gt;   11:      write-host 2&lt;br /&gt;   12:  }&lt;br /&gt;   13:&lt;br /&gt;   14:  test&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;No matter how I try to tweak it, I end up in the same way.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Next, lets try using a two part approach (setting the breakpoint and doing some action to invoke it) -&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;$null=Set-PSBreakpoint -Variable InvokeDebugger&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt; test{&lt;br /&gt;    write-host 1&lt;br /&gt;    $InvokeDebugger=1&lt;br /&gt;    write-host 2&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;test&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;This is much better, now the execution pointer is right in the code -&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div id="codeSnippetWrapper"&gt;&lt;br /&gt;  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;1&lt;br /&gt;Hit Variable breakpoint on &lt;span style="color: #006080"&gt;'$InvokeDebugger'&lt;/span&gt; (Write access)&lt;br /&gt;&lt;br /&gt;x.ps1:5       $InvokeDebugger=1&lt;br /&gt;9 $docs&amp;gt;&amp;gt;&amp;gt; l&lt;br /&gt;&lt;br /&gt;    1:  $null=Set-PSBreakpoint -Variable InvokeDebugger&lt;br /&gt;    2:&lt;br /&gt;    3:  &lt;span style="color: #0000ff"&gt;function&lt;/span&gt; test{&lt;br /&gt;    4:      write-host 1&lt;br /&gt;    5:*     $InvokeDebugger=1&lt;br /&gt;    6:      write-host 2&lt;br /&gt;    7:  }&lt;br /&gt;    8:&lt;br /&gt;    9:  test&lt;br /&gt;   10:&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Eventually, this led me to this piece of code. It is easier to write than the variable assignment and you can also define an easy-writeable alias for it -&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div id="codeSnippetWrapper"&gt;&lt;br /&gt;  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt; Invoke-Debugger{}&lt;br /&gt;New-Alias id Invoke-Debugger&lt;br /&gt;$null=Set-PSBreakPoint –Command Invoke-Debugger&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt; test{&lt;br /&gt;    write-host 1&lt;br /&gt;    id&lt;br /&gt;    write-host 2&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;test&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div id="codeSnippetWrapper"&gt;&lt;br /&gt;  &lt;br /&gt;The execution pointer is right at the call. If you include any statements in Invoke-Debugger, this will not work as well while ‘step’ will take execution into the function -&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div id="codeSnippetWrapper"&gt;&lt;br /&gt;  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;1&lt;br /&gt;Hit Command breakpoint on &lt;span style="color: #006080"&gt;'Invoke-Debugger'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;x.ps1:9       id&lt;br /&gt;13 $docs&amp;gt;&amp;gt;&amp;gt; l&lt;br /&gt;&lt;br /&gt;    4:  New-Alias id Invoke-Debugger&lt;br /&gt;    5:  $null=Set-PSBreakPoint –Command Invoke-Debugger&lt;br /&gt;    6:&lt;br /&gt;    7:  &lt;span style="color: #0000ff"&gt;function&lt;/span&gt; test{&lt;br /&gt;    8:      write-host 1&lt;br /&gt;    9:*     id&lt;br /&gt;   10:      write-host 2&lt;br /&gt;   11:  }&lt;br /&gt;   12:&lt;br /&gt;   13:  test&lt;br /&gt;   14:&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;This method also enables you to make conditional break using straight, normal code (compared to making the logic in the –action argument of Set-PSBreakPoint) -&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div id="codeSnippetWrapper"&gt;&lt;br /&gt;  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;filter&lt;/span&gt; test{&lt;br /&gt;    write-host &lt;span style="color: #006080"&gt;&amp;quot;got $_&amp;quot;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; ($_ &lt;span style="color: #cc6633"&gt;-eq&lt;/span&gt; 3) {id}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;1..5 | test&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;and the output -&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div id="codeSnippetWrapper"&gt;&lt;br /&gt;  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;got 1&lt;br /&gt;got 2&lt;br /&gt;got 3&lt;br /&gt;Hit Command breakpoint on &lt;span style="color: #006080"&gt;'Invoke-Debugger'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;x.ps1:9       &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; ($_ &lt;span style="color: #cc6633"&gt;-eq&lt;/span&gt; 3) {id}&lt;br /&gt;14 $docs&amp;gt;&amp;gt;&amp;gt; l&lt;br /&gt;&lt;br /&gt;    4:  New-Alias id Invoke-Debugger&lt;br /&gt;    5:  $null=Set-PSBreakPoint –Command Invoke-Debugger&lt;br /&gt;    6:&lt;br /&gt;    7:  &lt;span style="color: #0000ff"&gt;filter&lt;/span&gt; test{&lt;br /&gt;    8:      write-host &lt;span style="color: #006080"&gt;&amp;quot;got $_&amp;quot;&lt;/span&gt;&lt;br /&gt;    9:*     &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; ($_ &lt;span style="color: #cc6633"&gt;-eq&lt;/span&gt; 3) {id}&lt;br /&gt;   10:  }&lt;br /&gt;   11:&lt;br /&gt;   12:  1..5 | test&lt;br /&gt;   13:&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;You can include the Invoke-Debugger function and the Set-PSBreakPoint in your profile, so they are available in all our scripts.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Happy debugging..&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8600848-7797143497187250267?l=msgoodies.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=KyEWw7lASUs:vDYNN1s2BZ4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=KyEWw7lASUs:vDYNN1s2BZ4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=KyEWw7lASUs:vDYNN1s2BZ4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=KyEWw7lASUs:vDYNN1s2BZ4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=KyEWw7lASUs:vDYNN1s2BZ4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/msgoodies/~4/KyEWw7lASUs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://msgoodies.blogspot.com/feeds/7797143497187250267/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=8600848&amp;postID=7797143497187250267&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/7797143497187250267?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/7797143497187250267?v=2" /><link rel="alternate" type="text/html" href="http://feeds.msgoodies.com/~r/blogspot/msgoodies/~3/KyEWw7lASUs/invoking-powershell-debugger-from.html" title="Invoking the PowerShell Debugger from Script" /><author><name>Per Østergaard</name><uri>http://www.blogger.com/profile/12128790394950237942</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10445043458334841722" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://msgoodies.blogspot.com/2010/02/invoking-powershell-debugger-from.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEcDQ3oyeSp7ImA9WxBXGUs.&quot;"><id>tag:blogger.com,1999:blog-8600848.post-699071827787929295</id><published>2010-01-29T09:18:00.001+01:00</published><updated>2010-01-31T19:21:12.491+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-31T19:21:12.491+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Communicator" /><category scheme="http://www.blogger.com/atom/ns#" term="OCS" /><category scheme="http://www.blogger.com/atom/ns#" term="Unified Communications" /><title>One stop shop for all your OCS patches</title><content type="html">&lt;p&gt;Microsoft has created a really useful &lt;a href="http://bit.ly/d3i55E"&gt;Updates Resource Center&lt;/a&gt; with all the latest and greatest patches listed for both Office Communications Server and the clients.&lt;/p&gt;  &lt;p&gt;You can also find the updates at this &lt;a href="http://bit.ly/douJSR"&gt;RSS feed&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Note this is meant as a One Stop Shop, it is NOT the place where you’ll be notified first on a new OCS/OC patch.&lt;/p&gt;  &lt;p&gt;Good work Microsoft ;-)&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8600848-699071827787929295?l=msgoodies.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=mQQDieYSFNE:jAQWBazozAM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=mQQDieYSFNE:jAQWBazozAM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=mQQDieYSFNE:jAQWBazozAM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=mQQDieYSFNE:jAQWBazozAM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=mQQDieYSFNE:jAQWBazozAM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/msgoodies/~4/mQQDieYSFNE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://msgoodies.blogspot.com/feeds/699071827787929295/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=8600848&amp;postID=699071827787929295&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/699071827787929295?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/699071827787929295?v=2" /><link rel="alternate" type="text/html" href="http://feeds.msgoodies.com/~r/blogspot/msgoodies/~3/mQQDieYSFNE/one-stop-shop-for-all-your-ocs-patches.html" title="One stop shop for all your OCS patches" /><author><name>Dennis Lundtoft Thomsen [MVP]</name><uri>http://www.blogger.com/profile/14713138671966546640</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="16206148123269563940" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://msgoodies.blogspot.com/2010/01/one-stop-shop-for-all-your-ocs-patches.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0ICRncyfyp7ImA9WxBXFEw.&quot;"><id>tag:blogger.com,1999:blog-8600848.post-3757645481539464197</id><published>2010-01-25T11:32:00.001+01:00</published><updated>2010-01-25T11:32:47.997+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-25T11:32:47.997+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Unified Communications" /><title>Interesting webcast from AudioCodes on OCS integration futures</title><content type="html">&lt;p&gt;Besides not being totally honest on what “other vendors” can do (E.g. &lt;a href="http://www.net.com/"&gt;NET&lt;/a&gt; and others provides most of these features and more on top), there were a lot of different interesting news -&lt;/p&gt;  &lt;p&gt;They spoke about Direct Connect (Formerly known as “Advanced Gateway” functionality) that apparently is supported in all their gateways from MP11x series to the Mediant (Se their &lt;a href="http://bit.ly/8QjW8P"&gt;Application Note&lt;/a&gt; that doesn’t detail QoE / ICE support however).&amp;#160; The good thing about direct connect is that you get rid of the need to buy and deploy Mediation Server’s&amp;#160; (Bad news are that it’s officially unsupported – so AudioCodes / NET has to support these configurations directly)&lt;/p&gt;  &lt;p&gt;Other more interesting functionality was support for third party PBX handsets (Again like NET VX1200 series) on remote locations and survivability for these (If they support it).&amp;#160; Also their own AudioCodes endpoints support registration to OCS, by proxying through their gateways to OCS (Which then handles call control). This includes support for Wideband and future support for presence.&lt;/p&gt;  &lt;p&gt;Also Still time to see the #AudioCodes US prez running today at 12:00 noon (EST) / 09:00am (PST) - register here &lt;a href="http://bit.ly/8LrYlL"&gt;http://bit.ly/8LrYlL&lt;/a&gt;. And a recorded webcast should also become available soon (I will update link to it).&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8600848-3757645481539464197?l=msgoodies.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=htCepIpx0DI:PGrNHxpJ5cg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=htCepIpx0DI:PGrNHxpJ5cg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=htCepIpx0DI:PGrNHxpJ5cg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=htCepIpx0DI:PGrNHxpJ5cg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=htCepIpx0DI:PGrNHxpJ5cg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/msgoodies/~4/htCepIpx0DI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://msgoodies.blogspot.com/feeds/3757645481539464197/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=8600848&amp;postID=3757645481539464197&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/3757645481539464197?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/3757645481539464197?v=2" /><link rel="alternate" type="text/html" href="http://feeds.msgoodies.com/~r/blogspot/msgoodies/~3/htCepIpx0DI/interesting-webcast-from-audiocodes-on.html" title="Interesting webcast from AudioCodes on OCS integration futures" /><author><name>Dennis Lundtoft Thomsen [MVP]</name><uri>http://www.blogger.com/profile/14713138671966546640</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="16206148123269563940" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://msgoodies.blogspot.com/2010/01/interesting-webcast-from-audiocodes-on.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk4GRn0yeip7ImA9WxBXFk8.&quot;"><id>tag:blogger.com,1999:blog-8600848.post-1353846673044573242</id><published>2010-01-24T01:36:00.002+01:00</published><updated>2010-01-27T21:42:07.392+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-27T21:42:07.392+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Unified Communications" /><title>Comments on the OCS 2007 R2 Workload Architecture Poster</title><content type="html">&lt;p&gt;The recently RTW’ed Architecture &lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=af2c17cb-207c-4c52-8811-0aca6dfadc94"&gt;Poster&lt;/a&gt; provides a very good overview of port and certificate requirements in the different OCS workloads.&lt;/p&gt;  &lt;p&gt;&lt;em&gt;This poster of Office Communications Server 2007 R2 describes the traffic flow of protocols and ports used in each workload. Communications Server 2007 R2 supports the following workloads: IM and Presence, Conferencing, Application Sharing, and Enterprise Voice. These filtered views can assist you in architecting your deployment of Communications Server 2007 R2. The different server roles are described along with server certificate requirements. Firewall and DNS configuration requirements are also described.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;I like this Poster and the idea/work put in to it and will certainly print one out for the walls in my home office. It provides a visually good overview of the Port usage and signaling/media flows used in OCS. &lt;/p&gt;  &lt;p&gt;I have a few comments to the drawing though - &lt;/p&gt;  &lt;p class="downloadInfo"&gt;&lt;em&gt;Application Sharing Workload&lt;/em&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;div class="downloadInfo"&gt;Red arrow depicting RDP/SRTP shows inbound traffic to 50,000-59,999. This is not correct – only outbound is required to endpoint. The only place this would be required is for traffic to an OCS 2007 “R1” Edge Server.&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div class="downloadInfo"&gt;“A/V Edge must have publicly routable IP addresses” – true if implemented in loadbalanced config as shown (But not required for standalone Edge).&lt;/div&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p class="downloadInfo"&gt;&lt;em&gt;Enterprise Voice Workload&lt;/em&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;div class="downloadInfo"&gt;Red arrow depicting RDP/SRTP shows inbound traffic to 50,000-59,999. This is not correct – only outbound is required to endpoint. The only place this would be required is for traffic to an OCS 2007 “R1” Edge Server&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div class="downloadInfo"&gt;I’m sure G.711 is not used through the A/V Edge as any packet loss would kill it ;-) Siren maybe used for conferencing scenarios.&lt;/div&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p class="downloadInfo"&gt;&lt;em&gt;A/V and Web Conferencing Workload&lt;/em&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;div class="downloadInfo"&gt;Arrows for HTTPS traffic are not correct – they should point towards the LM endpoints, as they are used for downloads of content e.g. slides.&lt;/div&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;div class="downloadInfo"&gt;Firewall configuration and ports on the Edge Server. Even though not OCS specific I would personally add port 53 for DNS (To internal or external depending on config) and port 80 to both external and internal (As this port is used for CRL checks). If not in the drawing then in the “Firewall Configuration” text box.&lt;/div&gt;  &lt;div class="downloadInfo"&gt;&amp;#160;&lt;/div&gt;  &lt;div class="downloadInfo"&gt;&lt;/div&gt;  &lt;div class="downloadInfo"&gt;&lt;/div&gt;  &lt;div class="downloadInfo"&gt;I generally like the idea about the DNS and Certificate portion in this poster, but IMHO it is to simplified. If a future update is planned the I think it should have its own page/poster to really handle the different scenarios and namespace requirements in OCS. So for certificates I would still point to the &lt;a title="Whitepaper on Deploying Certificates in OCS 2007 and OCS 2007 R2" href="http://msgoodies.blogspot.com/2009/08/whitepaper-on-deploying-certificates-in.html"&gt;Whitepaper on Deploying Certificates in OCS 2007 and OCS 2007 R2&lt;/a&gt;, which does a better job of explaining the complexity of certificates usage/naming in OCS.&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8600848-1353846673044573242?l=msgoodies.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=uEWBcLq8x24:uBNOSbMeQiU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=uEWBcLq8x24:uBNOSbMeQiU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=uEWBcLq8x24:uBNOSbMeQiU:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=uEWBcLq8x24:uBNOSbMeQiU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=uEWBcLq8x24:uBNOSbMeQiU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/msgoodies/~4/uEWBcLq8x24" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://msgoodies.blogspot.com/feeds/1353846673044573242/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=8600848&amp;postID=1353846673044573242&amp;isPopup=true" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/1353846673044573242?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/1353846673044573242?v=2" /><link rel="alternate" type="text/html" href="http://feeds.msgoodies.com/~r/blogspot/msgoodies/~3/uEWBcLq8x24/comments-on-ocs-2007-r2-workload.html" title="Comments on the OCS 2007 R2 Workload Architecture Poster" /><author><name>Dennis Lundtoft Thomsen [MVP]</name><uri>http://www.blogger.com/profile/14713138671966546640</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="16206148123269563940" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total><feedburner:origLink>http://msgoodies.blogspot.com/2010/01/comments-on-ocs-2007-r2-workload.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE4CSXsycCp7ImA9WxBXEUk.&quot;"><id>tag:blogger.com,1999:blog-8600848.post-1517495525879227817</id><published>2010-01-22T08:54:00.001+01:00</published><updated>2010-01-22T08:56:08.598+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-22T08:56:08.598+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Unified Communications" /><title>BETA Exam 71-404 OCS 2007 R2 – UC Voice Specialization, Will Be Available January 25, 2010</title><content type="html">&lt;p&gt;The Voice Specialization exam for OCS 2007 R2 is finally getting closer to release with the launch of the Beta Exam.&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Exam 74-404 (Beta Exam 71-404) is designed to validate the skills and experience of technical professional to design, deploy, and administer Microsoft Voice solutions in production based on Microsoft® Office Communications Server 2007 Release 2&amp;#160; (OCS 2007 R2) and including interoperability with OCS 2007, Microsoft® Exchange Server 2007 Unified Messaging, Microsoft® Windows Server Active Directory, gateways and Private Branch Exchanges (PBX’s). &lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;It is highly recommended that candidates for Exam 74-404 have experience with OCS 2007 R2 and have completed the Unified Communications Voice Ignite v 2.0 (R2) Workshop. A preparation guide for the exam will be available soon. Click &lt;/em&gt;&lt;a href="http://www.microsoft.com/learning/en/us/exam.aspx?ID=74-404&amp;amp;locale=en-us"&gt;&lt;em&gt;here&lt;/em&gt;&lt;/a&gt;&lt;em&gt; for more details.&amp;#160;&amp;#160; &lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Do remember that Inceptio Learning Solutions provide fully qualified UC Voice Ignite Workshops on-site at your company/training provider (almost) anywhere in the world (Contact &lt;a href="mailto:my.initials@inceptio.dk"&gt;my.initials@inceptio.dk&lt;/a&gt; for further info).&lt;/p&gt;  &lt;p&gt;Happy testing ;-)&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8600848-1517495525879227817?l=msgoodies.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=cbS-PiWXNpo:FSShzp8qfn0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=cbS-PiWXNpo:FSShzp8qfn0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=cbS-PiWXNpo:FSShzp8qfn0:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=cbS-PiWXNpo:FSShzp8qfn0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=cbS-PiWXNpo:FSShzp8qfn0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/msgoodies/~4/cbS-PiWXNpo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://msgoodies.blogspot.com/feeds/1517495525879227817/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=8600848&amp;postID=1517495525879227817&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/1517495525879227817?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/1517495525879227817?v=2" /><link rel="alternate" type="text/html" href="http://feeds.msgoodies.com/~r/blogspot/msgoodies/~3/cbS-PiWXNpo/beta-exam-71-404-ocs-2007-r2-uc-voice.html" title="BETA Exam 71-404 OCS 2007 R2 – UC Voice Specialization, Will Be Available January 25, 2010" /><author><name>Dennis Lundtoft Thomsen [MVP]</name><uri>http://www.blogger.com/profile/14713138671966546640</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="16206148123269563940" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://msgoodies.blogspot.com/2010/01/beta-exam-71-404-ocs-2007-r2-uc-voice.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEEDQX89fyp7ImA9WxBXEE0.&quot;"><id>tag:blogger.com,1999:blog-8600848.post-4810308194449268177</id><published>2010-01-20T13:01:00.001+01:00</published><updated>2010-01-20T16:51:10.167+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-20T16:51:10.167+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Communicator" /><category scheme="http://www.blogger.com/atom/ns#" term="Unified Communications" /><title>Maybe I should redefine “Office 2010 x64 fully working with OC” ?</title><content type="html">&lt;p&gt;I have now been working with Office 2010 x64 a week or so as per my post &lt;a title="Office 2010 x64 now fully working with OC and LiveMeeting Add-in" href="http://msgoodies.blogspot.com/2010/01/office-2010-x64-now-fully-working-with.html"&gt;Office 2010 x64 now fully working with OC and LiveMeeting Add-in&lt;/a&gt;. I have some intermittent problems though – when I log-in everything works fine, then on occassion I get an -&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_nKYobGDdbe4/S1bwnGib7eI/AAAAAAAAARM/F7c_QOJyXe4/s1600-h/image%5B4%5D.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_nKYobGDdbe4/S1bwnVaiOhI/AAAAAAAAARQ/Ar6eFuyS9Zs/image_thumb%5B2%5D.png?imgmax=800" width="644" height="236" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The problem appears after a while and then disappears again later. Integration seems to work fine except that this problem appears from time to time – did anyone get the same error or no error at all? (Perhaps with only one Exchange mailbox – I have two Exchange mailboxes which has other issues – so it may be part of this problem).&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8600848-4810308194449268177?l=msgoodies.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=Oc-i_R_aN5Y:1S6CfFaWav4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=Oc-i_R_aN5Y:1S6CfFaWav4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=Oc-i_R_aN5Y:1S6CfFaWav4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=Oc-i_R_aN5Y:1S6CfFaWav4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=Oc-i_R_aN5Y:1S6CfFaWav4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/msgoodies/~4/Oc-i_R_aN5Y" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://msgoodies.blogspot.com/feeds/4810308194449268177/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=8600848&amp;postID=4810308194449268177&amp;isPopup=true" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/4810308194449268177?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/4810308194449268177?v=2" /><link rel="alternate" type="text/html" href="http://feeds.msgoodies.com/~r/blogspot/msgoodies/~3/Oc-i_R_aN5Y/maybe-i-should-redefine-office-2010-x64.html" title="Maybe I should redefine “Office 2010 x64 fully working with OC” ?" /><author><name>Dennis Lundtoft Thomsen [MVP]</name><uri>http://www.blogger.com/profile/14713138671966546640</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="16206148123269563940" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://msgoodies.blogspot.com/2010/01/maybe-i-should-redefine-office-2010-x64.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkcFR3c_eCp7ImA9WxBQGE8.&quot;"><id>tag:blogger.com,1999:blog-8600848.post-686965934830121194</id><published>2010-01-18T16:20:00.001+01:00</published><updated>2010-01-18T16:20:16.940+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-18T16:20:16.940+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Script" /><category scheme="http://www.blogger.com/atom/ns#" term="PowerShell V2" /><category scheme="http://www.blogger.com/atom/ns#" term="PowerShell" /><title>Reference Variables</title><content type="html">&lt;p&gt;If you want to change a value inside a function, you have to use reference variables. They do not work the same way as they do in C, C# or VbScript.&lt;/p&gt;  &lt;p&gt;This is a simple example -&lt;/p&gt;  &lt;div id="codeSnippetWrapper"&gt;   &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt; a([ref]$v) {&lt;br /&gt;    &lt;span style="color: #006080"&gt;&amp;quot;a1 v=$($v.value)&amp;quot;&lt;/span&gt;&lt;br /&gt;    $v.value++&lt;br /&gt;    &lt;span style="color: #006080"&gt;&amp;quot;a2 v=$($v.value)&amp;quot;&lt;/span&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;$x=0&lt;br /&gt;&lt;span style="color: #006080"&gt;&amp;quot;begin x=$x&amp;quot;&lt;/span&gt;&lt;br /&gt;a ([ref]$x)&lt;br /&gt;&lt;span style="color: #006080"&gt;&amp;quot;end x=$x&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Note that must use [ref] when declaring the argument and also when calling. Note also that you must use ([ref]$x) in the call. Finally, you can see that [ref] actually converts the variable into a PSReference object and that you must use .Value to set/get the value.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;But what if you want to transfer the reference variable across multiple function calls? Well, the logical approach is this -&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div id="codeSnippetWrapper"&gt;&lt;br /&gt;  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt; b([ref]$v) {&lt;br /&gt;    &lt;span style="color: #006080"&gt;&amp;quot;b1 v=$($v.value)&amp;quot;&lt;/span&gt;&lt;br /&gt;    $v.value++&lt;br /&gt;    &lt;span style="color: #006080"&gt;&amp;quot;b2 v=$($v.value)&amp;quot;&lt;/span&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt; a([ref]$v) {&lt;br /&gt;    &lt;span style="color: #006080"&gt;&amp;quot;a1 v=$($v.value)&amp;quot;&lt;/span&gt;&lt;br /&gt;    $v.value+=10&lt;br /&gt;    b ([ref]$v)&lt;br /&gt;    &lt;span style="color: #006080"&gt;&amp;quot;a2 v=$($v.value)&amp;quot;&lt;/span&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;$x=0&lt;br /&gt;&lt;span style="color: #006080"&gt;&amp;quot;begin x=$x&amp;quot;&lt;/span&gt;&lt;br /&gt;a ([ref]$x)&lt;br /&gt;&lt;span style="color: #006080"&gt;&amp;quot;end x=$x&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;The pattern is simply repeated. Just like you would in other languages. But THIS WILL NOT WORK. As the first call creates a PSReference object, using ([ref]$v) creates another level of redirection and things will fail. The correct solution is -&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div id="codeSnippetWrapper"&gt;&lt;br /&gt;  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt; b([ref]$v) {&lt;br /&gt;    &lt;span style="color: #006080"&gt;&amp;quot;b1 v=$($v.value)&amp;quot;&lt;/span&gt;&lt;br /&gt;    $v.value++&lt;br /&gt;    &lt;span style="color: #006080"&gt;&amp;quot;b2 v=$($v.value)&amp;quot;&lt;/span&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt; a([ref]$v) {&lt;br /&gt;    &lt;span style="color: #006080"&gt;&amp;quot;a1 v=$($v.value)&amp;quot;&lt;/span&gt;&lt;br /&gt;    $v.value+=10&lt;br /&gt;    b $v&lt;br /&gt;    &lt;span style="color: #006080"&gt;&amp;quot;a2 v=$($v.value)&amp;quot;&lt;/span&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;$x=0&lt;br /&gt;&lt;span style="color: #006080"&gt;&amp;quot;begin x=$x&amp;quot;&lt;/span&gt;&lt;br /&gt;a ([ref]$x)&lt;br /&gt;&lt;span style="color: #006080"&gt;&amp;quot;end x=$x&amp;quot;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Note that in the second call, $v – a PSReference object – is simply transferred.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Bottom line: Avoid [ref] when you can. Return values or use scoped variables when possible. Remember that it is very easy to return multiple values from a function and assign them to different variables -&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div id="codeSnippetWrapper"&gt;&lt;br /&gt;  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt; c{&lt;br /&gt;    &lt;span style="color: #006080"&gt;&amp;quot;Per&amp;quot;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #006080"&gt;&amp;quot;Denmark&amp;quot;&lt;/span&gt;&lt;br /&gt;    44&lt;br /&gt;}&lt;br /&gt;$Name,$Country,$ShoeSize=c&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8600848-686965934830121194?l=msgoodies.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=QJ2kF9BKdDY:FP3L0-r1tU0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=QJ2kF9BKdDY:FP3L0-r1tU0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=QJ2kF9BKdDY:FP3L0-r1tU0:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=QJ2kF9BKdDY:FP3L0-r1tU0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=QJ2kF9BKdDY:FP3L0-r1tU0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/msgoodies/~4/QJ2kF9BKdDY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://msgoodies.blogspot.com/feeds/686965934830121194/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=8600848&amp;postID=686965934830121194&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/686965934830121194?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/686965934830121194?v=2" /><link rel="alternate" type="text/html" href="http://feeds.msgoodies.com/~r/blogspot/msgoodies/~3/QJ2kF9BKdDY/reference-variables.html" title="Reference Variables" /><author><name>Per Østergaard</name><uri>http://www.blogger.com/profile/12128790394950237942</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10445043458334841722" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://msgoodies.blogspot.com/2010/01/reference-variables.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEQGQHc5fip7ImA9WxBQFks.&quot;"><id>tag:blogger.com,1999:blog-8600848.post-4781462178239003196</id><published>2010-01-16T19:25:00.001+01:00</published><updated>2010-01-16T19:25:21.926+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-16T19:25:21.926+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Unified Communications" /><title>Simple script for extracting CDR records from OCS Monitoring Server</title><content type="html">&lt;p&gt;&lt;a href="http://aublumberg.blogspot.com"&gt;Andre Blumberg&lt;/a&gt; created instructions and a small script for extracting CDR records for outbound calls. Find it &lt;a href="http://aublumberg.blogspot.com/2010/01/usage-script-for-ocs-ev-outbound-calls.html"&gt;here&lt;/a&gt; and do remember to provide your feedback for him (So we all can benefit from your/Andre’s enhancements to the script ;-)&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8600848-4781462178239003196?l=msgoodies.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=7cB_o56WnAw:TvtojFpTtdc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=7cB_o56WnAw:TvtojFpTtdc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=7cB_o56WnAw:TvtojFpTtdc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=7cB_o56WnAw:TvtojFpTtdc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=7cB_o56WnAw:TvtojFpTtdc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/msgoodies/~4/7cB_o56WnAw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://msgoodies.blogspot.com/feeds/4781462178239003196/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=8600848&amp;postID=4781462178239003196&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/4781462178239003196?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/4781462178239003196?v=2" /><link rel="alternate" type="text/html" href="http://feeds.msgoodies.com/~r/blogspot/msgoodies/~3/7cB_o56WnAw/simple-script-for-extracting-cdr.html" title="Simple script for extracting CDR records from OCS Monitoring Server" /><author><name>Dennis Lundtoft Thomsen [MVP]</name><uri>http://www.blogger.com/profile/14713138671966546640</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="16206148123269563940" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://msgoodies.blogspot.com/2010/01/simple-script-for-extracting-cdr.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEUAQXc_fyp7ImA9WxBQFUs.&quot;"><id>tag:blogger.com,1999:blog-8600848.post-1392035209211048247</id><published>2010-01-15T13:14:00.001+01:00</published><updated>2010-01-15T15:37:20.947+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-15T15:37:20.947+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Communicator" /><category scheme="http://www.blogger.com/atom/ns#" term="Unified Communications" /><title>Office 2010 x64 now fully working with OC and LiveMeeting Add-in</title><content type="html">&lt;p&gt;First part of the solution was the January Office Communicator Update to &lt;a href=" http://bit.ly/68sbV1"&gt;6907.83&lt;/a&gt; that solved the Outlook integration issues/error (Which forced me to “downgrade” to 32 bit Office).&lt;/p&gt;  &lt;p&gt;The last part of this solution was the release of the 64-bit LiveMeeting add-in which can be found &lt;a href="http://bit.ly/5qjZun"&gt;here&lt;/a&gt; and while you’re at it the update to the LiveMeeting console can be found &lt;a href="http://bit.ly/6ycZ4j"&gt;here&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Before upgrading do remember that there is a problem with file uploading in LiveMeeting – only supported file format is native PowerPoint files. Also remember the &lt;a href="http://msgoodies.blogspot.com/2010/01/workaround-for-client-version-filtering.html"&gt;workaround&lt;/a&gt; to make updating OC running 64 bit OS work correctly.&lt;/p&gt;  &lt;p&gt;Happy installing/upgrading to 64 bit&amp;#160; ;-)&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8600848-1392035209211048247?l=msgoodies.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=m9-RR5c3F5M:BqSaYy8JQAY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=m9-RR5c3F5M:BqSaYy8JQAY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=m9-RR5c3F5M:BqSaYy8JQAY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=m9-RR5c3F5M:BqSaYy8JQAY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=m9-RR5c3F5M:BqSaYy8JQAY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/msgoodies/~4/m9-RR5c3F5M" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://msgoodies.blogspot.com/feeds/1392035209211048247/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=8600848&amp;postID=1392035209211048247&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/1392035209211048247?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/1392035209211048247?v=2" /><link rel="alternate" type="text/html" href="http://feeds.msgoodies.com/~r/blogspot/msgoodies/~3/m9-RR5c3F5M/office-2010-x64-now-fully-working-with.html" title="Office 2010 x64 now fully working with OC and LiveMeeting Add-in" /><author><name>Dennis Lundtoft Thomsen [MVP]</name><uri>http://www.blogger.com/profile/14713138671966546640</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="16206148123269563940" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://msgoodies.blogspot.com/2010/01/office-2010-x64-now-fully-working-with.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkEBSHk9fyp7ImA9WxBQFEw.&quot;"><id>tag:blogger.com,1999:blog-8600848.post-1171866717140569257</id><published>2010-01-13T21:30:00.001+01:00</published><updated>2010-01-13T21:30:59.767+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-13T21:30:59.767+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Communicator" /><category scheme="http://www.blogger.com/atom/ns#" term="Unified Communications" /><title>Workaround for Client Version Filtering problem using 32 bit OC on X64 OS</title><content type="html">&lt;p&gt;My colleague Claus-Ole also found and fixed the problem, but &lt;a href="http://michaelsneeringer.blogspot.com/"&gt;Michael Sneeringer&lt;/a&gt; (A OCS MCM) was kind enough (hint, hint) to describe the problem and solution in &lt;a href="http://michaelsneeringer.blogspot.com/2010/01/client-version-filtering-on-windows-x64.html"&gt;Client Version Filtering on Windows x64&lt;/a&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8600848-1171866717140569257?l=msgoodies.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=aGPDmbcN7n8:QgMM9RUVu_Q:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=aGPDmbcN7n8:QgMM9RUVu_Q:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=aGPDmbcN7n8:QgMM9RUVu_Q:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=aGPDmbcN7n8:QgMM9RUVu_Q:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=aGPDmbcN7n8:QgMM9RUVu_Q:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/msgoodies/~4/aGPDmbcN7n8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://msgoodies.blogspot.com/feeds/1171866717140569257/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=8600848&amp;postID=1171866717140569257&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/1171866717140569257?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/1171866717140569257?v=2" /><link rel="alternate" type="text/html" href="http://feeds.msgoodies.com/~r/blogspot/msgoodies/~3/aGPDmbcN7n8/workaround-for-client-version-filtering.html" title="Workaround for Client Version Filtering problem using 32 bit OC on X64 OS" /><author><name>Dennis Lundtoft Thomsen [MVP]</name><uri>http://www.blogger.com/profile/14713138671966546640</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="16206148123269563940" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://msgoodies.blogspot.com/2010/01/workaround-for-client-version-filtering.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkQHRHY-cCp7ImA9WxBRGEk.&quot;"><id>tag:blogger.com,1999:blog-8600848.post-3820318956957448573</id><published>2010-01-07T08:10:00.001+01:00</published><updated>2010-01-07T08:12:15.858+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-07T08:12:15.858+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Unified Communications" /><title>OCS Wave 14 features</title><content type="html">&lt;p&gt;FYI - Curtis Johnstone has revealed some of the essential OCS Wave 14 features – find them in his post &lt;a href="http://blog.insideocs.com/2009/12/29/ocs-in-2010-the-uc-14-wave/"&gt;OCS in 2010 - The UC 14 Wave&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;As an MVP I’m under NDA so I can’t add to the above, but what I can say is that the future for OCS looks promising ;-)&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8600848-3820318956957448573?l=msgoodies.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=5vW8MXJfOnU:n_2yxOCV4Zs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=5vW8MXJfOnU:n_2yxOCV4Zs:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=5vW8MXJfOnU:n_2yxOCV4Zs:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=5vW8MXJfOnU:n_2yxOCV4Zs:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=5vW8MXJfOnU:n_2yxOCV4Zs:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/msgoodies/~4/5vW8MXJfOnU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://msgoodies.blogspot.com/feeds/3820318956957448573/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=8600848&amp;postID=3820318956957448573&amp;isPopup=true" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/3820318956957448573?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/3820318956957448573?v=2" /><link rel="alternate" type="text/html" href="http://feeds.msgoodies.com/~r/blogspot/msgoodies/~3/5vW8MXJfOnU/ocs-wave-14-features.html" title="OCS Wave 14 features" /><author><name>Dennis Lundtoft Thomsen [MVP]</name><uri>http://www.blogger.com/profile/14713138671966546640</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="16206148123269563940" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://msgoodies.blogspot.com/2010/01/ocs-wave-14-features.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkQHQ3g_cCp7ImA9WxBTEkU.&quot;"><id>tag:blogger.com,1999:blog-8600848.post-7925225693548189274</id><published>2009-12-08T14:44:00.001+01:00</published><updated>2009-12-08T14:52:12.648+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-08T14:52:12.648+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Telephony" /><category scheme="http://www.blogger.com/atom/ns#" term="Unified Communications" /><title>MS PM comments on CUCiMOC(kup) and the joint Cisco / Microsoft support statement</title><content type="html">&lt;p&gt;Take a look at the blog post &lt;a href="http://blogs.technet.com/uc/archive/2009/12/03/Cisco_3A00_-Just-Like-Any-Other-Office-Communications-Server-ISV_3F00_.aspx"&gt;Cisco: Just Like Any Other Office Communications Server ISV?&lt;/a&gt;&amp;#160;&amp;#160; for some official words (finally) from Microsoft on Cisco’s CUCiMOC and Microsoft Office Communications Server integration.&lt;/p&gt;  &lt;p&gt;He hits the nail on the many questions I have raised at customers, including the supportability problems in terms of integration at the desktop level with program version dependencies and especially the (lost) user experience when using CUCiMOC. Furthermore Currently Cisco is setting a Version 8.0 / Q3 CY10 date for &lt;a href="http://www.cisco.com/en/US/prod/collateral/voicesw/ps6789/ps7046/ps7282/product_bulletin_c25-563280_ps556_Products_Bulletin.html"&gt;supporting Windows 7&lt;/a&gt; (And also with limited support for 64 bit).&lt;/p&gt;  &lt;p&gt;Furthermore (as he also notes) it is important to note the dependencies and lost features (RDP Sharing, Audio/Video/Webconferencing etc – that you would need to buy from Cisco).&lt;/p&gt;  &lt;p&gt;Read the joint support statement &lt;a href="http://go.microsoft.com/?linkid=9700129"&gt;here&lt;/a&gt;&amp;#160; and Haberkorns blog &lt;a href="http://blogs.technet.com/uc/archive/2009/12/03/Cisco_3A00_-Just-Like-Any-Other-Office-Communications-Server-ISV_3F00_.aspx"&gt;post&lt;/a&gt; for more info.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8600848-7925225693548189274?l=msgoodies.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=t-ofSyrBer0:f85GQ-fUI-k:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=t-ofSyrBer0:f85GQ-fUI-k:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=t-ofSyrBer0:f85GQ-fUI-k:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=t-ofSyrBer0:f85GQ-fUI-k:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=t-ofSyrBer0:f85GQ-fUI-k:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/msgoodies/~4/t-ofSyrBer0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://msgoodies.blogspot.com/feeds/7925225693548189274/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=8600848&amp;postID=7925225693548189274&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/7925225693548189274?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/7925225693548189274?v=2" /><link rel="alternate" type="text/html" href="http://feeds.msgoodies.com/~r/blogspot/msgoodies/~3/t-ofSyrBer0/ms-pm-comments-on-cucimockup-and-joint.html" title="MS PM comments on CUCiMOC(kup) and the joint Cisco / Microsoft support statement" /><author><name>Dennis Lundtoft Thomsen [MVP]</name><uri>http://www.blogger.com/profile/14713138671966546640</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="16206148123269563940" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://msgoodies.blogspot.com/2009/12/ms-pm-comments-on-cucimockup-and-joint.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEQCRnY9eip7ImA9WxNbFks.&quot;"><id>tag:blogger.com,1999:blog-8600848.post-587090540748227651</id><published>2009-11-19T21:26:00.001+01:00</published><updated>2009-11-19T21:26:07.862+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-19T21:26:07.862+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="PowerShell V2" /><title>Messing with output from Format-Table</title><content type="html">&lt;p&gt;Found at &lt;a href="http://psobject.codeplex.com/Thread/View.aspx?ThreadId=71064"&gt;question&lt;/a&gt; at psobject.codeplex.com: &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;I was wondering if I could write the outout without any blank spaces between 2 fields. For example, I am using hash tables to display 2 columns from dir output. But it always comes up with a blank space between those 2 data elements. I need this to generate a fixed format output with data elements only and no spaces in between. Any help is greatly appreciated.&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;$column1 = @{expression=&amp;quot;mode&amp;quot;;width=5;label=&amp;quot;mode&amp;quot;;alignment=&amp;quot;left&amp;quot;}       &lt;br /&gt;$column2 = @{expression=&amp;quot;name&amp;quot;;width=10;label=&amp;quot;name&amp;quot;;alignment=&amp;quot;left&amp;quot;}&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;$dir |format-table $column1,$column2&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;$mode&amp;#160; name       &lt;br /&gt;----&amp;#160; ----        &lt;br /&gt;d---- download        &lt;br /&gt;d---- extract        &lt;br /&gt;-a--- alias.txt        &lt;br /&gt;-a--- Compute...        &lt;br /&gt;-a--- execute...        &lt;br /&gt;-a--- get_dn.ps1        &lt;br /&gt;-a--- hh&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Well, it can be done. I looked into the objects the Format-Table spit out and after some poking around, I came up with this -&lt;/p&gt;  &lt;div id="codeSnippetWrapper"&gt;   &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;$column1 = @{expression=&lt;span style="color: #006080"&gt;&amp;quot;mode&amp;quot;&lt;/span&gt;;width=5;label=&lt;span style="color: #006080"&gt;&amp;quot;mode&amp;quot;&lt;/span&gt;;alignment=&lt;span style="color: #006080"&gt;&amp;quot;left&amp;quot;&lt;/span&gt;}&lt;br /&gt;$column2 = @{expression=&lt;span style="color: #006080"&gt;&amp;quot;name&amp;quot;&lt;/span&gt;;width=20;label=&lt;span style="color: #006080"&gt;&amp;quot;name&amp;quot;&lt;/span&gt;;alignment=&lt;span style="color: #006080"&gt;&amp;quot;left&amp;quot;&lt;/span&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000"&gt;# Save widths, all non-fixed length value should specify a width&lt;/span&gt;&lt;br /&gt;$widths=@{}&lt;br /&gt;dir | format-table $column1,@{l=&lt;span style="color: #006080"&gt;&amp;quot;|&amp;quot;&lt;/span&gt;;e={&lt;span style="color: #006080"&gt;&amp;quot;|&amp;quot;&lt;/span&gt;}},$column2 | &lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt; {&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; ($_.pstypenames[0] &lt;span style="color: #cc6633"&gt;-eq&lt;/span&gt; &lt;span style="color: #006080"&gt;&amp;quot;Microsoft.PowerShell.Commands.Internal.Format.FormatEntryData&amp;quot;&lt;/span&gt;) {&lt;br /&gt;        &lt;span style="color: #008000"&gt;# Capture the values and convert them to one value&lt;/span&gt;&lt;br /&gt;        $value=&lt;span style="color: #006080"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;br /&gt;        $count=$_.formatentryinfo.formatPropertyFieldList.count&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt;($i &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; 0..($count-1)) {&lt;br /&gt;            $value+=$_.formatentryinfo.formatPropertyFieldList.item($i).propertyvalue.ToString().padright($widths.$i)&lt;br /&gt;        }&lt;br /&gt;        &lt;span style="color: #008000"&gt;# Delete all but one field&lt;/span&gt;&lt;br /&gt;        $_.formatentryinfo.formatPropertyFieldList.removerange(1,$count-1)&lt;br /&gt;        &lt;span style="color: #008000"&gt;# and update its value&lt;/span&gt;&lt;br /&gt;        $_.formatentryinfo.formatPropertyFieldList.item(0).propertyValue=$value&lt;br /&gt;        $_&lt;br /&gt;     }&lt;br /&gt;     &lt;span style="color: #0000ff"&gt;elseif&lt;/span&gt; ($_.pstypenames[0] &lt;span style="color: #cc6633"&gt;-eq&lt;/span&gt; &lt;span style="color: #006080"&gt;&amp;quot;Microsoft.PowerShell.Commands.Internal.Format.FormatStartData&amp;quot;&lt;/span&gt;) {&lt;br /&gt;        &lt;span style="color: #008000"&gt;# Capture the headers and convert them to one header&lt;/span&gt;&lt;br /&gt;        $value=&lt;span style="color: #006080"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;br /&gt;        $width=0&lt;br /&gt;        &lt;br /&gt;        $count=$_.shapeinfo.tablecolumninfolist.count&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt;($i &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; 0..($count-1)) {&lt;br /&gt;            $w=$_.shapeinfo.tablecolumninfolist.item($i).width&lt;br /&gt;            $width+=$w&lt;br /&gt;            $widths.$i=$w&lt;br /&gt;            $value+=$_.shapeinfo.tablecolumninfolist.item($i).propertyname.ToString().padright($w)&lt;br /&gt;        }&lt;br /&gt;        &lt;span style="color: #008000"&gt;# Delete all but one field&lt;/span&gt;&lt;br /&gt;        $_.shapeinfo.tablecolumninfolist.removerange(1,$count-1)&lt;br /&gt;        &lt;span style="color: #008000"&gt;# and update its value&lt;/span&gt;&lt;br /&gt;        $_.shapeinfo.tablecolumninfolist.item(0).propertyName=$value&lt;br /&gt;        $_.shapeinfo.tablecolumninfolist.item(0).width=$width&lt;br /&gt;        $_&lt;br /&gt;     }&lt;br /&gt;     &lt;span style="color: #0000ff"&gt;else&lt;/span&gt;&lt;br /&gt;     {&lt;br /&gt;        $_&lt;br /&gt;     }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;If you like it, convert it to a function as en exercise ;)&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Happy formatting!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8600848-587090540748227651?l=msgoodies.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=Vw-nK2CtfM4:-bpWIvcTk5c:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=Vw-nK2CtfM4:-bpWIvcTk5c:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=Vw-nK2CtfM4:-bpWIvcTk5c:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=Vw-nK2CtfM4:-bpWIvcTk5c:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=Vw-nK2CtfM4:-bpWIvcTk5c:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/msgoodies/~4/Vw-nK2CtfM4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://msgoodies.blogspot.com/feeds/587090540748227651/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=8600848&amp;postID=587090540748227651&amp;isPopup=true" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/587090540748227651?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/587090540748227651?v=2" /><link rel="alternate" type="text/html" href="http://feeds.msgoodies.com/~r/blogspot/msgoodies/~3/Vw-nK2CtfM4/messing-with-output-from-format-table.html" title="Messing with output from Format-Table" /><author><name>Per Østergaard</name><uri>http://www.blogger.com/profile/12128790394950237942</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10445043458334841722" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://msgoodies.blogspot.com/2009/11/messing-with-output-from-format-table.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkQHSXY7fCp7ImA9WxNbFkk.&quot;"><id>tag:blogger.com,1999:blog-8600848.post-7960011918149302316</id><published>2009-11-19T16:25:00.001+01:00</published><updated>2009-11-19T16:25:38.804+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-19T16:25:38.804+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="PowerShell V2" /><title>PS Remoting to Home Server</title><content type="html">&lt;p&gt;I wanted to PowerShell remote to my home server, but as it is – for the good reason, that it is impossible – not in the domain of my PC, I have to add it to TrustedHosts.&lt;/p&gt;  &lt;p&gt;This is my story.&lt;/p&gt;  &lt;p&gt;First, I enabled PS remoting on the home server with a simple&lt;/p&gt;  &lt;div id="codeSnippetWrapper"&gt;   &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;Enable-PSRemoting&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Next, I attempted to access the server&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div id="codeSnippetWrapper"&gt;&lt;br /&gt;  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;enter-pssession server -cre server\administrator&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;By doing so, I received a very long error message.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;I tried with –authentication negotiate. This reduced the error message to 10 lines ;) It told me to configure TrustedHosts with Winrm.cmd.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;I looked at Winrm.cmd, but that looked very complicated and this is at the end of the day. Luckily, the WSMAN drive popped up in my mind. I switched to my administrative account and did this&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div id="codeSnippetWrapper"&gt;&lt;br /&gt;  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;PS C:\Users\user&amp;gt; cd wsman:&lt;br /&gt;PS WSMan:\&amp;gt; dir&lt;br /&gt;&lt;br /&gt;   WSManConfig:&lt;br /&gt;&lt;br /&gt;ComputerName                                  Type&lt;br /&gt;------------                                  ----&lt;br /&gt;localhost                                     Container&lt;br /&gt;&lt;br /&gt;PS WSMan:\&amp;gt; cd .\localhost&lt;br /&gt;PS WSMan:\localhost&amp;gt; dir&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   WSManConfig: Microsoft.WSMan.Management\WSMan::localhost&lt;br /&gt;&lt;br /&gt;Name                      Value                                                             Type&lt;br /&gt;----                      -----                                                             ----&lt;br /&gt;MaxEnvelopeSizekb         150                                                               System.String&lt;br /&gt;MaxTimeoutms              60000                                                             System.String&lt;br /&gt;MaxBatchItems             32000                                                             System.String&lt;br /&gt;MaxProviderRequests       4294967295                                                        System.String&lt;br /&gt;Client                                                                                      Container&lt;br /&gt;Service                                                                                     Container&lt;br /&gt;Shell                                                                                       Container&lt;br /&gt;Listener                                                                                    Container&lt;br /&gt;Plugin                                                                                      Container&lt;br /&gt;ClientCertificate                                                                           Container&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;PS WSMan:\localhost&amp;gt; cd .\Client&lt;br /&gt;PS WSMan:\localhost\Client&amp;gt; dir&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   WSManConfig: Microsoft.WSMan.Management\WSMan::localhost\Client&lt;br /&gt;&lt;br /&gt;Name                      Value                                                             Type&lt;br /&gt;----                      -----                                                             ----&lt;br /&gt;NetworkDelayms            5000                                                              System.String&lt;br /&gt;URLPrefix                 wsman                                                             System.String&lt;br /&gt;AllowUnencrypted          false                                                             System.String&lt;br /&gt;Auth                                                                                        Container&lt;br /&gt;DefaultPorts                                                                                Container&lt;br /&gt;TrustedHosts                                                                                System.String&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;PS WSMan:\localhost\Client&amp;gt; Set-Item .\TrustedHosts server&lt;br /&gt;&lt;br /&gt;WinRM Security Configuration.&lt;br /&gt;This command modifies the TrustedHosts list &lt;span style="color: #0000ff"&gt;for&lt;/span&gt; the WinRM client. The computers &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; the TrustedHosts list might not be authenticated. The&lt;br /&gt;client might send credential information to these computers. Are you sure that you want to modify this list?&lt;br /&gt;[Y] Yes  [N] No  [S] Suspend  [?] Help (&lt;span style="color: #0000ff"&gt;default&lt;/span&gt; is &lt;span style="color: #006080"&gt;&amp;quot;Y&amp;quot;&lt;/span&gt;): y&lt;br /&gt;PS WSMan:\localhost\Client&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Back to my standard user&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div id="codeSnippetWrapper"&gt;&lt;br /&gt;  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;194 WSMan:\localhost&amp;gt; enter-pssession server -cre server\administrator&lt;br /&gt;[server]: PS C:\Documents and Settings\Administrator\My Documents&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;and it worked.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Happy remoting&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8600848-7960011918149302316?l=msgoodies.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=S4LgCr7_bBI:6TosDOyZP7Q:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=S4LgCr7_bBI:6TosDOyZP7Q:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=S4LgCr7_bBI:6TosDOyZP7Q:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=S4LgCr7_bBI:6TosDOyZP7Q:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=S4LgCr7_bBI:6TosDOyZP7Q:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/msgoodies/~4/S4LgCr7_bBI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://msgoodies.blogspot.com/feeds/7960011918149302316/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=8600848&amp;postID=7960011918149302316&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/7960011918149302316?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/7960011918149302316?v=2" /><link rel="alternate" type="text/html" href="http://feeds.msgoodies.com/~r/blogspot/msgoodies/~3/S4LgCr7_bBI/ps-remoting-to-home-server.html" title="PS Remoting to Home Server" /><author><name>Per Østergaard</name><uri>http://www.blogger.com/profile/12128790394950237942</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10445043458334841722" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://msgoodies.blogspot.com/2009/11/ps-remoting-to-home-server.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkECR3cycSp7ImA9WxNbFEQ.&quot;"><id>tag:blogger.com,1999:blog-8600848.post-6807207723432069737</id><published>2009-11-17T21:44:00.001+01:00</published><updated>2009-11-17T21:44:26.999+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-17T21:44:26.999+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Security" /><title>Laissez-Faire Access Control</title><content type="html">&lt;p&gt;&lt;a href="http://www.schneier.com/index.html"&gt;Bruce Schneier&lt;/a&gt; have an abstract of a paper which claims that enabling users to get the access they need while auditing the access is better than a centrally controlled setup.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.schneier.com/blog/archives/2009/11/laissez-faire_a.html"&gt;Read it for yourself&lt;/a&gt; – at least read the abstract.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8600848-6807207723432069737?l=msgoodies.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=nUvljGA9GBU:0D-0EPAYldw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=nUvljGA9GBU:0D-0EPAYldw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=nUvljGA9GBU:0D-0EPAYldw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=nUvljGA9GBU:0D-0EPAYldw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=nUvljGA9GBU:0D-0EPAYldw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/msgoodies/~4/nUvljGA9GBU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://msgoodies.blogspot.com/feeds/6807207723432069737/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=8600848&amp;postID=6807207723432069737&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/6807207723432069737?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/6807207723432069737?v=2" /><link rel="alternate" type="text/html" href="http://feeds.msgoodies.com/~r/blogspot/msgoodies/~3/nUvljGA9GBU/laissez-faire-access-control.html" title="Laissez-Faire Access Control" /><author><name>Per Østergaard</name><uri>http://www.blogger.com/profile/12128790394950237942</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10445043458334841722" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://msgoodies.blogspot.com/2009/11/laissez-faire-access-control.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEMHR3s5fip7ImA9WxNbE0o.&quot;"><id>tag:blogger.com,1999:blog-8600848.post-5480030230933663676</id><published>2009-11-16T14:00:00.001+01:00</published><updated>2009-11-16T14:00:36.526+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-16T14:00:36.526+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="PowerShell V2" /><category scheme="http://www.blogger.com/atom/ns#" term="PowerShell" /><category scheme="http://www.blogger.com/atom/ns#" term="Exchange" /><title>PowerShell 2.0 *is* supported for Exchange 2007 SP2</title><content type="html">&lt;p&gt;In case you wondered, the greatly improved PowerShell 2.0 &lt;a href="http://msexchangeteam.com/comments/452361.aspx"&gt;can be installed&lt;/a&gt; on servers running Exchange 2007. But you must be running Service Pack 2.&lt;/p&gt;  &lt;p&gt;BTW: You cannot find PowerShell v2 on &lt;a href="http://www.microsoft.com/downloads"&gt;www.microsoft.com/downloads&lt;/a&gt;. You have to go to &lt;a title="http://support.microsoft.com/kb/968929" href="http://support.microsoft.com/kb/968929"&gt;http://support.microsoft.com/kb/968929&lt;/a&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8600848-5480030230933663676?l=msgoodies.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=5EVk17SDqdY:XdxCVitNH_8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=5EVk17SDqdY:XdxCVitNH_8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=5EVk17SDqdY:XdxCVitNH_8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=5EVk17SDqdY:XdxCVitNH_8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=5EVk17SDqdY:XdxCVitNH_8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/msgoodies/~4/5EVk17SDqdY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://msgoodies.blogspot.com/feeds/5480030230933663676/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=8600848&amp;postID=5480030230933663676&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/5480030230933663676?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/5480030230933663676?v=2" /><link rel="alternate" type="text/html" href="http://feeds.msgoodies.com/~r/blogspot/msgoodies/~3/5EVk17SDqdY/powershell-20-is-supported-for-exchange.html" title="PowerShell 2.0 *is* supported for Exchange 2007 SP2" /><author><name>Per Østergaard</name><uri>http://www.blogger.com/profile/12128790394950237942</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10445043458334841722" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://msgoodies.blogspot.com/2009/11/powershell-20-is-supported-for-exchange.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkACRX0ycCp7ImA9WxNbEEw.&quot;"><id>tag:blogger.com,1999:blog-8600848.post-315933997345056021</id><published>2009-11-12T09:32:00.001+01:00</published><updated>2009-11-12T09:32:44.398+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-12T09:32:44.398+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Exchange" /><category scheme="http://www.blogger.com/atom/ns#" term="Unified Communications" /><title>Implementing OCS presence in Outlook Live Server (a.k.a. Exchange 2010 OWA)</title><content type="html">&lt;p&gt;The tools required to implement OCS presence in Exchange 2010 OWA has been released &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=0a3d9dba-8b55-4fb4-a77d-4ad969fff614"&gt;Microsoft Office Communications Server 2007 R2 Web Trust Tool&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=ca107ab1-63c8-4c6a-816d-17961393d2b8"&gt;Microsoft Office Communications Server 2007 R2 Web Service Provider&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;And instead of me showing how to do it, I would recommend you checkout the blog post &lt;a href="http://chrislehr.com/2009/11/implementing-integrated-ocs-in-owa-2010.htm"&gt;Implementing integrated OCS in Exchange 2010&lt;/a&gt; from &lt;a href="http://chrislehr.com/blog.htm"&gt;Chris and Robin’s Technology Blog&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;One addition I have to their post is that the reference material for the OCS Web Service Provider can be found on the OCS TechNet site &lt;a href="http://technet.microsoft.com/en-us/library/ee692310(office.13).aspx"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8600848-315933997345056021?l=msgoodies.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=AIEkoceWMj0:Ru2_-BhwFQs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=AIEkoceWMj0:Ru2_-BhwFQs:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=AIEkoceWMj0:Ru2_-BhwFQs:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=AIEkoceWMj0:Ru2_-BhwFQs:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=AIEkoceWMj0:Ru2_-BhwFQs:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/msgoodies/~4/AIEkoceWMj0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://msgoodies.blogspot.com/feeds/315933997345056021/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=8600848&amp;postID=315933997345056021&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/315933997345056021?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/315933997345056021?v=2" /><link rel="alternate" type="text/html" href="http://feeds.msgoodies.com/~r/blogspot/msgoodies/~3/AIEkoceWMj0/implementing-ocs-presence-in-outlook.html" title="Implementing OCS presence in Outlook Live Server (a.k.a. Exchange 2010 OWA)" /><author><name>Dennis Lundtoft Thomsen [MVP]</name><uri>http://www.blogger.com/profile/14713138671966546640</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="16206148123269563940" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://msgoodies.blogspot.com/2009/11/implementing-ocs-presence-in-outlook.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0QASXs-eip7ImA9WxNUGU4.&quot;"><id>tag:blogger.com,1999:blog-8600848.post-3313553041104659080</id><published>2009-11-11T10:22:00.001+01:00</published><updated>2009-11-11T10:22:28.552+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-11T10:22:28.552+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="PowerShell V2" /><title>Picking files with the mouse using Get-DroppedFile</title><content type="html">&lt;p&gt;Sometimes (often?) it is just easier picking your files with the mouse. As long as the files are in one folder that is not that hard, but if you have files scattered all around that is tougher. Also right-clicking and copy-as-path is annoying.&lt;/p&gt;  &lt;p&gt;To make this easier, I have created a small drop box function. A small transparent window will be shows and when you drop files on it, those files will be send to the output pipeline where you can do the rest of your processing.&lt;/p&gt;  &lt;p&gt;I made the forms part using Visual C#. Relativily trivial. And Add-Type enabled me to embed it into my script. The hard part was making it async so that files would appear ín the output pipeline as soon as they were dropped. I had to resort to good old VB5-style DoEvents (just revealed my age, I guess). If you can come up with a non-polling solution, please let me know.&lt;/p&gt;  &lt;p&gt;What it can be used for -&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Testing scripts with different files&lt;/li&gt;    &lt;li&gt;Move photos to a folder, converting them as they are moved&lt;/li&gt;    &lt;li&gt;Renaming files&lt;/li&gt;    &lt;li&gt;Compressing files&lt;/li&gt;    &lt;li&gt;continue the list yourself&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;All tasks where you – the human – can make the decision about what to do with a file are relevant.&lt;/p&gt;  &lt;p&gt;With PowerShell v2 being available on all platform, do I have to say, that this is a V2-only script?&lt;/p&gt;  &lt;p&gt;Please, read the comments in the script for further information.&lt;/p&gt;  &lt;p&gt;Get-DroppedFile.ps1&lt;/p&gt;  &lt;pre style="margin: 0in 10pt; font-family: lucida console; font-size: 10pt"&gt;&lt;br /&gt;&lt;span style="color: #006400"&gt;&amp;lt;#&lt;br /&gt;.Synopsis&lt;br /&gt;    Create a drop box window and output the files dropped to the pipeline&lt;br /&gt;.Description&lt;br /&gt;    Create a drop box window. When files are dropped, they are send to the output pipeline right away.&lt;br /&gt;    Stop Get-DroppedFile by closing the window.&lt;br /&gt;.Inputs&lt;br /&gt;    None&lt;br /&gt;.Outputs&lt;br /&gt;    File names (-asText), IO.DirectoryInfo or IO.FileInfo objects&lt;br /&gt;.Example&lt;br /&gt;    Get-DroppedFile | Copy -destination e:\ -passthru | foreach { $x.attributes=$x.Attributes.ToString()+&amp;quot;,readonly&amp;quot; } &lt;br /&gt;    Copy dropped files to e:\ and set the readonly bit&lt;br /&gt;#&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800000"&gt;param&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000"&gt;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #008080"&gt;[string]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000"&gt;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #006400"&gt;# The caption of the drop box&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000"&gt;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #ff4500"&gt;$Caption&lt;/span&gt;&lt;span style="color: #cd853f"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000"&gt;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #008080"&gt;[switch]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000"&gt;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #006400"&gt;# Return file names (full path) as text&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000"&gt;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #ff4500"&gt;$AsText&lt;/span&gt;&lt;span style="color: #cd853f"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000"&gt;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #008080"&gt;[switch]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000"&gt;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #006400"&gt;# Recurse directories, I.E. the folder itself is not returned, only its children&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000"&gt;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #ff4500"&gt;$Recurse&lt;/span&gt;&lt;span style="color: #cd853f"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000"&gt;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #008080"&gt;[switch]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000"&gt;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #006400"&gt;# (Internal switch used to detect -sta invocation)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000"&gt;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #ff4500"&gt;$_InternalReinvoked&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #006400"&gt;# Create the script code - direct execution or SingleThreadedApartment is determined later&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #ff4500"&gt;$script&lt;/span&gt;&lt;span style="color: #cd853f"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #ff4500"&gt;$loaded&lt;/span&gt;&lt;span style="color: #cd853f"&gt;=&lt;/span&gt;&lt;span style="color: #ff4500"&gt;$false&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800000"&gt;try&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #000000"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #ff4500"&gt;$null&lt;/span&gt;&lt;span style="color: #cd853f"&gt;=&lt;/span&gt;&lt;span style="color: #008080"&gt;[system.type]&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #8b0000"&gt;&amp;quot;Get_DroppedFile.Form1&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #ff4500"&gt;$loaded&lt;/span&gt;&lt;span style="color: #cd853f"&gt;=&lt;/span&gt;&lt;span style="color: #ff4500"&gt;$true&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800000"&gt;catch&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #000000"&gt;{&lt;/span&gt;&lt;span style="color: #000000"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #006400"&gt;# The form code. Created in Visual C# 2008 Express and slightly adopted&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800000"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #cd853f"&gt;!&lt;/span&gt;&lt;span style="color: #ff4500"&gt;$loaded&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #000000"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;add-type&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #000080"&gt;-TypeDefinition&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #8b0000"&gt;@'&lt;br /&gt;&lt;br /&gt;using System;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;using System.ComponentModel;&lt;br /&gt;using System.Drawing;&lt;br /&gt;using System.Windows.Forms;&lt;br /&gt;&lt;br /&gt;namespace Get_DroppedFile&lt;br /&gt;{&lt;br /&gt;    public partial class Form1 : Form&lt;br /&gt;    {&lt;br /&gt;        Color defaultColor;&lt;br /&gt;        public Form1()&lt;br /&gt;        {&lt;br /&gt;            InitializeComponent();&lt;br /&gt;            defaultColor = this.BackColor;&lt;br /&gt;            &lt;br /&gt;        }&lt;br /&gt;        &lt;br /&gt;        public void avoidWarning()&lt;br /&gt;	{&lt;br /&gt;	}&lt;br /&gt;      &lt;br /&gt;        private void Form1_DragDrop(object sender, DragEventArgs e)&lt;br /&gt;        {&lt;br /&gt;            // Back to default color&lt;br /&gt;            this.BackColor = defaultColor;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        private void Form1_DragOver(object sender, DragEventArgs e)&lt;br /&gt;        {&lt;br /&gt;            // Start dragdrop&lt;br /&gt;            e.Effect = DragDropEffects.Copy;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        private void Form1_DragEnter(object sender, DragEventArgs e)&lt;br /&gt;        {&lt;br /&gt;            // visual feedback in drag&lt;br /&gt;            this.BackColor = Color.FromArgb(defaultColor.ToArgb() - 0x101010);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        private void Form1_DragLeave(object sender, EventArgs e)&lt;br /&gt;        {&lt;br /&gt;            // restore color&lt;br /&gt;            this.BackColor = defaultColor;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;namespace Get_DroppedFile&lt;br /&gt;{&lt;br /&gt;    partial class Form1&lt;br /&gt;    {&lt;br /&gt;        /// &amp;lt;summary&amp;gt;&lt;br /&gt;        /// Required designer variable.&lt;br /&gt;        /// &amp;lt;/summary&amp;gt;&lt;br /&gt;        private System.ComponentModel.IContainer components = null;&lt;br /&gt;&lt;br /&gt;        /// &amp;lt;summary&amp;gt;&lt;br /&gt;        /// Clean up any resources being used.&lt;br /&gt;        /// &amp;lt;/summary&amp;gt;&lt;br /&gt;        /// &amp;lt;param name=&amp;quot;disposing&amp;quot;&amp;gt;true if managed resources should be disposed; otherwise, false.&amp;lt;/param&amp;gt;&lt;br /&gt;        protected override void Dispose(bool disposing)&lt;br /&gt;        {&lt;br /&gt;            if (disposing &amp;amp;&amp;amp; (components != null))&lt;br /&gt;            {&lt;br /&gt;                components.Dispose();&lt;br /&gt;            }&lt;br /&gt;            base.Dispose(disposing);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        #region Windows Form Designer generated code&lt;br /&gt;&lt;br /&gt;        /// &amp;lt;summary&amp;gt;&lt;br /&gt;        /// Required method for Designer support - do not modify&lt;br /&gt;        /// the contents of this method with the code editor.&lt;br /&gt;        /// &amp;lt;/summary&amp;gt;&lt;br /&gt;        private void InitializeComponent()&lt;br /&gt;        {&lt;br /&gt;            this.SuspendLayout();&lt;br /&gt;            // &lt;br /&gt;            // Form1&lt;br /&gt;            // &lt;br /&gt;            this.AllowDrop = true;&lt;br /&gt;            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);&lt;br /&gt;            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;&lt;br /&gt;            this.BackColor = System.Drawing.SystemColors.ActiveCaption;&lt;br /&gt;            this.ClientSize = new System.Drawing.Size(116, 49);&lt;br /&gt;            this.Cursor = System.Windows.Forms.Cursors.Default;&lt;br /&gt;            this.MaximizeBox = false;&lt;br /&gt;            this.MinimizeBox = false;&lt;br /&gt;            this.Name = &amp;quot;Form1&amp;quot;;&lt;br /&gt;            this.Opacity = 0.75;&lt;br /&gt;            this.ShowIcon = false;&lt;br /&gt;            this.Text = &amp;quot;Drop Box&amp;quot;;&lt;br /&gt;            this.TopMost = true;&lt;br /&gt;            //this.Load += new System.EventHandler(this.Form1_Load);&lt;br /&gt;            this.DragLeave += new System.EventHandler(this.Form1_DragLeave);&lt;br /&gt;            this.DragDrop += new System.Windows.Forms.DragEventHandler(this.Form1_DragDrop);&lt;br /&gt;            this.DragEnter += new System.Windows.Forms.DragEventHandler(this.Form1_DragEnter);&lt;br /&gt;            this.DragOver += new System.Windows.Forms.DragEventHandler(this.Form1_DragOver);&lt;br /&gt;            this.ResumeLayout(false);&lt;br /&gt;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        #endregion&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;'@&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #000080"&gt;-verbose&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #000080"&gt;-ReferencedAssemblies&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #8a2be2"&gt;system.drawing&lt;/span&gt;&lt;span style="color: #cd853f"&gt;,&lt;/span&gt;&lt;span style="color: #8a2be2"&gt;system.windows.forms&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #006400"&gt;# Create our form object&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #ff4500"&gt;$form&lt;/span&gt;&lt;span style="color: #cd853f"&gt;=&lt;/span&gt;&lt;span style="color: #0000ff"&gt;New-object&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #8a2be2"&gt;get_droppedfile.form1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #006400"&gt;# Get rid of any events leftover&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;get-event&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #8a2be2"&gt;get-droppedfile&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #000080"&gt;-erroraction&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #8a2be2"&gt;silentlycontinue&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #cd853f"&gt;|&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;remove-event&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #006400"&gt;# Add handlers&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #006400"&gt;# The handlers transfer the action/file to the main loop using event&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #ff4500"&gt;$form&lt;/span&gt;&lt;span style="color: #cd853f"&gt;.&lt;/span&gt;&lt;span style="color: #000000"&gt;add_dragdrop&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #000000"&gt;{&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #ff4500"&gt;$null&lt;/span&gt;&lt;span style="color: #cd853f"&gt;=&lt;/span&gt;&lt;span style="color: #0000ff"&gt;new-event&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #000080"&gt;-sourceidentifier&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #8a2be2"&gt;get-droppedfile&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #000080"&gt;-messagedata&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #ff4500"&gt;$args&lt;/span&gt;&lt;span style="color: #cd853f"&gt;[&lt;/span&gt;&lt;span style="color: #800080"&gt;1&lt;/span&gt;&lt;span style="color: #cd853f"&gt;]&lt;/span&gt;&lt;span style="color: #cd853f"&gt;.&lt;/span&gt;&lt;span style="color: #000000"&gt;Data&lt;/span&gt;&lt;span style="color: #cd853f"&gt;.&lt;/span&gt;&lt;span style="color: #000000"&gt;GetData&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #8b0000"&gt;&amp;quot;FileDrop&amp;quot;&lt;/span&gt;&lt;span style="color: #cd853f"&gt;,&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #ff4500"&gt;$true&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160; &lt;/span&gt;&lt;span style="color: #000000"&gt;}&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #ff4500"&gt;$form&lt;/span&gt;&lt;span style="color: #cd853f"&gt;.&lt;/span&gt;&lt;span style="color: #000000"&gt;add_formclosed&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #000000"&gt;{&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #ff4500"&gt;$null&lt;/span&gt;&lt;span style="color: #cd853f"&gt;=&lt;/span&gt;&lt;span style="color: #0000ff"&gt;new-event&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #000080"&gt;-sourceidentifier&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #8a2be2"&gt;get-droppedfile&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #000080"&gt;-messagedata&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #8b0000"&gt;&amp;quot;[close]&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #000000"&gt;}&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #006400"&gt;#Register-ObjectEvent -InputObject $form -EventName dragdrop #-SourceIdentifier blah#&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #006400"&gt;#Register-ObjectEvent -InputObject $form -EventName formclosed  #-SourceIdentifier blah&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #006400"&gt;# Custom caption&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800000"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #ff4500"&gt;$caption&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #000000"&gt;{&lt;/span&gt;&lt;span style="color: #ff4500"&gt;$form&lt;/span&gt;&lt;span style="color: #cd853f"&gt;.&lt;/span&gt;&lt;span style="color: #000000"&gt;text&lt;/span&gt;&lt;span style="color: #cd853f"&gt;=&lt;/span&gt;&lt;span style="color: #ff4500"&gt;$caption&lt;/span&gt;&lt;span style="color: #000000"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #006400"&gt;# This is the tricky part. Dropping is quite simple, but feeding the output pipeline with&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #006400"&gt;# the dropped files (so you do not have to wait until the drop box is closed) is not simple.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #006400"&gt;# I came up with this solution:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #006400"&gt;# - Do not use ShowDialog as is modal and will suspend PowerShell processing&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #006400"&gt;# - use Show and doevents in a loop&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #006400"&gt;# - this method consumes some CPU, but the Start-Sleep keeps it to a few per cent&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #006400"&gt;# - The Event actions generates events and they are read here in the main loop&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #006400"&gt;#   and converted to file names which are sent to the pipeline&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #006400"&gt;# Show the drop box&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #ff4500"&gt;$form&lt;/span&gt;&lt;span style="color: #cd853f"&gt;.&lt;/span&gt;&lt;span style="color: #000000"&gt;show&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #800000"&gt;do&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #000000"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000"&gt;&amp;#160; &lt;/span&gt;&lt;span style="color: #ff4500"&gt;$e&lt;/span&gt;&lt;span style="color: #cd853f"&gt;=&lt;/span&gt;&lt;span style="color: #0000ff"&gt;get-event&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #8a2be2"&gt;get-droppedfile&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #000080"&gt;-erroraction&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #8a2be2"&gt;silentlycontinue&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #006400"&gt;# suppress no such events&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000"&gt;	&lt;/span&gt;&lt;span style="color: #ff4500"&gt;$exit&lt;/span&gt;&lt;span style="color: #cd853f"&gt;=&lt;/span&gt;&lt;span style="color: #ff4500"&gt;$e&lt;/span&gt;&lt;span style="color: #cd853f"&gt;.&lt;/span&gt;&lt;span style="color: #000000"&gt;messagedata&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #cd853f"&gt;-eq&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #8b0000"&gt;&amp;quot;[close]&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #006400"&gt;# Test close message&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000"&gt;	&lt;/span&gt;&lt;span style="color: #800000"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #ff4500"&gt;$e&lt;/span&gt;&lt;span style="color: #cd853f"&gt;.&lt;/span&gt;&lt;span style="color: #000000"&gt;messagedata&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #cd853f"&gt;-and&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #cd853f"&gt;!&lt;/span&gt;&lt;span style="color: #ff4500"&gt;$exit&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #000000"&gt;{&lt;/span&gt;&lt;span style="color: #ff4500"&gt;$e&lt;/span&gt;&lt;span style="color: #cd853f"&gt;.&lt;/span&gt;&lt;span style="color: #000000"&gt;MessageData&lt;/span&gt;&lt;span style="color: #000000"&gt;}&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #006400"&gt;# Send file to pipeline&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000"&gt;	&lt;/span&gt;&lt;span style="color: #800000"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #ff4500"&gt;$e&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #000000"&gt;{&lt;/span&gt;&lt;span style="color: #ff4500"&gt;$e&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #cd853f"&gt;|&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;remove-event&lt;/span&gt;&lt;span style="color: #000000"&gt;}&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #006400"&gt;# Remove event from queue&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000"&gt;	&lt;/span&gt;&lt;span style="color: #800000"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #ff4500"&gt;$exit&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #000000"&gt;{&lt;/span&gt;&lt;span style="color: #800000"&gt;break&lt;/span&gt;&lt;span style="color: #000000"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000"&gt;	&lt;/span&gt;&lt;span style="color: #0000ff"&gt;start-sleep&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #000080"&gt;-m&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #800080"&gt;100&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #006400"&gt;# Wait a little&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000"&gt;	&lt;/span&gt;&lt;span style="color: #008080"&gt;[System.Windows.Forms.Application]&lt;/span&gt;&lt;span style="color: #cd853f"&gt;::&lt;/span&gt;&lt;span style="color: #000000"&gt;doevents&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #006400"&gt;# React to form events so the windows can be moved etc.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000"&gt;}&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #800000"&gt;while&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #ff4500"&gt;$true&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #006400"&gt;# Shutdown&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #ff4500"&gt;$form&lt;/span&gt;&lt;span style="color: #cd853f"&gt;.&lt;/span&gt;&lt;span style="color: #000000"&gt;close&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000"&gt;}&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #006400"&gt;# end of script assignment&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #006400"&gt;# Generate command for -sta recursive call. Done here where $myinvocation has the right value&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #ff4500"&gt;$command&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #cd853f"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #8b0000"&gt;&amp;quot;&amp;amp;'&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #cd853f"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #ff4500"&gt;$myinvocation&lt;/span&gt;&lt;span style="color: #cd853f"&gt;.&lt;/span&gt;&lt;span style="color: #000000"&gt;mycommand&lt;/span&gt;&lt;span style="color: #cd853f"&gt;.&lt;/span&gt;&lt;span style="color: #000000"&gt;definition&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #cd853f"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #8b0000"&gt;&amp;quot;' -caption '$caption' -_InternalReinvoked&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #006400"&gt;# Execute the next in a scriptblock so output can be piped&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #cd853f"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color: #000000"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000"&gt;	&lt;/span&gt;&lt;span style="color: #006400"&gt;# Forms must run in SingleThreadedApartment style&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000"&gt;	&lt;/span&gt;&lt;span style="color: #006400"&gt;# Re-invoke PowerShell if necessary&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #800000"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #ff4500"&gt;$host&lt;/span&gt;&lt;span style="color: #cd853f"&gt;.&lt;/span&gt;&lt;span style="color: #000000"&gt;runspace&lt;/span&gt;&lt;span style="color: #cd853f"&gt;.&lt;/span&gt;&lt;span style="color: #000000"&gt;ApartmentState&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #cd853f"&gt;-ne&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #8b0000"&gt;&amp;quot;sta&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #000000"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;write-verbose&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #8b0000"&gt;&amp;quot;Invoking PowerShell with -sta&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #ff4500"&gt;$bytes&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #cd853f"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #008080"&gt;[System.Text.Encoding]&lt;/span&gt;&lt;span style="color: #cd853f"&gt;::&lt;/span&gt;&lt;span style="color: #000000"&gt;Unicode&lt;/span&gt;&lt;span style="color: #cd853f"&gt;.&lt;/span&gt;&lt;span style="color: #000000"&gt;GetBytes&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #ff4500"&gt;$command&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #ff4500"&gt;$encodedCommand&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #cd853f"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #008080"&gt;[Convert]&lt;/span&gt;&lt;span style="color: #cd853f"&gt;::&lt;/span&gt;&lt;span style="color: #000000"&gt;ToBase64String&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #ff4500"&gt;$bytes&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;powershell.exe&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #000080"&gt;-sta&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #000080"&gt;-noprofile&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #000080"&gt;-encodedCommand&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #ff4500"&gt;$encodedCommand&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #006400"&gt;#powershell -sta -noprofile $script&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #000000"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #800000"&gt;else&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #000000"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #cd853f"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color: #ff4500"&gt;$script&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #000000"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000"&gt;}&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #cd853f"&gt;|&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;where&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #000000"&gt;{&lt;/span&gt;&lt;span style="color: #ff4500"&gt;$_&lt;/span&gt;&lt;span style="color: #000000"&gt;}&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #cd853f"&gt;|&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #000000"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #006400"&gt;# Handle the different return options&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000"&gt;	&lt;/span&gt;&lt;span style="color: #800000"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #ff4500"&gt;$_InternalReinvoked&lt;/span&gt;&lt;span style="color: #cd853f"&gt;.&lt;/span&gt;&lt;span style="color: #000000"&gt;ispresent&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #000000"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #006400"&gt;# -sta call, always return strings&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000"&gt;		&lt;/span&gt;&lt;span style="color: #ff4500"&gt;$_&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000"&gt;	&lt;/span&gt;&lt;span style="color: #000000"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000"&gt;	&lt;/span&gt;&lt;span style="color: #800000"&gt;elseif&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #ff4500"&gt;$recurse&lt;/span&gt;&lt;span style="color: #cd853f"&gt;.&lt;/span&gt;&lt;span style="color: #000000"&gt;ispresent&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #cd853f"&gt;-and&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;test-path&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #000080"&gt;-pathtype&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #8a2be2"&gt;container&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #ff4500"&gt;$_&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #000000"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #006400"&gt;# Recurse folder tree, return text or objects&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000"&gt;		&lt;/span&gt;&lt;span style="color: #0000ff"&gt;Get-ChildItem&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #ff4500"&gt;$_&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #000080"&gt;-recurse&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #000080"&gt;-force&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #cd853f"&gt;|&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #000000"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000"&gt;			&lt;/span&gt;&lt;span style="color: #800000"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #ff4500"&gt;$astext&lt;/span&gt;&lt;span style="color: #cd853f"&gt;.&lt;/span&gt;&lt;span style="color: #000000"&gt;ispresent&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #000000"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000"&gt;				&lt;/span&gt;&lt;span style="color: #ff4500"&gt;$_&lt;/span&gt;&lt;span style="color: #cd853f"&gt;.&lt;/span&gt;&lt;span style="color: #000000"&gt;fullname&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000"&gt;			&lt;/span&gt;&lt;span style="color: #000000"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000"&gt;			&lt;/span&gt;&lt;span style="color: #800000"&gt;else&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #000000"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000"&gt;				&lt;/span&gt;&lt;span style="color: #ff4500"&gt;$_&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000"&gt;			&lt;/span&gt;&lt;span style="color: #000000"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000"&gt;		&lt;/span&gt;&lt;span style="color: #000000"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000"&gt;	&lt;/span&gt;&lt;span style="color: #000000"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000"&gt;	&lt;/span&gt;&lt;span style="color: #800000"&gt;elseif&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #ff4500"&gt;$astext&lt;/span&gt;&lt;span style="color: #cd853f"&gt;.&lt;/span&gt;&lt;span style="color: #000000"&gt;ispresent&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #000000"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000"&gt;		&lt;/span&gt;&lt;span style="color: #ff4500"&gt;$_&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000"&gt;	&lt;/span&gt;&lt;span style="color: #000000"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000"&gt;	&lt;/span&gt;&lt;span style="color: #800000"&gt;else&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #000000"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000"&gt;		&lt;/span&gt;&lt;span style="color: #0000ff"&gt;Get-Item&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: #ff4500"&gt;$_&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000"&gt;	&lt;/span&gt;&lt;span style="color: #000000"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000"&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Have fun&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8600848-3313553041104659080?l=msgoodies.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=xr7LyAmlKc4:4hnRubpt6yc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=xr7LyAmlKc4:4hnRubpt6yc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=xr7LyAmlKc4:4hnRubpt6yc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=xr7LyAmlKc4:4hnRubpt6yc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=xr7LyAmlKc4:4hnRubpt6yc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/msgoodies/~4/xr7LyAmlKc4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://msgoodies.blogspot.com/feeds/3313553041104659080/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=8600848&amp;postID=3313553041104659080&amp;isPopup=true" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/3313553041104659080?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/3313553041104659080?v=2" /><link rel="alternate" type="text/html" href="http://feeds.msgoodies.com/~r/blogspot/msgoodies/~3/xr7LyAmlKc4/picking-files-with-mouse-using-get.html" title="Picking files with the mouse using Get-DroppedFile" /><author><name>Per Østergaard</name><uri>http://www.blogger.com/profile/12128790394950237942</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10445043458334841722" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://msgoodies.blogspot.com/2009/11/picking-files-with-mouse-using-get.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUIHR38-eip7ImA9WxNUF00.&quot;"><id>tag:blogger.com,1999:blog-8600848.post-4170371865255822128</id><published>2009-11-08T20:12:00.001+01:00</published><updated>2009-11-08T20:12:16.152+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-08T20:12:16.152+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Self-promotion ;-)" /><title>ATE Schedule for TechEd Berlin</title><content type="html">&lt;p&gt;I’m in Copenhagen waiting for my flight to Berlin. If you want to touch base then I have booth duty at the UC Ask-The-Experts (and Dennis ;-) area Tuesday from 15:15 – 18:15 and Friday 11:30 – 14:45.&lt;/p&gt;  &lt;p&gt;CU there !&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8600848-4170371865255822128?l=msgoodies.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=w6po6YWx9gA:Op2CcV0Xyxw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=w6po6YWx9gA:Op2CcV0Xyxw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=w6po6YWx9gA:Op2CcV0Xyxw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=w6po6YWx9gA:Op2CcV0Xyxw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=w6po6YWx9gA:Op2CcV0Xyxw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/msgoodies/~4/w6po6YWx9gA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://msgoodies.blogspot.com/feeds/4170371865255822128/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=8600848&amp;postID=4170371865255822128&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/4170371865255822128?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/4170371865255822128?v=2" /><link rel="alternate" type="text/html" href="http://feeds.msgoodies.com/~r/blogspot/msgoodies/~3/w6po6YWx9gA/ate-schedule-for-teched-berlin.html" title="ATE Schedule for TechEd Berlin" /><author><name>Dennis Lundtoft Thomsen [MVP]</name><uri>http://www.blogger.com/profile/14713138671966546640</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="16206148123269563940" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://msgoodies.blogspot.com/2009/11/ate-schedule-for-teched-berlin.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0ACSX86cCp7ImA9WxBWEkk.&quot;"><id>tag:blogger.com,1999:blog-8600848.post-2245417382113076638</id><published>2009-11-04T14:11:00.001+01:00</published><updated>2010-02-04T01:02:48.118+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-04T01:02:48.118+01:00</app:edited><title>Code Contracts and Pex</title><content type="html">&lt;p&gt;If your are coding, you should check out &lt;a href="http://channel9.msdn.com/posts/Peli/The-Synergy-of-Code-Contracts-and-Pex/"&gt;this&lt;/a&gt; Channel 9 video (11:30 minutes) where &lt;a href="http://research.microsoft.com/~maf"&gt;Manuel Fähndrich&lt;/a&gt; and &lt;a href="http://blog.dotnetwiki.org/"&gt;Peli de Halleux&lt;/a&gt; show you how to specify code contracts and testing them using Pex directly in your coding environment.&lt;/p&gt;  &lt;p&gt;Here’s a screen shot showing the Contract statements in the code and the Pex test runs below -&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_HE3RrxmeZ90/SvF9YhLzt1I/AAAAAAAAAHE/sMlKFV9LYz0/s1600-h/image%5B3%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_HE3RrxmeZ90/SvF9ZCT-laI/AAAAAAAAAHI/Du_2aJswy3k/image_thumb%5B1%5D.png?imgmax=800" width="757" height="714" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Happy coding&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8600848-2245417382113076638?l=msgoodies.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=ZqqhxBU3STQ:drZqwbgOeM0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=ZqqhxBU3STQ:drZqwbgOeM0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=ZqqhxBU3STQ:drZqwbgOeM0:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=ZqqhxBU3STQ:drZqwbgOeM0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=ZqqhxBU3STQ:drZqwbgOeM0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/msgoodies/~4/ZqqhxBU3STQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://msgoodies.blogspot.com/feeds/2245417382113076638/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=8600848&amp;postID=2245417382113076638&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/2245417382113076638?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/2245417382113076638?v=2" /><link rel="alternate" type="text/html" href="http://feeds.msgoodies.com/~r/blogspot/msgoodies/~3/ZqqhxBU3STQ/code-contracts-and-pex.html" title="Code Contracts and Pex" /><author><name>Per Østergaard</name><uri>http://www.blogger.com/profile/12128790394950237942</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10445043458334841722" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://msgoodies.blogspot.com/2009/11/code-contracts-and-pex.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0QERHs9eSp7ImA9WxNUEkU.&quot;"><id>tag:blogger.com,1999:blog-8600848.post-2797143029395778145</id><published>2009-11-03T23:28:00.001+01:00</published><updated>2009-11-04T00:01:45.561+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-04T00:01:45.561+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Unified Communications" /><title>OCS Cumulative Server Update Installer</title><content type="html">&lt;p&gt;One of the biggest serviceability issues with OCS 2oo7 R2 hotfixes, has been that you as an admin had a list of 17 (Seventeen – yes) different hotfixes that you had to apply to the correct server/role. This could be done by checking the 13 (Thirteen) different server roles and the list of updates that applied to them and then manually installing each and every of the necessary updates separately.&lt;/p&gt;  &lt;p&gt;This “design issue” has now been mitigated with the “Cumulative Server Update Installer”, that basically checks each server, its roles and then suggest and applies the necessary hotfixes to your OCS Server (How hard can it be ;-). &lt;/p&gt;  &lt;p&gt;So one installer (and one download, that contains all the hotfixes), that handles all servers/roles and it can be done either through GUI or scripted through Command Line.&lt;/p&gt;  &lt;p&gt;You can download the installer from &lt;a href="http://support.microsoft.com/default.aspx/kb/968802"&gt;KB968802&lt;/a&gt; that contains a list of all the updates (October Patches), a description of the process for updating and a download link.&lt;/p&gt;  &lt;p&gt;At the download site you can download each update, but just scroll down to the download called “ServerUpdateInstaller.exe” and only download this. Do note that you should execute it from an empty folder as it extracts all the necessary updates for the relevant server role on execution (After installation has been completed it removes updates and only logs from each applied update is left). &lt;/p&gt;  &lt;p&gt;Below is an example from ServerUpdateInstaller executed on a mediation server:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_nKYobGDdbe4/SvCugJf99FI/AAAAAAAAAQs/dmFftF_wQuU/s1600-h/image%5B4%5D.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="ServerUpdateInstaller.exe" border="0" alt="ServerUpdateInstaller.exe" src="http://lh5.ggpht.com/_nKYobGDdbe4/SvCug9e11bI/AAAAAAAAAQw/0e7VeKGJjqE/image_thumb%5B2%5D.png?imgmax=800" width="644" height="256" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;As you can see it both lists existing installed version, the new updated version and not least a link to the hotfix KB.&lt;/p&gt;  &lt;p&gt;Do note that the July Database Update found in &lt;a href="http://support.microsoft.com/kb/969834/"&gt;KB969834&lt;/a&gt; isn’t installed automagically, this update has to be run manually!&lt;/p&gt;  &lt;p&gt;Good work Microsoft (And happy updating to all of you ;-)&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8600848-2797143029395778145?l=msgoodies.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=mk3JhaoEs34:K0g52AyVoQ4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=mk3JhaoEs34:K0g52AyVoQ4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=mk3JhaoEs34:K0g52AyVoQ4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=mk3JhaoEs34:K0g52AyVoQ4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=mk3JhaoEs34:K0g52AyVoQ4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/msgoodies/~4/mk3JhaoEs34" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://msgoodies.blogspot.com/feeds/2797143029395778145/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=8600848&amp;postID=2797143029395778145&amp;isPopup=true" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/2797143029395778145?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/2797143029395778145?v=2" /><link rel="alternate" type="text/html" href="http://feeds.msgoodies.com/~r/blogspot/msgoodies/~3/mk3JhaoEs34/ocs-cumulative-server-update-installer.html" title="OCS Cumulative Server Update Installer" /><author><name>Dennis Lundtoft Thomsen [MVP]</name><uri>http://www.blogger.com/profile/14713138671966546640</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="16206148123269563940" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://msgoodies.blogspot.com/2009/11/ocs-cumulative-server-update-installer.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0EHRH85cSp7ImA9WxBWEkk.&quot;"><id>tag:blogger.com,1999:blog-8600848.post-7257898099681224667</id><published>2009-11-02T09:50:00.001+01:00</published><updated>2010-02-04T01:00:35.129+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-04T01:00:35.129+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="PowerShell V2" /><category scheme="http://www.blogger.com/atom/ns#" term="Windows Server" /><category scheme="http://www.blogger.com/atom/ns#" term="Windows" /><title>PowerShell V2 now Available on Older Operating Systems</title><content type="html">&lt;p&gt;Now you can safely forget V1 and switch to the vastly superior V2. As of last week it is now available on -&lt;/p&gt;  &lt;li&gt;Windows Server 2008 with Service Pack 2 &lt;/li&gt;  &lt;li&gt;Windows Server 2003 with Service Pack 2 &lt;/li&gt;  &lt;li&gt;Windows Vista with Service Pack 2 &lt;/li&gt;  &lt;li&gt;Windows Vista with Service Pack 1 &lt;/li&gt;  &lt;li&gt;Windows XP with Service Pack 3&lt;/li&gt;  &lt;p&gt;In Windows 7 and WS08 R2 it is part of the package.&lt;/p&gt;  &lt;p&gt;PS2 is part of Windows Management Framework which also includes WinRM and BITS4.&lt;/p&gt;  &lt;p&gt;BTW: You need to install PowerShell 2 on server core. Read how in KB &lt;a href="http://support.microsoft.com/?kbid=976736"&gt;976736&lt;/a&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8600848-7257898099681224667?l=msgoodies.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=dGDHI731gzU:kisN0YVjv5Y:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=dGDHI731gzU:kisN0YVjv5Y:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=dGDHI731gzU:kisN0YVjv5Y:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=dGDHI731gzU:kisN0YVjv5Y:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=dGDHI731gzU:kisN0YVjv5Y:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/msgoodies/~4/dGDHI731gzU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://msgoodies.blogspot.com/feeds/7257898099681224667/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=8600848&amp;postID=7257898099681224667&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/7257898099681224667?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/7257898099681224667?v=2" /><link rel="alternate" type="text/html" href="http://feeds.msgoodies.com/~r/blogspot/msgoodies/~3/dGDHI731gzU/powershell-v2-now-available-on-older.html" title="PowerShell V2 now Available on Older Operating Systems" /><author><name>Per Østergaard</name><uri>http://www.blogger.com/profile/12128790394950237942</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10445043458334841722" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://msgoodies.blogspot.com/2009/11/powershell-v2-now-available-on-older.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0EHRH84eCp7ImA9WxBWEkk.&quot;"><id>tag:blogger.com,1999:blog-8600848.post-736393003936532061</id><published>2009-11-02T09:01:00.001+01:00</published><updated>2010-02-04T01:00:35.130+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-04T01:00:35.130+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Windows Server" /><category scheme="http://www.blogger.com/atom/ns#" term="Active Directory" /><title>Windows Server 2008 R2 Service and Virtual Accounts</title><content type="html">&lt;p&gt;One of the best reasons for upgrading to R2, is the new account types for managing services. Changing user account passwords being used for running services, scheduled tasks and application pools are often a real pain and consequently, often being skipped. And wouldn’t it be nice if it was handled automatically like a computer account? Well, that is exactly what R2 offers.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Two new types of service accounts are available in Windows Server® 2008 R2 and Windows® 7—the managed service account and the virtual account. The managed service account is designed to provide crucial applications such as SQL Server and IIS with the isolation of their own domain accounts, while eliminating the need for an administrator to manually administer the service principal name (SPN) and credentials for these accounts. Virtual accounts in Windows Server 2008 R2 and Windows 7 are &amp;quot;managed local accounts&amp;quot; that can use a computer's credentials to access network resources.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Read the &lt;a title="Service Accounts Step-by-Step Guide" href="http://technet.microsoft.com/en-us/library/dd548356(WS.10).aspx"&gt;Service Accounts Step-by-Step Guide&lt;/a&gt; for more information.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8600848-736393003936532061?l=msgoodies.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=6J1T3m_vCT0:SaDbxLVnJJ0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=6J1T3m_vCT0:SaDbxLVnJJ0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=6J1T3m_vCT0:SaDbxLVnJJ0:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.msgoodies.com/~ff/blogspot/msgoodies?a=6J1T3m_vCT0:SaDbxLVnJJ0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=6J1T3m_vCT0:SaDbxLVnJJ0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/msgoodies/~4/6J1T3m_vCT0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://msgoodies.blogspot.com/feeds/736393003936532061/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=8600848&amp;postID=736393003936532061&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/736393003936532061?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/736393003936532061?v=2" /><link rel="alternate" type="text/html" href="http://feeds.msgoodies.com/~r/blogspot/msgoodies/~3/6J1T3m_vCT0/windows-server-2008-r2-service-and.html" title="Windows Server 2008 R2 Service and Virtual Accounts" /><author><name>Per Østergaard</name><uri>http://www.blogger.com/profile/12128790394950237942</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10445043458334841722" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://msgoodies.blogspot.com/2009/11/windows-server-2008-r2-service-and.html</feedburner:origLink></entry></feed>
