<?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.feedburner.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;CU4EQ3o5fyp7ImA9WxNUGEo.&quot;"><id>tag:blogger.com,1999:blog-8600848</id><updated>2009-11-10T18:25:02.427+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>570</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><geo:lat>57.098423</geo:lat><geo:long>9.897963</geo:long><link rel="self" href="http://feeds.feedburner.com/blogspot/msgoodies" type="application/atom+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><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'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.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.feedburner.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.feedburner.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://feedproxy.google.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;CkUCQH04fCp7ImA9WxNUE0k.&quot;"><id>tag:blogger.com,1999:blog-8600848.post-2245417382113076638</id><published>2009-11-04T14:11:00.001+01:00</published><updated>2009-11-04T14:11:01.334+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-04T14:11:01.334+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Testing" /><category scheme="http://www.blogger.com/atom/ns#" term="Coding" /><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'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.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.feedburner.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.feedburner.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://feedproxy.google.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'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.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.feedburner.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.feedburner.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://feedproxy.google.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;C08GQn85eSp7ImA9WxNUEUg.&quot;"><id>tag:blogger.com,1999:blog-8600848.post-7257898099681224667</id><published>2009-11-02T09:50:00.001+01:00</published><updated>2009-11-02T09:50:23.121+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-02T09:50:23.121+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Windows Server 2008 R2" /><category scheme="http://www.blogger.com/atom/ns#" term="PowerShell V2" /><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'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.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.feedburner.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.feedburner.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://feedproxy.google.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;Ak4EQ3g4cCp7ImA9WxNUEUk.&quot;"><id>tag:blogger.com,1999:blog-8600848.post-736393003936532061</id><published>2009-11-02T09:01:00.001+01:00</published><updated>2009-11-02T09:01:42.638+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-02T09:01:42.638+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Windows Server 2008 R2" /><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'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.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.feedburner.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.feedburner.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://feedproxy.google.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><entry gd:etag="W/&quot;DEIGSH8zcCp7ImA9WxNUEUk.&quot;"><id>tag:blogger.com,1999:blog-8600848.post-5664375701820279607</id><published>2009-11-02T08:22:00.001+01:00</published><updated>2009-11-02T08:22:09.188+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-02T08:22:09.188+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Windows Server 2008 R2" /><category scheme="http://www.blogger.com/atom/ns#" term="PowerShell V2" /><category scheme="http://www.blogger.com/atom/ns#" term="Windows 7" /><category scheme="http://www.blogger.com/atom/ns#" term="Vista" /><category scheme="http://www.blogger.com/atom/ns#" term="PowerShell" /><category scheme="http://www.blogger.com/atom/ns#" term="IPv6" /><category scheme="http://www.blogger.com/atom/ns#" term="Windows Server 2008" /><category scheme="http://www.blogger.com/atom/ns#" term="Active Directory" /><title>DFS, IPv6 and – sort of – disabling it</title><content type="html">&lt;p&gt;&lt;a title="Ask the Directory Services Team" href="http://blogs.technet.com/askds/default.aspx"&gt;Ask the Directory Services Team&lt;/a&gt; has a good article on troubleshooting DFS links (&lt;a href="http://blogs.technet.com/askds/archive/2009/10/28/dfs-referrals-and-ipv6-outta-site.aspx"&gt;DFS Referrals and IPv6: Outta site!&lt;/a&gt;) as well as a discussion of how not to&amp;#160; disable IPv6 (unbinding it from an adapter) and how to do it correctly (&lt;a title="KB929852" href="http://support.microsoft.com/default.aspx?scid=kb;EN-US;929852"&gt;KB929852&lt;/a&gt;).&lt;/p&gt;  &lt;p&gt;In case you really need to disable IPv6, consider using a Group Policy Preference or automate it with PowerShell -&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;Set-ItemProperty HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters DisabledComponents 0xffffffff -type dword&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Useful information.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8600848-5664375701820279607?l=msgoodies.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/msgoodies?a=Gu5DxwNsx2c:VKdUvmjmIxI: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.feedburner.com/~ff/blogspot/msgoodies?a=Gu5DxwNsx2c:VKdUvmjmIxI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=Gu5DxwNsx2c:VKdUvmjmIxI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/msgoodies?a=Gu5DxwNsx2c:VKdUvmjmIxI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=Gu5DxwNsx2c:VKdUvmjmIxI: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/Gu5DxwNsx2c" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://msgoodies.blogspot.com/feeds/5664375701820279607/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=8600848&amp;postID=5664375701820279607&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/5664375701820279607?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/5664375701820279607?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/msgoodies/~3/Gu5DxwNsx2c/dfs-ipv6-and-sort-of-disabling-it.html" title="DFS, IPv6 and – sort of – disabling it" /><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/dfs-ipv6-and-sort-of-disabling-it.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUEDSHc5eSp7ImA9WxNUEEw.&quot;"><id>tag:blogger.com,1999:blog-8600848.post-6582961919820491124</id><published>2009-10-31T19:27:00.001+01:00</published><updated>2009-10-31T19:27:59.921+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-31T19:27:59.921+01:00</app:edited><title>Attending TechEd Europe 2009 in Berlin</title><content type="html">&lt;p&gt;Im attending TechEd Europe 2009 in Berlin as an ATE and will be arriving late Sunday, so if you want to connect then give me a ping ;-)&lt;/p&gt;  &lt;p&gt;Two of my colleagues from Inceptio (Per Østergaard and Risto Pedersen) will also be at the TechEd and Peter Ingerslev and I is at the Interact 2009 event on Monday.&lt;/p&gt;  &lt;p&gt;CU there !&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_nKYobGDdbe4/SuyBrfJhXeI/AAAAAAAAAQk/054bXJXC9jI/s1600-h/TechEd_Europe_Blog_L_MVPs%5B4%5D.gif"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="TechEd_Europe_Blog_L_MVPs" border="0" alt="TechEd_Europe_Blog_L_MVPs" align="right" src="http://lh5.ggpht.com/_nKYobGDdbe4/SuyBr__pEBI/AAAAAAAAAQo/tUahcfbC0_M/TechEd_Europe_Blog_L_MVPs_thumb%5B2%5D.gif?imgmax=800" width="184" height="203" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8600848-6582961919820491124?l=msgoodies.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/msgoodies?a=izQgOkPvILs:F3kNH8MfW6k: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.feedburner.com/~ff/blogspot/msgoodies?a=izQgOkPvILs:F3kNH8MfW6k:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=izQgOkPvILs:F3kNH8MfW6k:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/msgoodies?a=izQgOkPvILs:F3kNH8MfW6k:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=izQgOkPvILs:F3kNH8MfW6k: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/izQgOkPvILs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://msgoodies.blogspot.com/feeds/6582961919820491124/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=8600848&amp;postID=6582961919820491124&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/6582961919820491124?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/6582961919820491124?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/msgoodies/~3/izQgOkPvILs/attending-teched-europe-2009-in-berlin.html" title="Attending TechEd Europe 2009 in 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/10/attending-teched-europe-2009-in-berlin.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEEMQXo-eCp7ImA9WxNVGEQ.&quot;"><id>tag:blogger.com,1999:blog-8600848.post-1738893796067922817</id><published>2009-10-30T09:51:00.001+01:00</published><updated>2009-10-30T09:51:20.450+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-30T09:51:20.450+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="PowerShell V2" /><title>Executing a PowerShell Pipeline from your own program</title><content type="html">&lt;p&gt;In &lt;a title="Executing PowerShell code from within your own program" href="http://msgoodies.blogspot.com/2009/10/executing-powershell-code-from-within.html"&gt;Executing PowerShell code from within your own program&lt;/a&gt; I showed how to execute PowerShell code, but the interface was rather rude as the value had to be converted to string and added to the script code involved. If you have lots of objects to proces, this method is inefficient – a pipeline would be much better as the script source only has to be parsed once and the script would be able to access the objects as real objects.&lt;/p&gt;  &lt;p&gt;I have now taken it a step further and created a piece of code that can execute a pipeline. If you have lots of objects – ‘lots’ depends on the amount of memory you have available – this may not be the most efficient method. All input and output objects will be represented as List&amp;lt;PSObject&amp;gt; giving some overhead. An alternative would be to use a &lt;a href="http://msdn.microsoft.com/en-us/library/system.management.automation.steppablepipeline(VS.85).aspx"&gt;steppable pipeline&lt;/a&gt; but for now, I’ll stick to the easy method.&lt;/p&gt;  &lt;p&gt;Here’s the code&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: 119.21%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; height: 702px; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; PSHost&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; PSDataStreams _InvokePipeline(&lt;span style="color: #0000ff"&gt;string&lt;/span&gt; Script,&lt;br /&gt;                                          List&amp;lt;PSObject&amp;gt; inputPipeline,&lt;br /&gt;                                          &lt;span style="color: #0000ff"&gt;out&lt;/span&gt; Collection&amp;lt;PSObject&amp;gt; outputPipeline)&lt;br /&gt;    {&lt;br /&gt;&lt;br /&gt;        PowerShell PS = PowerShell.Create();&lt;br /&gt;        PS.AddScript(Script);&lt;br /&gt;&lt;br /&gt;        outputPipeline=PS.Invoke&amp;lt;PSObject&amp;gt;(inputPipeline);&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; PS.Streams;&lt;br /&gt;    }&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; _ConvertStreamsToString(PSDataStreams streams)&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; s = &lt;span style="color: #006080"&gt;&amp;quot;&amp;quot;&lt;/span&gt;;&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt; (DebugRecord result &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; PS.Streams.Debug)&lt;br /&gt;        {&lt;br /&gt;            s += &lt;span style="color: #006080"&gt;&amp;quot;DEBUG: &amp;quot;&lt;/span&gt; + result.ToString();&lt;br /&gt;        }&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt; (VerboseRecord result &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; PS.Streams.Verbose)&lt;br /&gt;        {&lt;br /&gt;            s += &lt;span style="color: #006080"&gt;&amp;quot;VERBOSE: &amp;quot;&lt;/span&gt; + result.ToString();&lt;br /&gt;        }&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt; (WarningRecord result &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; PS.Streams.Warning)&lt;br /&gt;        {&lt;br /&gt;            s += &lt;span style="color: #006080"&gt;&amp;quot;WARNING: &amp;quot;&lt;/span&gt; + result.ToString();&lt;br /&gt;        }&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt; (ErrorRecord result &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; PS.Streams.Error)&lt;br /&gt;        {&lt;br /&gt;            s += &lt;span style="color: #006080"&gt;&amp;quot;ERROR: &amp;quot;&lt;/span&gt; + result.ToString();&lt;br /&gt;        }&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; s;&lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; PSExecutePipeline(&lt;span style="color: #0000ff"&gt;string&lt;/span&gt; Script,&lt;br /&gt;                                    List&amp;lt;PSObject&amp;gt; inputPipeline,&lt;br /&gt;                                    &lt;span style="color: #0000ff"&gt;out&lt;/span&gt; Collection&amp;lt;PSObject&amp;gt; outputPipeline)&lt;br /&gt;    {&lt;br /&gt;&lt;br /&gt;        PSDataStreams ds = _InvokePipeline(Script, inputPipeline, &lt;span style="color: #0000ff"&gt;out&lt;/span&gt; outputPipeline);&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; _ConvertStreamsToString(ds);&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;div id="codeSnippetWrapper"&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 script must include $input to pick up the values – if any. The streams collection is returned as a string, so you can check for warning/error/verbose/debug/progress output. Parsing errors will throw an exception; you would use a try-catch to handle that. Naturally, you can change the interface to your own requirements.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Note that output objects may be real objects with properties or just simple value types. A property value can be retrieved with p.property[“propertyname”].value and a simple with p.BaseObject.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Example 1 – summing numbers&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: #008000"&gt;// Input pipeline&lt;/span&gt;&lt;br /&gt;List&amp;lt;PSObject&amp;gt; numbers = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; List&amp;lt;PSObject&amp;gt;();&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000"&gt;// Add values/objects&lt;/span&gt;&lt;br /&gt;numbers.Add(&lt;span style="color: #0000ff"&gt;new&lt;/span&gt; PSObject(1));&lt;br /&gt;numbers.Add(&lt;span style="color: #0000ff"&gt;new&lt;/span&gt; PSObject(2));&lt;br /&gt;numbers.Add(&lt;span style="color: #0000ff"&gt;new&lt;/span&gt; PSObject(3));&lt;br /&gt;numbers.Add(&lt;span style="color: #0000ff"&gt;new&lt;/span&gt; PSObject(4));&lt;br /&gt;numbers.Add(&lt;span style="color: #0000ff"&gt;new&lt;/span&gt; PSObject(5));&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000"&gt;// Output pipeline&lt;/span&gt;&lt;br /&gt;System.Collections.ObjectModel.Collection&amp;lt;PSObject&amp;gt; outputPipeline;&lt;br /&gt;&lt;br /&gt;PSHost psh = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; PSHost();&lt;br /&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt; s = psh.PSExecutePipeline(&lt;span style="color: #006080"&gt;&amp;quot;$input | measure-object -sum&amp;quot;&lt;/span&gt;, numbers, &lt;span style="color: #0000ff"&gt;out&lt;/span&gt; outputPipeline);&lt;br /&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;.IsNullOrEmpty(s))&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt; (PSObject p &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; outputPipeline)&lt;br /&gt;    {&lt;br /&gt;       System.Diagnostics.Debug.WriteLine(&lt;span style="color: #006080"&gt;&amp;quot;Sum is &amp;quot;&lt;/span&gt; + p.Properties[&lt;span style="color: #006080"&gt;&amp;quot;Sum&amp;quot;&lt;/span&gt;].Value.ToString());&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;    System.Diagnostics.Debug.WriteLine(&lt;span style="color: #006080"&gt;&amp;quot;PowerShell failed: &amp;quot;&lt;/span&gt; + s);&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;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Example 2 demonstrates how to return a value type&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: #008000"&gt;// Re-uses the variable from example 1&lt;/span&gt;&lt;br /&gt;List&amp;lt;PSObject&amp;gt; empty = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; List&amp;lt;PSObject&amp;gt;();&lt;br /&gt;s = psh.PSExecutePipeline(&lt;span style="color: #006080"&gt;&amp;quot;100&amp;quot;&lt;/span&gt;, empty, &lt;span style="color: #0000ff"&gt;out&lt;/span&gt; outputPipeline);&lt;br /&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;.IsNullOrEmpty(s))&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt; (PSObject p &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; outputPipeline)&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (p.BaseObject.GetType().IsValueType)&lt;br /&gt;        {&lt;br /&gt;            System.Diagnostics.Debug.WriteLine(&lt;span style="color: #006080"&gt;&amp;quot;Number is &amp;quot;&lt;/span&gt; + p.BaseObject.ToString());&lt;br /&gt;        }&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;else&lt;/span&gt;&lt;br /&gt;        {&lt;br /&gt;            System.Diagnostics.Debug.WriteLine(&lt;span style="color: #006080"&gt;&amp;quot;Number is &amp;quot;&lt;/span&gt; + p.Properties[&lt;span style="color: #006080"&gt;&amp;quot;Value&amp;quot;&lt;/span&gt;].Value.ToString());&lt;br /&gt;        }&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;    System.Diagnostics.Debug.WriteLine(&lt;span style="color: #006080"&gt;&amp;quot;PowerShell failed: &amp;quot;&lt;/span&gt; + s);&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;Debug output can be seen with &lt;a href="http://live.sysinternals.com/DbgView.exe"&gt;DbgView&lt;/a&gt;.&lt;/p&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-1738893796067922817?l=msgoodies.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/msgoodies?a=dqXUhP5tG14:c05SRvx3I5I: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.feedburner.com/~ff/blogspot/msgoodies?a=dqXUhP5tG14:c05SRvx3I5I:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=dqXUhP5tG14:c05SRvx3I5I:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/msgoodies?a=dqXUhP5tG14:c05SRvx3I5I:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=dqXUhP5tG14:c05SRvx3I5I: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/dqXUhP5tG14" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://msgoodies.blogspot.com/feeds/1738893796067922817/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=8600848&amp;postID=1738893796067922817&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/1738893796067922817?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/1738893796067922817?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/msgoodies/~3/dqXUhP5tG14/executing-powershell-pipeline-from-your.html" title="Executing a PowerShell Pipeline from your own program" /><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/10/executing-powershell-pipeline-from-your.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUYDQnc7eSp7ImA9WxNVGE0.&quot;"><id>tag:blogger.com,1999:blog-8600848.post-6789606272484064459</id><published>2009-10-29T10:06:00.001+01:00</published><updated>2009-10-29T10:06:13.901+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-29T10:06:13.901+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Identity Management" /><category scheme="http://www.blogger.com/atom/ns#" term="FIM" /><category scheme="http://www.blogger.com/atom/ns#" term="ILM" /><title>Using ILM for DMZ Account Management</title><content type="html">&lt;p&gt;When you need to manage your users and group in a DMZ, it can be done in several ways. At least these methods can be used -&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Autonomous. All users and groups are maintained locally in the DMZ. &lt;/li&gt;    &lt;li&gt;Forest trust. A forest trust is constructed so the DMZ forest trust internal accounts. To restrict. &lt;/li&gt;    &lt;li&gt;Read-only Domain Controller. A RODC is deployed in the DMZ. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Besides these, ILM can also be used and when you read the advantages/disadvantages below, you may or may not decide that ILM is the best for your environment.&lt;/p&gt;  &lt;table border="1" cellspacing="0" cellpadding="2" width="100%"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top"&gt;&lt;strong&gt;Method&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top"&gt;&lt;strong&gt;Advantages&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top"&gt;&lt;strong&gt;Disadvantages&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;Autonomous&lt;/td&gt;        &lt;td valign="top"&gt;         &lt;ul&gt;           &lt;li&gt;Can be totally isolated &lt;/li&gt;            &lt;li&gt;No firewall setup &lt;/li&gt;            &lt;li&gt;No information leak from internal AD &lt;/li&gt;         &lt;/ul&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;ul&gt;           &lt;li&gt;Expensive owing to added administration&lt;/li&gt;            &lt;li&gt;Distributed administration &lt;/li&gt;            &lt;li&gt;No SSO &lt;/li&gt;         &lt;/ul&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;Forest trust&lt;/td&gt;        &lt;td valign="top"&gt;         &lt;ul&gt;           &lt;li&gt;Good integration with internal AD &lt;/li&gt;            &lt;li&gt;SSO with Kerberos &lt;/li&gt;            &lt;li&gt;Access to DMZ for internal AD objects can be restricted with Selective authentication &lt;/li&gt;         &lt;/ul&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;ul&gt;           &lt;li&gt;Complex firewall setup &lt;/li&gt;            &lt;li&gt;Cannot pick internal objects with GUI picker (unless you open for LDAP from non-DC) &lt;/li&gt;            &lt;li&gt;Have to change the registry to allow RDP logon on WS03. See &lt;a href="http://support.microsoft.com/default.aspx/kb/902336"&gt;KB 902336&lt;/a&gt;&lt;/li&gt;         &lt;/ul&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;Read-only domain controller&lt;/td&gt;        &lt;td valign="top"&gt;         &lt;ul&gt;           &lt;li&gt;A single forest &lt;/li&gt;            &lt;li&gt;SSO &lt;/li&gt;            &lt;li&gt;Exposure can be controlled by managing what sensitive properties are on the RODC &lt;/li&gt;         &lt;/ul&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;ul&gt;           &lt;li&gt;Windows Server 2008 only &lt;/li&gt;            &lt;li&gt;Complex control of updates like DDNS &lt;/li&gt;            &lt;li&gt;Cannot limit users and groups visible &lt;/li&gt;         &lt;/ul&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;ILM&lt;/td&gt;        &lt;td valign="top"&gt;         &lt;ul&gt;           &lt;li&gt;Simple firewall setup &lt;/li&gt;            &lt;li&gt;No inbound firewall rules &lt;/li&gt;            &lt;li&gt;No ILM license if you use &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=D9143610-C04D-41C4-B7EA-6F56819769D5&amp;amp;displaylang=en"&gt;IIFP&lt;/a&gt; (Enterprise Edition is required). See more below.&lt;/li&gt;            &lt;li&gt;Single place of management in the internal AD. Everything is pushed to DMZ including password changes. Helpdesk does not need access to DMZ and not even special procedures for changing properties.&lt;/li&gt;            &lt;li&gt;Full control of what object that are visible in DMZ &lt;/li&gt;            &lt;li&gt;No leak of other objects (trust cannot be queried) &lt;/li&gt;            &lt;li&gt;SSO or at least same password &lt;/li&gt;         &lt;/ul&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;ul&gt;           &lt;li&gt;Requires an extra infrastructure component &lt;/li&gt;            &lt;li&gt;SQL license (unless existing can be used) &lt;/li&gt;            &lt;li&gt;May not have full SSO to all services (re-enter password) &lt;/li&gt;         &lt;/ul&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;h2&gt;&lt;/h2&gt;  &lt;p&gt;The seems fine, you say. I know how to do the other stuff, how complex is it to implement the ILM solution? Well, with ILM 2007 you have to create at least some code or get the code from someone who have made it (like Inceptio). But besides this, the rest is standard components. A very rough plan looks like this -&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Install ILM&lt;/li&gt;    &lt;li&gt;Install and configure &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=ae09d2f5-8ac2-4769-ab6a-48fe35a25c63&amp;amp;DisplayLang=en"&gt;PCNS&lt;/a&gt; on the internal AD domain controllers to capture password changes&lt;/li&gt;    &lt;li&gt;Enable password management in ILM&lt;/li&gt;    &lt;li&gt;Create an DMZ AD management agent, specifying it as password target&lt;/li&gt;    &lt;li&gt;Create an internal AD management agent. Specify it as password source and the DMZ AD Management Agent as target&lt;/li&gt;    &lt;li&gt;Create a management agent that can figure out what objects should be replicated to DMZ (use a group membership, naming convention or some other property). Let this populate an expectedDN property. If the logic is simple, it could be done in an MVExtension. In the solution I have made, I have done it using attribute-value-property files and PowerShell code.&lt;/li&gt;    &lt;li&gt;Flow the properties you want to keep in sync from the internal AD and export them to the DMZ AD&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;With Forefront Identity Manager (FIM) 2010, you should be able to get rid of the coding part, making the solution more attractive. When it comes to IIFP, that is not supported anymore. Microsoft removed the download at some time but made it available again. From my sources at Microsoft, no IIFP version of FIM will be available, so you have to buy it.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8600848-6789606272484064459?l=msgoodies.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/msgoodies?a=Z4-rNwwvGtY:ag3aZHgz9Ns: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.feedburner.com/~ff/blogspot/msgoodies?a=Z4-rNwwvGtY:ag3aZHgz9Ns:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=Z4-rNwwvGtY:ag3aZHgz9Ns:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/msgoodies?a=Z4-rNwwvGtY:ag3aZHgz9Ns:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=Z4-rNwwvGtY:ag3aZHgz9Ns: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/Z4-rNwwvGtY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://msgoodies.blogspot.com/feeds/6789606272484064459/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=8600848&amp;postID=6789606272484064459&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/6789606272484064459?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/6789606272484064459?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/msgoodies/~3/Z4-rNwwvGtY/using-ilm-for-dmz-account-management.html" title="Using ILM for DMZ Account Management" /><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/10/using-ilm-for-dmz-account-management.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU4FRns-fyp7ImA9WxNVFUs.&quot;"><id>tag:blogger.com,1999:blog-8600848.post-17541519921698895</id><published>2009-10-26T14:31:00.001+01:00</published><updated>2009-10-26T14:31:57.557+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-26T14:31:57.557+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="PowerShell V2" /><category scheme="http://www.blogger.com/atom/ns#" term="ILM" /><title>Executing PowerShell code from within your own program</title><content type="html">&lt;p&gt;In V2 this got a lot easier. Here’s my PSExecute function. The idea is that you send in a text value and a script. The script references the value as $_. All output from the script is returned as the result of PSExecute. Exceptions (e.g. syntax errors), errors etc. are returned as well. Depending on the usage, this may not be what you need, but you can change it yourself.&lt;/p&gt;  &lt;p&gt;I’m planning to use this in combination with ILM. Having the ability to use a piece of PowerShell script in an advanced flow rule or in the MVExtension seems very useful.&lt;/p&gt;  &lt;p&gt;A script could be $_.toupper() etc.&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;private&lt;/span&gt; String PSExecute(String Script, String InputValue)&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: #008000"&gt;// Create PS outside the function if called multiple times for performance reasons&lt;/span&gt;&lt;br /&gt;    PowerShell PS = PowerShell.Create(); &lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #008000"&gt;// The script could probably be parsed once to speed things up if the same script is used repeatably&lt;/span&gt;&lt;br /&gt;    PS.AddScript(&lt;span style="color: #006080"&gt;&amp;quot;'&amp;quot;&lt;/span&gt; + InputValue + &lt;span style="color: #006080"&gt;&amp;quot;' | foreach {&amp;quot;&lt;/span&gt; + Script + &lt;span style="color: #006080"&gt;&amp;quot;}&amp;quot;&lt;/span&gt;);&lt;br /&gt;    String s = &lt;span style="color: #006080"&gt;&amp;quot;&amp;quot;&lt;/span&gt;;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;try&lt;/span&gt;&lt;br /&gt;    {&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt; (PSObject result &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; PS.Invoke())&lt;br /&gt;    {&lt;br /&gt;        s += result.ToString();&lt;br /&gt;    } &lt;span style="color: #008000"&gt;// End foreach.&lt;/span&gt;&lt;br /&gt;    }&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;catch&lt;/span&gt; (Exception e)&lt;br /&gt;    {&lt;br /&gt;    s += &lt;span style="color: #006080"&gt;&amp;quot;EXCEPTION: &amp;quot;&lt;/span&gt; + e.Message; &lt;span style="color: #008000"&gt;// ToString();&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #008000"&gt;// just continue&lt;/span&gt;&lt;br /&gt;    }&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt; (DebugRecord result &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; PS.Streams.Debug)&lt;br /&gt;    {&lt;br /&gt;    s += &lt;span style="color: #006080"&gt;&amp;quot;DEBUG: &amp;quot;&lt;/span&gt; + result.ToString();&lt;br /&gt;    }&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt; (VerboseRecord result &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; PS.Streams.Verbose)&lt;br /&gt;    {&lt;br /&gt;    s += &lt;span style="color: #006080"&gt;&amp;quot;VERBOSE: &amp;quot;&lt;/span&gt; + result.ToString();&lt;br /&gt;    }&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt; (WarningRecord result &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; PS.Streams.Warning)&lt;br /&gt;    {&lt;br /&gt;    s += &lt;span style="color: #006080"&gt;&amp;quot;WARNING: &amp;quot;&lt;/span&gt; + result.ToString();&lt;br /&gt;    }&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt; (ErrorRecord result &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; PS.Streams.Error)&lt;br /&gt;    {&lt;br /&gt;    s += &lt;span style="color: #006080"&gt;&amp;quot;ERROR: &amp;quot;&lt;/span&gt; + result.ToString();&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; s;&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;If you want to try it from PowerShell first, here’s the statements -&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;script&lt;/span&gt;=&lt;span style="color: #006080"&gt;'$input | fforeach {$_.toupper()}'&lt;/span&gt;&lt;br /&gt;$&lt;span style="color: #0000ff"&gt;script&lt;/span&gt;=&lt;span style="color: #006080"&gt;'$_.toupper()'&lt;/span&gt;&lt;br /&gt;$ps=[System.Management.Automation.powershell]::create()&lt;br /&gt;$ps.AddScript(&lt;span style="color: #006080"&gt;''&lt;/span&gt;&lt;span style="color: #006080"&gt;''&lt;/span&gt; + $Inputvalue + &lt;span style="color: #006080"&gt;''&lt;/span&gt;&lt;span style="color: #006080"&gt;' | foreach {'&lt;/span&gt; + $&lt;span style="color: #0000ff"&gt;script&lt;/span&gt; + &lt;span style="color: #006080"&gt;'}'&lt;/span&gt;)&lt;br /&gt;$ps.invoke()&lt;br /&gt;$ps.Streams&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;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-17541519921698895?l=msgoodies.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/msgoodies?a=Wbxj6Gc-OJY:-Xy9gmoKri8: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.feedburner.com/~ff/blogspot/msgoodies?a=Wbxj6Gc-OJY:-Xy9gmoKri8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=Wbxj6Gc-OJY:-Xy9gmoKri8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/msgoodies?a=Wbxj6Gc-OJY:-Xy9gmoKri8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=Wbxj6Gc-OJY:-Xy9gmoKri8: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/Wbxj6Gc-OJY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://msgoodies.blogspot.com/feeds/17541519921698895/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=8600848&amp;postID=17541519921698895&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/17541519921698895?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/17541519921698895?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/msgoodies/~3/Wbxj6Gc-OJY/executing-powershell-code-from-within.html" title="Executing PowerShell code from within your own program" /><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/10/executing-powershell-code-from-within.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0EMQXk-eCp7ImA9WxNVFUs.&quot;"><id>tag:blogger.com,1999:blog-8600848.post-4234762633325203313</id><published>2009-10-26T13:54:00.001+01:00</published><updated>2009-10-26T13:54:40.750+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-26T13:54:40.750+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="PowerShell V2" /><title>Getting PowerShell V2 SDK</title><content type="html">&lt;p&gt;Messing around to find it, I’ll make it easier for you!&lt;/p&gt;  &lt;p&gt;Unlike V1, the SDK is not a separate download, but part of &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=c17ba869-9671-4330-a63e-1fd44e0e2505&amp;amp;displaylang=en"&gt;Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1&lt;/a&gt;. After installing it (you can exclude the Win32 parts), add references to the relevant DLLs found in C:\Program Files\Reference Assemblies\Microsoft\WindowsPowerShell\v1.0.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&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-4234762633325203313?l=msgoodies.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/msgoodies?a=AdTsVzBLdhk:G7zbQA1a-38: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.feedburner.com/~ff/blogspot/msgoodies?a=AdTsVzBLdhk:G7zbQA1a-38:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=AdTsVzBLdhk:G7zbQA1a-38:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/msgoodies?a=AdTsVzBLdhk:G7zbQA1a-38:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=AdTsVzBLdhk:G7zbQA1a-38: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/AdTsVzBLdhk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://msgoodies.blogspot.com/feeds/4234762633325203313/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=8600848&amp;postID=4234762633325203313&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/4234762633325203313?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/4234762633325203313?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/msgoodies/~3/AdTsVzBLdhk/getting-powershell-v2-sdk.html" title="Getting PowerShell V2 SDK" /><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/10/getting-powershell-v2-sdk.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEIMQX48fCp7ImA9WxNWFE4.&quot;"><id>tag:blogger.com,1999:blog-8600848.post-3381045343406098504</id><published>2009-10-13T13:55:00.001+02:00</published><updated>2009-10-13T14:23:00.074+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-13T14:23:00.074+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Outlook" /><category scheme="http://www.blogger.com/atom/ns#" term="msgoodies" /><category scheme="http://www.blogger.com/atom/ns#" term="Exchange" /><title>Exchange Web Services Managed API Release Candidate – Part 2</title><content type="html">&lt;p&gt;Developing the every day Line Of Business Applications (LOBA) often includes handling various types of information. When dealing with custom CRM system you often need to collect and bind typed data sources together. One of these sources is often emails but of its good features i.e. handling unstructured information is also its worst. Fortunately the Exchange Server 2007 SP1 and EWS api provides us with tools and handles to enable us to structure and categorize all types of information in a Exchange Mailbox Store. When making connections between two systems some patterns always emerge. The first is you need an unique item key from the source system to store in the destination system to make a one way connection. This strategy has a flaw because when the source item is deleted you need to remove the reference key in the destination. In this case people tend to delete items though outlook and not your LOBA and outlook does not contact you LOBA to tell you have to delete the reference. So the before mentioned strategy flaw was the tight coupling of information between the source and destination. &lt;/p&gt;  &lt;p&gt;So let me suggest another solution. Lets say you what to connect you LOBA with a item from a Exchange Mailbox. Instead of storing the Exchange Item ID in you LOBA try instead tag the Exchange Item with the item id from you LOBA you want to connect with. Then from the LOBA, search the Mailbox for items tagged with the LOBA item id. In this way when some elements has been deleted you do not end up with lost keys because the search will not return items that has been deleted. For making this work we need to handle to things: Item Extended Properties and the ability to search for these items.&lt;/p&gt;  &lt;h2&gt;Working with extended properties&lt;/h2&gt;  &lt;p&gt;To illustrate how to work with extended properties I will make use of an email object and store it in the default Innbox&lt;/p&gt;  &lt;div id="codeSnippetWrapper"&gt;   &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; 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;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; 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"&gt;&lt;span style="color: #606060" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span style="color: #008000"&gt;//Setup the request. es is an instance of ExchangeService&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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"&gt;&lt;span style="color: #606060" id="lnum2"&gt;   2:&lt;/span&gt; EmailMessage em = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; EmailMessage(es);&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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: white; 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"&gt;&lt;span style="color: #606060" id="lnum3"&gt;   3:&lt;/span&gt; em.Subject = &lt;span style="color: #006080"&gt;&amp;quot;Hello World!&amp;quot;&lt;/span&gt;;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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"&gt;&lt;span style="color: #606060" id="lnum4"&gt;   4:&lt;/span&gt; em.Body = &lt;span style="color: #006080"&gt;&amp;quot;Your base belongs to us!&amp;quot;&lt;/span&gt;;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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: white; 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"&gt;&lt;span style="color: #606060" id="lnum5"&gt;   5:&lt;/span&gt; &lt;span style="color: #008000"&gt;//Creating the Extended property CustomerID as a type of string&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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"&gt;&lt;span style="color: #606060" id="lnum6"&gt;   6:&lt;/span&gt; ExtendedPropertyDefinition epd = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; ExtendedPropertyDefinition(DefaultExtendedPropertySet.Common, &lt;span style="color: #006080"&gt;&amp;quot;CustomerID&amp;quot;&lt;/span&gt;, MapiPropertyType.String);&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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: white; 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"&gt;&lt;span style="color: #606060" id="lnum7"&gt;   7:&lt;/span&gt; &lt;span style="color: #008000"&gt;//Give the property a value and assigning it to the email&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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"&gt;&lt;span style="color: #606060" id="lnum8"&gt;   8:&lt;/span&gt; em.SetExtendedProperty(epd, &lt;span style="color: #006080"&gt;&amp;quot;1234&amp;quot;&lt;/span&gt;);&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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: white; 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"&gt;&lt;span style="color: #606060" id="lnum9"&gt;   9:&lt;/span&gt; &lt;span style="color: #008000"&gt;// Store the message in the inbox&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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"&gt;&lt;span style="color: #606060" id="lnum10"&gt;  10:&lt;/span&gt; em.Save(WellKnownFolderName.Inbox);&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Searching form Extended Properties&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;&lt;div id="codeSnippetWrapper"&gt;&lt;br /&gt;  &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; 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;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; 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"&gt;&lt;span style="color: #606060" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span style="color: #008000"&gt;//Defining a view/windows into the search result.&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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"&gt;&lt;span style="color: #606060" id="lnum2"&gt;   2:&lt;/span&gt; ItemView view = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; ItemView(50);&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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: white; 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"&gt;&lt;span style="color: #606060" id="lnum3"&gt;   3:&lt;/span&gt; &lt;span style="color: #008000"&gt;//Telling that i am only interested in the id of the item.&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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"&gt;&lt;span style="color: #606060" id="lnum4"&gt;   4:&lt;/span&gt; view.PropertySet = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; PropertySet(BasePropertySet.IdOnly);&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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: white; 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"&gt;&lt;span style="color: #606060" id="lnum5"&gt;   5:&lt;/span&gt; &lt;span style="color: #008000"&gt;//Creating a extended property definition to search for.&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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"&gt;&lt;span style="color: #606060" id="lnum6"&gt;   6:&lt;/span&gt; ExtendedPropertyDefinition epdCustomerID = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; ExtendedPropertyDefinition(DefaultExtendedPropertySet.Common, &lt;span style="color: #006080"&gt;&amp;quot;CustomerID&amp;quot;&lt;/span&gt;, MapiPropertyType.String);&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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: white; 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"&gt;&lt;span style="color: #606060" id="lnum7"&gt;   7:&lt;/span&gt;&amp;#160; &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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"&gt;&lt;span style="color: #606060" id="lnum8"&gt;   8:&lt;/span&gt; &lt;span style="color: #008000"&gt;//Variable for storing the searchresult&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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: white; 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"&gt;&lt;span style="color: #606060" id="lnum9"&gt;   9:&lt;/span&gt; FindItemsResults&amp;lt;Item&amp;gt; foundItems;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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"&gt;&lt;span style="color: #606060" id="lnum10"&gt;  10:&lt;/span&gt;&amp;#160; &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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: white; 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"&gt;&lt;span style="color: #606060" id="lnum11"&gt;  11:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;do&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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"&gt;&lt;span style="color: #606060" id="lnum12"&gt;  12:&lt;/span&gt; {   &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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: white; 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"&gt;&lt;span style="color: #606060" id="lnum13"&gt;  13:&lt;/span&gt;     &lt;span style="color: #008000"&gt;//Search the inbox for at item with a extended property value stet to 1234&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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"&gt;&lt;span style="color: #606060" id="lnum14"&gt;  14:&lt;/span&gt;     foundItems = es.FindItems(WellKnownFolderName.Inbox, &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; SearchFilter.IsEqualTo(epdCustomerID, &lt;span style="color: #006080"&gt;&amp;quot;1234&amp;quot;&lt;/span&gt;), view);&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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: white; 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"&gt;&lt;span style="color: #606060" id="lnum15"&gt;  15:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt; (Item current &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; foundItems)&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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"&gt;&lt;span style="color: #606060" id="lnum16"&gt;  16:&lt;/span&gt;     {&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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: white; 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"&gt;&lt;span style="color: #606060" id="lnum17"&gt;  17:&lt;/span&gt;         &lt;span style="color: #008000"&gt;//Getting the email message from the Exchange Service via the item id.&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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"&gt;&lt;span style="color: #606060" id="lnum18"&gt;  18:&lt;/span&gt;         EmailMessage email = EmailMessage.Bind(es, current.Id) ;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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: white; 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"&gt;&lt;span style="color: #606060" id="lnum19"&gt;  19:&lt;/span&gt;         Console.WriteLine(&lt;span style="color: #006080"&gt;&amp;quot;Message found. Subject: {0} - Body: {1}&amp;quot;&lt;/span&gt;, email.Subject, email.Body);&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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"&gt;&lt;span style="color: #606060" id="lnum20"&gt;  20:&lt;/span&gt;     }&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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: white; 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"&gt;&lt;span style="color: #606060" id="lnum21"&gt;  21:&lt;/span&gt;     &lt;span style="color: #008000"&gt;//Offset the index of the view/windows with 50. This gives the ablity to page through larger resulset.&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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"&gt;&lt;span style="color: #606060" id="lnum22"&gt;  22:&lt;/span&gt;     view.Offset += 50;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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: white; 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"&gt;&lt;span style="color: #606060" id="lnum23"&gt;  23:&lt;/span&gt;     &lt;span style="color: #008000"&gt;//while there more result available...&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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"&gt;&lt;span style="color: #606060" id="lnum24"&gt;  24:&lt;/span&gt; } &lt;span style="color: #0000ff"&gt;while&lt;/span&gt; (foundItems.MoreAvailable);&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Other cool things&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;The item id can still be very valuable for your LOBA. If you store the id in you LOBA you can always find the item again even if a user decides to move the message to another folder. By using the EmailMessage.Bind method with the item id you will always get the message returned. Same thing goes for folders they also have a id. So even if the users decide to reorganize the folders with the folder id you can still find the folder again.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8600848-3381045343406098504?l=msgoodies.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/msgoodies?a=1R4iCKXBJVo:XdyiG-5xL2o: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.feedburner.com/~ff/blogspot/msgoodies?a=1R4iCKXBJVo:XdyiG-5xL2o:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=1R4iCKXBJVo:XdyiG-5xL2o:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/msgoodies?a=1R4iCKXBJVo:XdyiG-5xL2o:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=1R4iCKXBJVo:XdyiG-5xL2o: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/1R4iCKXBJVo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://msgoodies.blogspot.com/feeds/3381045343406098504/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=8600848&amp;postID=3381045343406098504&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/3381045343406098504?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/3381045343406098504?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/msgoodies/~3/1R4iCKXBJVo/exchange-web-services-managed-api_13.html" title="Exchange Web Services Managed API Release Candidate – Part 2" /><author><name>Peter Lyck Ingerslev</name><uri>http://www.blogger.com/profile/10518095417971796057</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="16936032082416819365" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://msgoodies.blogspot.com/2009/10/exchange-web-services-managed-api_13.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0UASX46fyp7ImA9WxNXGEw.&quot;"><id>tag:blogger.com,1999:blog-8600848.post-3358798043915353964</id><published>2009-10-06T08:40:00.001+02:00</published><updated>2009-10-06T08:40:48.017+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-06T08:40:48.017+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Outlook" /><category scheme="http://www.blogger.com/atom/ns#" term="ASP.NET" /><category scheme="http://www.blogger.com/atom/ns#" term="Exchange" /><category scheme="http://www.blogger.com/atom/ns#" term="Unified Communications" /><title>Exchange Web Services Managed API Release Candidate – Part 1</title><content type="html">&lt;p&gt;For some time now developers have been able to access Exchange Server 2007 via &lt;a href="http://msdn.microsoft.com/en-us/library/bb204119.aspx"&gt;Exchange Web Services&lt;/a&gt;(EWS). To get this working you basically added a webreference in Visual Studio and constructed a request pending upon the type of function you wanted to execute. EWS was a great step away from the various message api(CDO, MAPI, WebDaV) which had their own strength and weakness. But still EWS can be laborious and you often end up building your own stub upon the EWS webreference. Through my teaching of Developing for Microsoft Unified Communications R2 i got to know a new API called &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=e8f38dd1-f123-4a16-b4c8-584d1f84af48&amp;amp;displaylang=en"&gt;Exchange Web Services Managed API&lt;/a&gt;. In short this is the way – this is the api for programming for Exchange Server 2007 with sp1. In the next few blogs I will run through some of the basics for this new API. As a first sending a email would be a place to start.&lt;/p&gt;  &lt;p&gt;Sending email with EWS(c#)&lt;/p&gt;  &lt;div id="codeSnippetWrapper"&gt;   &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; 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;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; 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"&gt;&lt;span style="color: #606060" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span style="color: #008000"&gt;// Setup the request&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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"&gt;&lt;span style="color: #606060" id="lnum2"&gt;   2:&lt;/span&gt; MessageType emailMessage = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; MessageType();&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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: white; 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"&gt;&lt;span style="color: #606060" id="lnum3"&gt;   3:&lt;/span&gt;&amp;#160; &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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"&gt;&lt;span style="color: #606060" id="lnum4"&gt;   4:&lt;/span&gt; &lt;span style="color: #008000"&gt;// Set the To email address&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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: white; 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"&gt;&lt;span style="color: #606060" id="lnum5"&gt;   5:&lt;/span&gt; emailMessage.ToRecipients = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; EmailAddressType[1];&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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"&gt;&lt;span style="color: #606060" id="lnum6"&gt;   6:&lt;/span&gt; emailMessage.ToRecipients[0] = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; EmailAddressType();&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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: white; 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"&gt;&lt;span style="color: #606060" id="lnum7"&gt;   7:&lt;/span&gt; emailMessage.ToRecipients[0].EmailAddress = &lt;span style="color: #006080"&gt;&amp;quot;email@receiver.somewhere&amp;quot;&lt;/span&gt;;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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"&gt;&lt;span style="color: #606060" id="lnum8"&gt;   8:&lt;/span&gt;&amp;#160; &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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: white; 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"&gt;&lt;span style="color: #606060" id="lnum9"&gt;   9:&lt;/span&gt; &lt;span style="color: #008000"&gt;// Set the From email address&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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"&gt;&lt;span style="color: #606060" id="lnum10"&gt;  10:&lt;/span&gt; emailMessage.From = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; SingleRecipientType();&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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: white; 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"&gt;&lt;span style="color: #606060" id="lnum11"&gt;  11:&lt;/span&gt; emailMessage.From.Item = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; EmailAddressType();&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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"&gt;&lt;span style="color: #606060" id="lnum12"&gt;  12:&lt;/span&gt; emailMessage.From.Item.EmailAddress = &lt;span style="color: #006080"&gt;&amp;quot;email@sender.somewhere&amp;quot;&lt;/span&gt;;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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: white; 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"&gt;&lt;span style="color: #606060" id="lnum13"&gt;  13:&lt;/span&gt;&amp;#160; &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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"&gt;&lt;span style="color: #606060" id="lnum14"&gt;  14:&lt;/span&gt; &lt;span style="color: #008000"&gt;// Set the Subject&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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: white; 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"&gt;&lt;span style="color: #606060" id="lnum15"&gt;  15:&lt;/span&gt; emailMessage.Subject = &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.textBoxSubject.Text;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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"&gt;&lt;span style="color: #606060" id="lnum16"&gt;  16:&lt;/span&gt;&amp;#160; &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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: white; 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"&gt;&lt;span style="color: #606060" id="lnum17"&gt;  17:&lt;/span&gt; &lt;span style="color: #008000"&gt;// Set the Body&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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"&gt;&lt;span style="color: #606060" id="lnum18"&gt;  18:&lt;/span&gt; emailMessage.Body = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; BodyType();&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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: white; 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"&gt;&lt;span style="color: #606060" id="lnum19"&gt;  19:&lt;/span&gt; emailMessage.Body.BodyType1 = BodyTypeType.Text;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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"&gt;&lt;span style="color: #606060" id="lnum20"&gt;  20:&lt;/span&gt; emailMessage.Body.Value = &lt;span style="color: #006080"&gt;&amp;quot;Something to write about&amp;quot;&lt;/span&gt;;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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: white; 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"&gt;&lt;span style="color: #606060" id="lnum21"&gt;  21:&lt;/span&gt;&amp;#160; &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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"&gt;&lt;span style="color: #606060" id="lnum22"&gt;  22:&lt;/span&gt;&amp;#160; &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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: white; 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"&gt;&lt;span style="color: #606060" id="lnum23"&gt;  23:&lt;/span&gt; &lt;span style="color: #008000"&gt;// Create request object and set properties&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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"&gt;&lt;span style="color: #606060" id="lnum24"&gt;  24:&lt;/span&gt;&amp;#160; &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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: white; 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"&gt;&lt;span style="color: #606060" id="lnum25"&gt;  25:&lt;/span&gt; &lt;span style="color: #008000"&gt;// Create the CreateItemType in order to create and send the email&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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"&gt;&lt;span style="color: #606060" id="lnum26"&gt;  26:&lt;/span&gt; CreateItemType request = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; CreateItemType();&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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: white; 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"&gt;&lt;span style="color: #606060" id="lnum27"&gt;  27:&lt;/span&gt; request.Items = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; NonEmptyArrayOfAllItemsType();&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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"&gt;&lt;span style="color: #606060" id="lnum28"&gt;  28:&lt;/span&gt; request.Items.Items = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; ItemType[1];&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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: white; 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"&gt;&lt;span style="color: #606060" id="lnum29"&gt;  29:&lt;/span&gt; request.Items.Items[0] = emailMessage;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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"&gt;&lt;span style="color: #606060" id="lnum30"&gt;  30:&lt;/span&gt; request.MessageDisposition = MessageDispositionType.SendAndSaveCopy;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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: white; 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"&gt;&lt;span style="color: #606060" id="lnum31"&gt;  31:&lt;/span&gt; request.MessageDispositionSpecified = &lt;span style="color: #0000ff"&gt;true&lt;/span&gt;;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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"&gt;&lt;span style="color: #606060" id="lnum32"&gt;  32:&lt;/span&gt;&amp;#160; &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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: white; 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"&gt;&lt;span style="color: #606060" id="lnum33"&gt;  33:&lt;/span&gt;&amp;#160; &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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"&gt;&lt;span style="color: #606060" id="lnum34"&gt;  34:&lt;/span&gt; &lt;span style="color: #008000"&gt;// Call CreateItem and process response&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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: white; 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"&gt;&lt;span style="color: #606060" id="lnum35"&gt;  35:&lt;/span&gt;&amp;#160; &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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"&gt;&lt;span style="color: #606060" id="lnum36"&gt;  36:&lt;/span&gt; &lt;span style="color: #008000"&gt;// Finally, call the CreateItem method to create and send the email&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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: white; 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"&gt;&lt;span style="color: #606060" id="lnum37"&gt;  37:&lt;/span&gt; CreateItemResponseType response = _service.CreateItem(request);&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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"&gt;&lt;span style="color: #606060" id="lnum38"&gt;  38:&lt;/span&gt;&amp;#160; &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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: white; 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"&gt;&lt;span style="color: #606060" id="lnum39"&gt;  39:&lt;/span&gt; &lt;span style="color: #008000"&gt;// Analyze the response message for success/failure&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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"&gt;&lt;span style="color: #606060" id="lnum40"&gt;  40:&lt;/span&gt; ItemInfoResponseMessageType responseMessage = response.ResponseMessages.Items[0] &lt;span style="color: #0000ff"&gt;as&lt;/span&gt; ItemInfoResponseMessageType;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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: white; 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"&gt;&lt;span style="color: #606060" id="lnum41"&gt;  41:&lt;/span&gt;&amp;#160; &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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"&gt;&lt;span style="color: #606060" id="lnum42"&gt;  42:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (responseMessage.ResponseClass == ResponseClassType.Success)&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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: white; 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"&gt;&lt;span style="color: #606060" id="lnum43"&gt;  43:&lt;/span&gt; success = &lt;span style="color: #0000ff"&gt;true&lt;/span&gt;;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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"&gt;&lt;span style="color: #606060" id="lnum44"&gt;  44:&lt;/span&gt;&amp;#160; &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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: white; 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"&gt;&lt;span style="color: #606060" id="lnum45"&gt;  45:&lt;/span&gt; MessageBox.Show(&lt;span style="color: #006080"&gt;&amp;quot;Email send succeeded: &amp;quot;&lt;/span&gt; + success);&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Sending email with EWS Managed API(c#)&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div id="codeSnippetWrapper"&gt;&lt;br /&gt;  &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; 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;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; 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"&gt;&lt;span style="color: #606060" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span style="color: #008000"&gt;//Creating service binding for a Exchange Server 2007&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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"&gt;&lt;span style="color: #606060" id="lnum2"&gt;   2:&lt;/span&gt; ExchangeService es = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; ExchangeService(ExchangeVersion.Exchange2007_SP1);&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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: white; 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"&gt;&lt;span style="color: #606060" id="lnum3"&gt;   3:&lt;/span&gt;&amp;#160; &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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"&gt;&lt;span style="color: #606060" id="lnum4"&gt;   4:&lt;/span&gt; &lt;span style="color: #008000"&gt;//Assigning credentials for accessing the sender account&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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: white; 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"&gt;&lt;span style="color: #606060" id="lnum5"&gt;   5:&lt;/span&gt; es.Credentials = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; System.Net.NetworkCredential(&lt;span style="color: #006080"&gt;&amp;quot;sender@email.somewhere&amp;quot;&lt;/span&gt;, &lt;span style="color: #006080"&gt;&amp;quot;SuperSecret#1&amp;quot;&lt;/span&gt;);&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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"&gt;&lt;span style="color: #606060" id="lnum6"&gt;   6:&lt;/span&gt;&amp;#160; &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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: white; 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"&gt;&lt;span style="color: #606060" id="lnum7"&gt;   7:&lt;/span&gt; &lt;span style="color: #008000"&gt;//using autodiscover to find righ Exchange From End&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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"&gt;&lt;span style="color: #606060" id="lnum8"&gt;   8:&lt;/span&gt; es.AutodiscoverUrl(&lt;span style="color: #006080"&gt;&amp;quot;pli@inceptio.dk&amp;quot;&lt;/span&gt;);&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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: white; 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"&gt;&lt;span style="color: #606060" id="lnum9"&gt;   9:&lt;/span&gt;&amp;#160; &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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"&gt;&lt;span style="color: #606060" id="lnum10"&gt;  10:&lt;/span&gt; &lt;span style="color: #008000"&gt;//Creating a email message&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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: white; 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"&gt;&lt;span style="color: #606060" id="lnum11"&gt;  11:&lt;/span&gt; EmailMessage em = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; EmailMessage(es);&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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"&gt;&lt;span style="color: #606060" id="lnum12"&gt;  12:&lt;/span&gt; em.Subject = &lt;span style="color: #006080"&gt;&amp;quot;Hello World!&amp;quot;&lt;/span&gt;;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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: white; 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"&gt;&lt;span style="color: #606060" id="lnum13"&gt;  13:&lt;/span&gt; em.Body = &lt;span style="color: #006080"&gt;&amp;quot;Using EWS Managed API&amp;quot;&lt;/span&gt;;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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"&gt;&lt;span style="color: #606060" id="lnum14"&gt;  14:&lt;/span&gt; em.ToRecipients.Add(&lt;span style="color: #006080"&gt;&amp;quot;receiver@emai.somewhere&amp;quot;&lt;/span&gt;);&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&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: white; 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"&gt;&lt;span style="color: #606060" id="lnum15"&gt;  15:&lt;/span&gt; em.SendAndSaveCopy();&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;/div&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-3358798043915353964?l=msgoodies.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/msgoodies?a=cdfTvSzam_E:iraOjaNN2rA: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.feedburner.com/~ff/blogspot/msgoodies?a=cdfTvSzam_E:iraOjaNN2rA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=cdfTvSzam_E:iraOjaNN2rA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/msgoodies?a=cdfTvSzam_E:iraOjaNN2rA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=cdfTvSzam_E:iraOjaNN2rA: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/cdfTvSzam_E" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://msgoodies.blogspot.com/feeds/3358798043915353964/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=8600848&amp;postID=3358798043915353964&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/3358798043915353964?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/3358798043915353964?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/msgoodies/~3/cdfTvSzam_E/exchange-web-services-managed-api.html" title="Exchange Web Services Managed API Release Candidate – Part 1" /><author><name>Peter Lyck Ingerslev</name><uri>http://www.blogger.com/profile/10518095417971796057</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="16936032082416819365" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://msgoodies.blogspot.com/2009/10/exchange-web-services-managed-api.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkYMSHc8cCp7ImA9WxNQE0Q.&quot;"><id>tag:blogger.com,1999:blog-8600848.post-3094476750399726357</id><published>2009-09-19T23:03:00.001+02:00</published><updated>2009-09-19T23:03:09.978+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-19T23:03:09.978+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="PowerShell V2" /><title>Using a PS Session without having Administrative Permissions</title><content type="html">&lt;p&gt;One of the great features of PowerShell V2 is the remote session support. But in the default configuration only local administrators can create a remote session. This is what a normal user sees -&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_HE3RrxmeZ90/SrVHABRE4KI/AAAAAAAAAGk/OhA-W420jnQ/s1600-h/image%5B20%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://lh3.ggpht.com/_HE3RrxmeZ90/SrVHAgrryKI/AAAAAAAAAGo/OO1Jja4GstA/image_thumb%5B10%5D.png?imgmax=800" width="822" height="119" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;This is how you delegate the feature to other users – the easy way.&lt;/p&gt;  &lt;p&gt;First, create a local group and insert the user(s)&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;net localgroup &lt;span style="color: #006080"&gt;&amp;quot;PowerShell Session Users&amp;quot;&lt;/span&gt; /add&lt;br /&gt;net localgroup &lt;span style="color: #006080"&gt;&amp;quot;PowerShell Session Users&amp;quot;&lt;/span&gt; the-user /add&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Second, execute this command to bring up the permissions GUI&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;Set-PSSessionConfiguration microsoft.powershell -ShowSecurityDescriptorUI&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;add the group and grant execute (invoke) permissions -&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh6.ggpht.com/_HE3RrxmeZ90/SrVHBHLoRUI/AAAAAAAAAGs/lIOsgAuzSJs/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://lh6.ggpht.com/_HE3RrxmeZ90/SrVHBxIRLFI/AAAAAAAAAGw/5SWAuMAKgz8/image_thumb%5B1%5D.png?imgmax=800" width="365" height="439" /&gt;&lt;/a&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;Note that you have to restart the service -&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh4.ggpht.com/_HE3RrxmeZ90/SrVHCOae7TI/AAAAAAAAAG0/CjeXZ_g1PWk/s1600-h/image%5B21%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://lh6.ggpht.com/_HE3RrxmeZ90/SrVHCuD-d6I/AAAAAAAAAG4/r4XQVOIxSTY/image_thumb%5B11%5D.png?imgmax=800" width="705" height="291" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;And finally, try it out.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh4.ggpht.com/_HE3RrxmeZ90/SrVHCzvP5YI/AAAAAAAAAG8/YQpf-agoPWQ/s1600-h/image%5B16%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://lh6.ggpht.com/_HE3RrxmeZ90/SrVHDa9bjkI/AAAAAAAAAHA/R9wHxtsRsC0/image_thumb%5B8%5D.png?imgmax=800" width="648" height="131" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Let me draw your attention to two things in the picture above. First, the remote command is executed by a wsmprovhost process and second, extra properties are returned even though only the processname was selected. The extra properties are useful if you execute command on multiple sessions. In this way, you can recognize the returned objects.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8600848-3094476750399726357?l=msgoodies.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/msgoodies?a=sKczEI9et6k:TLTkcSFEIcY: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.feedburner.com/~ff/blogspot/msgoodies?a=sKczEI9et6k:TLTkcSFEIcY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=sKczEI9et6k:TLTkcSFEIcY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/msgoodies?a=sKczEI9et6k:TLTkcSFEIcY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=sKczEI9et6k:TLTkcSFEIcY: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/sKczEI9et6k" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://msgoodies.blogspot.com/feeds/3094476750399726357/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=8600848&amp;postID=3094476750399726357&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/3094476750399726357?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/3094476750399726357?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/msgoodies/~3/sKczEI9et6k/using-ps-session-without-having.html" title="Using a PS Session without having Administrative Permissions" /><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/09/using-ps-session-without-having.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0QDQXc6fCp7ImA9WxNRF00.&quot;"><id>tag:blogger.com,1999:blog-8600848.post-4462483780788439071</id><published>2009-09-11T23:40:00.001+02:00</published><updated>2009-09-11T23:42:50.914+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-11T23:42:50.914+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Windows Server 2008 R2" /><category scheme="http://www.blogger.com/atom/ns#" term="Windows Server 2008" /><category scheme="http://www.blogger.com/atom/ns#" term="Unified Communications" /><title>Interesting post on Early Media and Windows 2008 Firewall</title><content type="html">&lt;p&gt;Jeff Nye posted an interesting gotcha with the Windows 2008 Firewall blocking Early Media. Find his elaborate version of the problem/solution &lt;a href="http://blogs.technet.com/jeffnye/archive/2009/06/17/early-media-and-windows-server-2008-firewall.aspx"&gt;here&lt;/a&gt; and the original post in French &lt;a href="http://blogs.technet.com/frmcsuc/archive/2009/03/10/eviter-quelques-probl-mes-d-tablissement-de-la-voix-lors-d-appel-vers-l-ext-rieur-avec-office-communicator.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-4462483780788439071?l=msgoodies.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/msgoodies?a=uWdq-NUtQvg:11D-IFXFUrM: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.feedburner.com/~ff/blogspot/msgoodies?a=uWdq-NUtQvg:11D-IFXFUrM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=uWdq-NUtQvg:11D-IFXFUrM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/msgoodies?a=uWdq-NUtQvg:11D-IFXFUrM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=uWdq-NUtQvg:11D-IFXFUrM: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/uWdq-NUtQvg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://msgoodies.blogspot.com/feeds/4462483780788439071/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=8600848&amp;postID=4462483780788439071&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/4462483780788439071?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/4462483780788439071?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/msgoodies/~3/uWdq-NUtQvg/interesting-post-on-early-media-and.html" title="Interesting post on Early Media and Windows 2008 Firewall" /><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/09/interesting-post-on-early-media-and.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0AERnszeip7ImA9WxNRFEU.&quot;"><id>tag:blogger.com,1999:blog-8600848.post-6280377787049604591</id><published>2009-09-08T11:38:00.014+02:00</published><updated>2009-09-09T09:35:07.582+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-09T09:35:07.582+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Mobile" /><category scheme="http://www.blogger.com/atom/ns#" term="Communicator" /><category scheme="http://www.blogger.com/atom/ns#" term="Unified Communications" /><title>Getting Communicator Mobile 2007 R2 running on Nokia S40/S60 devices</title><content type="html">&lt;div align="justify"&gt;&amp;#160;&lt;/div&gt;  &lt;div align="justify"&gt;As the current documentation for the Office Communicator Mobile 2007 R2 client for Java (used by Nokia S40 and S60 devices, among others) is a bit sparse in regards to client setup, I thought I would share this with you. &lt;/div&gt;  &lt;div align="justify"&gt;&amp;#160;&lt;/div&gt;  &lt;div align="justify"&gt;   &lt;br /&gt;    &lt;br /&gt;As you are probably aware, CoMo R2 for Java utilizes components from the Communicator Web Access server, but the thing you need to be aware of is this:     &lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;The Server Address (URL) that you enter when configuring the client on your mobile device has to point to the Communicator Web Access URL, &lt;u&gt;not&lt;/u&gt; the Access Edge (typically sip.domain...)&lt;/div&gt;  &lt;div align="justify"&gt;&amp;#160;&lt;/div&gt;  &lt;div align="justify"&gt;   &lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;&lt;/div&gt;  &lt;div align="justify"&gt;Thus, if you need to support Java clients using CoMo R2, you need your CWA published externally through a reverse proxy (ISA/TMG recommended) - and those clients need to input a different URL than the Windows Mobile CoMo R2 clients (which use the Access Edge URL).&lt;/div&gt;  &lt;div align="justify"&gt;&amp;#160;&lt;/div&gt;  &lt;div align="justify"&gt;   &lt;br /&gt;    &lt;br /&gt;&lt;/div&gt;  &lt;div align="justify"&gt;Hopefully, this will be spelled out in more detail in the documentation in a future revision. &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8600848-6280377787049604591?l=msgoodies.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/msgoodies?a=QNqTj-pv1F4:cKiFPC2CalU: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.feedburner.com/~ff/blogspot/msgoodies?a=QNqTj-pv1F4:cKiFPC2CalU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=QNqTj-pv1F4:cKiFPC2CalU:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/msgoodies?a=QNqTj-pv1F4:cKiFPC2CalU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=QNqTj-pv1F4:cKiFPC2CalU: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/QNqTj-pv1F4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://msgoodies.blogspot.com/feeds/6280377787049604591/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=8600848&amp;postID=6280377787049604591&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/6280377787049604591?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/6280377787049604591?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/msgoodies/~3/QNqTj-pv1F4/getting-communicator-mobile-2007-r2.html" title="Getting Communicator Mobile 2007 R2 running on Nokia S40/S60 devices" /><author><name>Lars Gramkow Nielsen</name><email>noreply@blogger.com</email></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://msgoodies.blogspot.com/2009/09/getting-communicator-mobile-2007-r2.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEAHQH88fyp7ImA9WxNSF0w.&quot;"><id>tag:blogger.com,1999:blog-8600848.post-7750803672750793547</id><published>2009-08-28T23:50:00.000+02:00</published><updated>2009-08-31T11:58:51.177+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-31T11:58:51.177+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Unified Communications" /><title>Whitepaper on Deploying Certificates in OCS 2007 and OCS 2007 R2</title><content type="html">&lt;p&gt;One of the areas where the learning curve for OCS has been very steep is in the area of certificates. This has partly been due to lack of a single coherent OCS related certificate documentation and the fact that using certificates with SSL and TLS are two different species.&lt;/p&gt;  &lt;p&gt;Rick Kingslan, with the help of a series of excellent people, has now created a whitepaper called “&lt;a href="http://go.microsoft.com/fwlink/?LinkId=163083"&gt;Deploying Certificates in Office Communications Server 2007 and Office Communications Server 2007 R2&lt;/a&gt;”. This whitepaper includes links to learning resources for the basics of certificates/PKI, but more importantly very specific OCS 2007 / R2 deployment information (and command lines) and it is certainly worth a read (95 pages of good technical info).&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8600848-7750803672750793547?l=msgoodies.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/msgoodies?a=Ygc7nFcLRLU:UPvXBMQa6cs: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.feedburner.com/~ff/blogspot/msgoodies?a=Ygc7nFcLRLU:UPvXBMQa6cs:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=Ygc7nFcLRLU:UPvXBMQa6cs:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/msgoodies?a=Ygc7nFcLRLU:UPvXBMQa6cs:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=Ygc7nFcLRLU:UPvXBMQa6cs: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/Ygc7nFcLRLU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://msgoodies.blogspot.com/feeds/7750803672750793547/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=8600848&amp;postID=7750803672750793547&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/7750803672750793547?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/7750803672750793547?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/msgoodies/~3/Ygc7nFcLRLU/whitepaper-on-deploying-certificates-in.html" title="Whitepaper on Deploying Certificates in OCS 2007 and OCS 2007 R2" /><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/08/whitepaper-on-deploying-certificates-in.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkEMRnYyfCp7ImA9WxNSEUQ.&quot;"><id>tag:blogger.com,1999:blog-8600848.post-5268619944589537990</id><published>2009-08-21T20:33:00.002+02:00</published><updated>2009-08-25T12:04:47.894+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-25T12:04:47.894+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Unified Communications" /><title>Should I try a VoIP call using this (Wireless/Hotel?) network ?</title><content type="html">&lt;p&gt;The OCS 2007 R2 Reskit provides a Pre-Call Network Diagnostic Tool that can be used for both continuous monitoring from e.g. a machine that has recurring voice quality problems or just as a one time check of that home/hotel/conference wireless network before making a call.&lt;/p&gt;&lt;p&gt;After installation of the &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=9e79a236-c0df-4a72-aba6-9a9602a93ed0&amp;amp;displaylang=en"&gt;OCS 2007 R2 ResKit&lt;/a&gt; go to %ProgramFiles%\Microsoft Office Communications Server 2007 R2\Reskit\PreCallDiagTool and launch PCDSetup.exe (Or copy the directory to a shared network drive).&lt;/p&gt;&lt;p&gt;The tool willl require .NET Framework 3.5 Sp1 and will prompt the user to install it.&lt;/p&gt;&lt;p&gt;After installation start PreCallDiagnostics with elevated privileges (note - this may only be required the first time) and insert your SIP URI.&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh3.ggpht.com/_nKYobGDdbe4/So7ocV_XKhI/AAAAAAAAAPM/-hxbaMV-TT8/s1600-h/image%5B6%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://lh5.ggpht.com/_nKYobGDdbe4/So7odKo20RI/AAAAAAAAAPQ/ngSOGgeNbnY/image_thumb%5B4%5D.png?imgmax=800" width="484" height="322" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;Note that the tool can be started on Windows startup and that it does keep a log over time of network connection quality.&lt;/p&gt;&lt;p&gt;After restarting click “Start media network monitoring” and you will see this screen (After collecting data for a while)&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh5.ggpht.com/_nKYobGDdbe4/So7odkVw08I/AAAAAAAAAPU/War0BCS9gkA/s1600-h/image%5B11%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://lh3.ggpht.com/_nKYobGDdbe4/So7od985_4I/AAAAAAAAAPY/2GQrb5J6h-Q/image_thumb%5B7%5D.png?imgmax=800" width="484" height="212" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;After tool has established connectivity with your R2 Media Relay server it will display 1-4 “bars” of quality in the main window.&lt;/p&gt;&lt;p&gt;It will give you important information like the Network MOS, Packet Loss Rate and not least Jitter and will continue monitoring until stopped. It uses very little bandwidth (approx 5 kbps) and CPU resources.&lt;/p&gt;&lt;p&gt;This is a nice little troubleshooting tool both for personal use and for use at customers where a Monitoring server isn’t readily available.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8600848-5268619944589537990?l=msgoodies.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/msgoodies?a=chwCo-_fipM:GwOWQ9neOyo: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.feedburner.com/~ff/blogspot/msgoodies?a=chwCo-_fipM:GwOWQ9neOyo:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=chwCo-_fipM:GwOWQ9neOyo:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/msgoodies?a=chwCo-_fipM:GwOWQ9neOyo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=chwCo-_fipM:GwOWQ9neOyo: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/chwCo-_fipM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://msgoodies.blogspot.com/feeds/5268619944589537990/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=8600848&amp;postID=5268619944589537990&amp;isPopup=true" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/5268619944589537990?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/5268619944589537990?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/msgoodies/~3/chwCo-_fipM/should-i-try-voip-call-on-using-this.html" title="Should I try a VoIP call using this (Wireless/Hotel?) network ?" /><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/2009/08/should-i-try-voip-call-on-using-this.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEYNSXc5eyp7ImA9WxNTF0Q.&quot;"><id>tag:blogger.com,1999:blog-8600848.post-7759512093589876758</id><published>2009-08-20T21:23:00.001+02:00</published><updated>2009-08-20T21:23:18.923+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-20T21:23:18.923+02:00</app:edited><title>R2 Edge Servers on WS08 and Update Root Certificates issue</title><content type="html">&lt;p&gt;We have encountered an issue with R2 Edge and the Windows Server 2008 feature called “Update Root Certificates feature” which is enabled by default (and apparently not used by R2). Below is a detailed description of the problem provided by my colleague Lars Sørensen from Inceptio A/S.&lt;/p&gt;  &lt;p&gt;First a little update on on the “Update Root Certificates feature” in Windows Server 2008&lt;/p&gt;  &lt;p&gt;The feature is designed to automatically check the list of trusted authorities on the Windows Update Web site when this check is needed by an application on the server. Specifically, if the application is presented with a certificate issued by a certification authority in a PKI that is not directly trusted, the Update Root Certificates feature will contact the Windows Update Web site to see if Microsoft has added the certificate of the root CA to its list of trusted root certificates. If the CA has been added to the Microsoft list of trusted authorities, its certificate will automatically be added to the set of trusted root certificates on the server.&lt;/p&gt;  &lt;p&gt;Why am I telling you this, well recently I did an Office Communications Server 2007 R2 implementation with the Edge role. The certificates on the external interfaces on the Edge server is from Digicert, which are member of the Microsoft root certificate program &lt;a href="http://support.microsoft.com/kb/931125"&gt;KB931125&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Everything is working fine, except for federation. So I did a little troubleshooting and found out that the reason for the federation not working was a certificate issue, not on the customer installation, but on the federated partners Edge server. In this case our own Edge server. In the Event Log I found the following errors :&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_nKYobGDdbe4/So2ilGWmEdI/AAAAAAAAAOk/m6oeb3gY7ZY/s1600-h/clip_image002%5B5%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://lh6.ggpht.com/_nKYobGDdbe4/So2ilgEWFNI/AAAAAAAAAOo/Ow5dxjNu0PY/clip_image002_thumb%5B2%5D.jpg?imgmax=800" width="612" height="484" /&gt;&lt;/a&gt; &lt;a href="http://lh4.ggpht.com/_nKYobGDdbe4/So2imUAFXGI/AAAAAAAAAOs/3zFdkhfj6Mg/s1600-h/clip_image004%5B5%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image004" border="0" alt="clip_image004" src="http://lh5.ggpht.com/_nKYobGDdbe4/So2im5IgxkI/AAAAAAAAAOw/mxxc-7nKQZY/clip_image004_thumb%5B2%5D.jpg?imgmax=800" width="618" height="484" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;So I checked the Certificate Store on our Edge server and could conclude that the root certificate for Digicert wasn’t there. I downloaded and installed the root certificate from &lt;a href="http://www.digicert.com/digicert-root-certificates.htm"&gt;http://www.digicert.com/digicert-root-certificates.htm&lt;/a&gt; and tested the federation again, and the federation between the customer Edge server and our Edge server was now working as expected.&lt;/p&gt;  &lt;p&gt;So why wasn’t the root certificate for Digicert downloaded by the “Update Root Certificates feature”. So I deleted the root certificate from Digicert from our Edge server and did a test from &lt;a href="http://www.digicert.com/digicert-root-certificates.htm"&gt;http://www.digicert.com/digicert-root-certificates.htm&lt;/a&gt;. This is a link where you can test the browser for the root certificate.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_nKYobGDdbe4/So2inNJsXgI/AAAAAAAAAO0/kv09qUeQUdU/s1600-h/clip_image006%5B5%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image006" border="0" alt="clip_image006" src="http://lh4.ggpht.com/_nKYobGDdbe4/So2inw7_uOI/AAAAAAAAAO4/HFVqCtoQsa0/clip_image006_thumb%5B2%5D.jpg?imgmax=800" width="644" height="115" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;When doing this test the following appears in the Event Log as expected.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_nKYobGDdbe4/So2ioIHN9MI/AAAAAAAAAO8/hjPi6H8RVaE/s1600-h/clip_image008%5B5%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image008" border="0" alt="clip_image008" src="http://lh4.ggpht.com/_nKYobGDdbe4/So2iomcsD4I/AAAAAAAAAPA/8xp5LErl5Go/clip_image008_thumb%5B2%5D.jpg?imgmax=800" width="621" height="484" /&gt;&lt;/a&gt; &lt;a href="http://lh5.ggpht.com/_nKYobGDdbe4/So2ipEBTkeI/AAAAAAAAAPE/Pb8iuea9Zrw/s1600-h/clip_image010%5B5%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image010" border="0" alt="clip_image010" src="http://lh4.ggpht.com/_nKYobGDdbe4/So2iprBspbI/AAAAAAAAAPI/XGKU69KK-2c/clip_image010_thumb%5B2%5D.jpg?imgmax=800" width="609" height="484" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;This confirms that the Update Root Certificates feature has downloaded and installed the Digicert root certificate from Windows Update. To make sure that the Digicert certificate I used on the customers edge server,&amp;#160; was working correctly, I created a web site and assigned the Digicert certificate to that web site. Created a host entry on our own Edge server, that pointed to that website, and then tried to access this web site to see if the root certificate for Digicert was downloaded, and it was.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;So far my conclusion is, it seems that the Office Communications Server 2007 R2 Edge role doesn’t trigger the Update Root Certificates feature to download the root certificate.&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;All testing has been done on Windows Server 2008 SP2 and fully updated from Windows Update, and OCS 2007 R2 also fully updated from Windows Update. I don’t know if the problem also occur on Windows Server 2003.&lt;/p&gt;  &lt;p&gt;If anyone has seen similar issues please leave your comments here.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8600848-7759512093589876758?l=msgoodies.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/msgoodies?a=0CwouWEJaHA:SK4xgHGXVjQ: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.feedburner.com/~ff/blogspot/msgoodies?a=0CwouWEJaHA:SK4xgHGXVjQ:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=0CwouWEJaHA:SK4xgHGXVjQ:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/msgoodies?a=0CwouWEJaHA:SK4xgHGXVjQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=0CwouWEJaHA:SK4xgHGXVjQ: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/0CwouWEJaHA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://msgoodies.blogspot.com/feeds/7759512093589876758/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=8600848&amp;postID=7759512093589876758&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/7759512093589876758?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/7759512093589876758?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/msgoodies/~3/0CwouWEJaHA/r2-edge-servers-on-ws08-and-update-root.html" title="R2 Edge Servers on WS08 and Update Root Certificates issue" /><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/08/r2-edge-servers-on-ws08-and-update-root.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU4FSHYycSp7ImA9WxNTGEU.&quot;"><id>tag:blogger.com,1999:blog-8600848.post-7780261147531040019</id><published>2009-08-20T21:04:00.001+02:00</published><updated>2009-08-21T21:45:19.899+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-21T21:45:19.899+02: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>Updates to Communicator Mobile available</title><content type="html">&lt;p&gt;Just in case you haven’t seen then there is a new update for Communicator Mobile that include some nice new features (Including support for WM 6.5). &lt;/p&gt;  &lt;p&gt;Furthermore there is now support not logging on when using roaming networks(Which is nice when you’re in the US and Roaming data costs 12$/MB !!).&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;a href="http://lh5.ggpht.com/_nKYobGDdbe4/So740Oe-4WI/AAAAAAAAAPs/IJ7wisvdR8s/s1600-h/image%5B12%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://lh5.ggpht.com/_nKYobGDdbe4/So7405h_pcI/AAAAAAAAAPw/wPdls9ZCvP4/image_thumb%5B6%5D.png?imgmax=800" width="224" height="297" /&gt;&lt;/a&gt; &lt;a href="http://lh3.ggpht.com/_nKYobGDdbe4/So741URPmgI/AAAAAAAAAP4/6eiW1A79Apw/s1600-h/image%5B17%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://lh6.ggpht.com/_nKYobGDdbe4/So741-0IdkI/AAAAAAAAAP8/cIqptsmEswg/image_thumb%5B11%5D.png?imgmax=800" width="224" height="297" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; Find the update at &lt;a href="http://getcomo.com"&gt;getcomo.com&lt;/a&gt; (Directly from your mobile) at the &lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=bc08cdb7-98e9-47e5-aa63-eb17c2ce4592"&gt;Download Center&lt;/a&gt; and/or read more about the feautres at the Communicator team blog &lt;a href="http://communicatorteam.com/archive/2009/08/03/864.aspx"&gt;Communicator Mobile Just Got Better&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-7780261147531040019?l=msgoodies.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/msgoodies?a=Ez3uaSjnHY4:Ig7ieiy8KeA: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.feedburner.com/~ff/blogspot/msgoodies?a=Ez3uaSjnHY4:Ig7ieiy8KeA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=Ez3uaSjnHY4:Ig7ieiy8KeA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/msgoodies?a=Ez3uaSjnHY4:Ig7ieiy8KeA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=Ez3uaSjnHY4:Ig7ieiy8KeA: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/Ez3uaSjnHY4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://msgoodies.blogspot.com/feeds/7780261147531040019/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=8600848&amp;postID=7780261147531040019&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/7780261147531040019?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/7780261147531040019?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/msgoodies/~3/Ez3uaSjnHY4/updates-to-communicator-mobile.html" title="Updates to Communicator Mobile available" /><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/08/updates-to-communicator-mobile.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUQERXg7cSp7ImA9WxNTF08.&quot;"><id>tag:blogger.com,1999:blog-8600848.post-5443613364946935381</id><published>2009-08-20T01:47:00.001+02:00</published><updated>2009-08-20T02:15:04.609+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-20T02:15:04.609+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Unified Communications" /><title>Tandberg / OCS integration suddenly not working?</title><content type="html">&lt;p&gt;Just a quick note. If you have problems with your Tandberg not working then it may be caused by security update in &lt;a href="http://support.microsoft.com/default.aspx/kb/968389/"&gt;KB968389&lt;/a&gt;. This update provides a new feature called “Extended Protection for Authentication” and when installed (and enabled) it breaks Tandberg functionality.&lt;/p&gt;  &lt;p&gt;Current “solution” is to disable the Extended Protection for Authentication, but I will get back with an updated/elaborated posting if a solution is found.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8600848-5443613364946935381?l=msgoodies.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/msgoodies?a=_vZUlVQo2f8:vEAVqMj8Xq8: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.feedburner.com/~ff/blogspot/msgoodies?a=_vZUlVQo2f8:vEAVqMj8Xq8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=_vZUlVQo2f8:vEAVqMj8Xq8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/msgoodies?a=_vZUlVQo2f8:vEAVqMj8Xq8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=_vZUlVQo2f8:vEAVqMj8Xq8: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/_vZUlVQo2f8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://msgoodies.blogspot.com/feeds/5443613364946935381/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=8600848&amp;postID=5443613364946935381&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/5443613364946935381?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/5443613364946935381?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/msgoodies/~3/_vZUlVQo2f8/tandberg-ocs-integration-suddenly-not.html" title="Tandberg / OCS integration suddenly not working?" /><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/08/tandberg-ocs-integration-suddenly-not.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUAASH09eCp7ImA9WxNTF0k.&quot;"><id>tag:blogger.com,1999:blog-8600848.post-590107015669431541</id><published>2009-08-18T23:38:00.002+02:00</published><updated>2009-08-20T07:55:49.360+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-20T07:55:49.360+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Exchange" /><title>Microsoft Exchange 2010 RC RTW’ed</title><content type="html">&lt;p&gt;and the link is now working ;-) There are a lot of interesting features in this product. I especially like the enhanced OCS integration (Including those Outlook 2010 introduces) and of course the language support (Now supporting Danish).&lt;/p&gt;  &lt;p&gt;Anyway here is the link for the &lt;a href="http://www.microsoft.com/exchange/2010/en/us/try-it.aspx"&gt;download&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-590107015669431541?l=msgoodies.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/msgoodies?a=oA1J2VcCd-Y:Thk5WMGQxYY: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.feedburner.com/~ff/blogspot/msgoodies?a=oA1J2VcCd-Y:Thk5WMGQxYY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=oA1J2VcCd-Y:Thk5WMGQxYY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/msgoodies?a=oA1J2VcCd-Y:Thk5WMGQxYY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=oA1J2VcCd-Y:Thk5WMGQxYY: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/oA1J2VcCd-Y" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://msgoodies.blogspot.com/feeds/590107015669431541/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=8600848&amp;postID=590107015669431541&amp;isPopup=true" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/590107015669431541?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/590107015669431541?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/msgoodies/~3/oA1J2VcCd-Y/microsoft-exchange-2010-rc-rtwed.html" title="Microsoft Exchange 2010 RC RTW’ed" /><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/2009/08/microsoft-exchange-2010-rc-rtwed.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0ADSXg4cSp7ImA9WxNTE0Q.&quot;"><id>tag:blogger.com,1999:blog-8600848.post-5181198496517877661</id><published>2009-08-16T05:02:00.001+02:00</published><updated>2009-08-16T05:02:58.639+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-16T05:02:58.639+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Unified Communications" /><title>OCS 2007 R2 Web Scheduler RTW’ed</title><content type="html">&lt;p&gt;The OCS 2007 R2 Web Scheduler that was originally going to be part of the R2 ResKit has now been Released To Web and can be found &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=6d6848ec-e7d6-41f4-82d9-5bed3526fcbd"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;This is good news for those of us who are running 64-bit Office 2010 as the Live Meeting add-in doesn’t support 64-bit yet :-|&lt;/p&gt;  &lt;p&gt;Here’s a snippet from the download page -&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Web Scheduler is a 64-bit tool for Microsoft Office Communications Server 2007 R2. It provides a Web-based alternative to the add-in for the Microsoft Outlook messaging and collaboration client for the purpose of scheduling a meeting using Office Communications Server 2007 R2. It also provides a browser-based conference management experience that includes operations such as: &lt;/em&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;em&gt;Scheduling a new Live Meeting conference or conference call. &lt;/em&gt;&lt;/li&gt;    &lt;li&gt;&lt;em&gt;Viewing and modifying details of an existing conference. &lt;/em&gt;&lt;/li&gt;    &lt;li&gt;&lt;em&gt;Listing all existing user schedules of a Microsoft Office conference. &lt;/em&gt;&lt;/li&gt;    &lt;li&gt;&lt;em&gt;Deleting an existing conference. &lt;/em&gt;&lt;/li&gt;    &lt;li&gt;&lt;em&gt;Sending an e-mail invitation to conference participants by using a configured SMTP mail server. &lt;/em&gt;&lt;/li&gt;    &lt;li&gt;&lt;em&gt;Joining an existing conference. &lt;/em&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Happy installing !&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8600848-5181198496517877661?l=msgoodies.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/msgoodies?a=q5f4TJwIL2k:fvLCgKDtN1s: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.feedburner.com/~ff/blogspot/msgoodies?a=q5f4TJwIL2k:fvLCgKDtN1s:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=q5f4TJwIL2k:fvLCgKDtN1s:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/msgoodies?a=q5f4TJwIL2k:fvLCgKDtN1s:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=q5f4TJwIL2k:fvLCgKDtN1s: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/q5f4TJwIL2k" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://msgoodies.blogspot.com/feeds/5181198496517877661/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=8600848&amp;postID=5181198496517877661&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/5181198496517877661?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/5181198496517877661?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/msgoodies/~3/q5f4TJwIL2k/ocs-2007-r2-web-scheduler-rtwed.html" title="OCS 2007 R2 Web Scheduler RTW’ed" /><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/08/ocs-2007-r2-web-scheduler-rtwed.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE8DSXcyfip7ImA9WxJbGUs.&quot;"><id>tag:blogger.com,1999:blog-8600848.post-6716656817392749157</id><published>2009-07-30T17:14:00.001+02:00</published><updated>2009-07-30T17:14:38.996+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-30T17:14:38.996+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Security" /><category scheme="http://www.blogger.com/atom/ns#" term="Networking" /><title>Fiddler Web Debugger - A free web debugging tool</title><content type="html">&lt;blockquote&gt;   &lt;h6&gt;What is Fiddler?&lt;/h6&gt;    &lt;p&gt;&lt;a title="Fiddler " href="http://www.fiddler2.com/fiddler2/"&gt;Fiddler &lt;/a&gt; is a Web Debugging Proxy which logs all HTTP(S) traffic between your computer and the Internet. Fiddler allows you to inspect all HTTP(S) traffic, set breakpoints, and &amp;quot;fiddle&amp;quot; with incoming or outgoing data. Fiddler includes a powerful event-based scripting subsystem, and can be extended using any .NET language.&lt;/p&gt;    &lt;p&gt;Fiddler is freeware and can debug traffic from virtually any application, including Internet Explorer, Mozilla Firefox, Opera, and thousands more. &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Came across this tool today, and I’m quite impressed.&lt;/p&gt;  &lt;p&gt;Watch the &lt;a href="http://www.fiddler2.com/fiddler/help/video/default.asp"&gt;videos&lt;/a&gt;! I’ve been looking for a tool like this for long.&lt;/p&gt;  &lt;p&gt;A warning: You have to &lt;em&gt;stretch&lt;/em&gt;&amp;#160; you security if you want to monitor Outlook traffic, as Outlook requires a valid certificate. Read more &lt;a href="http://www.fiddler2.com/Fiddler/help/httpsdecryption.asp"&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-6716656817392749157?l=msgoodies.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/msgoodies?a=rJ3XH_iGjPY:hI26pjPE7kU: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.feedburner.com/~ff/blogspot/msgoodies?a=rJ3XH_iGjPY:hI26pjPE7kU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=rJ3XH_iGjPY:hI26pjPE7kU:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/msgoodies?a=rJ3XH_iGjPY:hI26pjPE7kU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=rJ3XH_iGjPY:hI26pjPE7kU: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/rJ3XH_iGjPY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://msgoodies.blogspot.com/feeds/6716656817392749157/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=8600848&amp;postID=6716656817392749157&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/6716656817392749157?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/6716656817392749157?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/msgoodies/~3/rJ3XH_iGjPY/fiddler-web-debugger-free-web-debugging.html" title="Fiddler Web Debugger - A free web debugging tool" /><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/07/fiddler-web-debugger-free-web-debugging.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE4MQXw8fCp7ImA9WxJbGU4.&quot;"><id>tag:blogger.com,1999:blog-8600848.post-4714770546020304274</id><published>2009-07-30T08:56:00.001+02:00</published><updated>2009-07-30T08:56:20.274+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-30T08:56:20.274+02: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>A useful Test-Host Function</title><content type="html">&lt;p&gt;&lt;a href="http://theexpertscommunity.com/item/show/blog/1001"&gt;BS on Posh (tshell) have created a Test-Host function that is very useful&lt;/a&gt;. I have written some of these functions myself, but this beats the ones I have made, so I’ll switch :)&lt;/p&gt;  &lt;p&gt;Test-Host supports normal ping but as ping is not always sufficient - may be blocked or you may have to wait for a service to be ready (who said RDP?) - TCP port is also supported. Finally, Test-Host accepts the server name as argument or from the pipeline (using V2 parameter binding) and it even allows you to specify a property, in case the server name is part of the object.&lt;/p&gt;  &lt;p&gt;Test-Host sends the server argument down the pipeline, if that server is reachable. In this way, Test-Host acts more like a filter than a classic Test-Cmdlet. Maybe it could have been called Where-HostReachable or similar?&lt;/p&gt;  &lt;p&gt;Another comment I have, is that the server argument should have been called ComputerName (to follow other Cmdlets). To make the function more flexible, alternative names like server and name could have been specified with [Alias()]. A quick fix here is to add ComputerName and Name as aliases: [Alias(&amp;quot;ComputerName&amp;quot;,&amp;quot;Name&amp;quot;)] Place the text before the $server parameter.&lt;/p&gt;  &lt;p&gt;I also found a bug in the code. You have to remove the [string] before the $server to be able to use $property. If server is forced into a string, the properties are lost and thus cannot be selected.&lt;/p&gt;  &lt;p&gt;Some examples of it use -&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;Ping test (not reachable)&lt;br /&gt;PS&amp;gt; test-host www.dr.dk &lt;br /&gt;&lt;br /&gt;TCP port 80 test (reachable)&lt;br /&gt;PS&amp;gt; test-host www.dr.dk -tcp 80&lt;br /&gt;www.dr.dk &lt;br /&gt;&lt;br /&gt;Ping test (reachable)&lt;br /&gt;PS&amp;gt; test-host www.jp.dk&lt;br /&gt;www.jp.dk &lt;br /&gt;&lt;br /&gt;Ping test (not reachable)&lt;br /&gt;PS&amp;gt; test-host 1.2.3.4 &lt;br /&gt;&lt;br /&gt;TCP port 80 test (reachable)&lt;br /&gt;PS&amp;gt; test-host 1.2.3.4 -tcp 80 &lt;br /&gt;&lt;br /&gt;Pipe names&lt;br /&gt;PS&amp;gt; &lt;span style="color: #006080"&gt;&amp;quot;www.dr.dk&amp;quot;&lt;/span&gt;,&lt;span style="color: #006080"&gt;&amp;quot;www.jp.dk&amp;quot;&lt;/span&gt; | test-host -tcp 80 | &lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt; {&lt;span style="color: #006080"&gt;&amp;quot;Web server runs on $_&amp;quot;&lt;/span&gt;}&lt;br /&gt;Web server runs on www.dr.dk&lt;br /&gt;Web server runs on www.jp.dk &lt;br /&gt;&lt;br /&gt;Pipe names, one not reachable&lt;br /&gt;PS&amp;gt; &lt;span style="color: #006080"&gt;&amp;quot;www.dr.dk&amp;quot;&lt;/span&gt;,&lt;span style="color: #006080"&gt;&amp;quot;www.jp.dk&amp;quot;&lt;/span&gt;,&lt;span style="color: #006080"&gt;&amp;quot;nosuchserver&amp;quot;&lt;/span&gt; | test-host -tcp 80 | &lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt; {&lt;span style="color: #006080"&gt;&amp;quot;Web server runs on $_&amp;quot;&lt;/span&gt;}&lt;br /&gt;Web server runs on www.dr.dk&lt;br /&gt;Web server runs on www.jp.dk &lt;br /&gt;&lt;br /&gt;Build objects array with two servers&lt;br /&gt;PS&amp;gt; $objs=@() &lt;br /&gt;PS&amp;gt; $obj=&lt;span style="color: #006080"&gt;&amp;quot;&amp;quot;&lt;/span&gt; | select Server,Role; $obj.server=&lt;span style="color: #006080"&gt;&amp;quot;www.dr.dk&amp;quot;&lt;/span&gt;; $obj.role=&lt;span style="color: #006080"&gt;&amp;quot;webserver&amp;quot;&lt;/span&gt;; $objs+=$obj &lt;br /&gt;PS&amp;gt; $obj=&lt;span style="color: #006080"&gt;&amp;quot;&amp;quot;&lt;/span&gt; | select Server,Role; $obj.server=&lt;span style="color: #006080"&gt;&amp;quot;nosuchserver&amp;quot;&lt;/span&gt;; $obj.role=&lt;span style="color: #006080"&gt;&amp;quot;mailserver&amp;quot;&lt;/span&gt;; $objs+=$obj &lt;br /&gt;PS&amp;gt; $objs &lt;br /&gt;&lt;br /&gt;Server                                                    Role                                                     &lt;br /&gt;------                                                    ----                                                     &lt;br /&gt;www.dr.dk                                                 webserver                                                &lt;br /&gt;nosuchserver                                              mailserver                                               &lt;br /&gt;&lt;br /&gt;Test, selecting the Server property as the name&lt;br /&gt;PS&amp;gt; $objs | test-host -tcp 80 -property Server | &lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt; {&lt;span style="color: #006080"&gt;&amp;quot;Server $_ is running&amp;quot;&lt;/span&gt;}&lt;br /&gt;Server @{Server=www.dr.dk; Role=webserver} is running&lt;br /&gt;&lt;br /&gt;Test, constructing a ComputerName property to show the alias parameter binding&lt;br /&gt;PS&amp;gt; $objs | select @{n=&lt;span style="color: #006080"&gt;&amp;quot;Computername&amp;quot;&lt;/span&gt;;e={$_.server}} | test-host -tcp 80 -property ComputerName| &lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt; {&lt;span style="color: #006080"&gt;&amp;quot;Server $_ is running&amp;quot;&lt;/span&gt;}&lt;br /&gt;Server @{Computername=www.dr.dk} is running&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;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8600848-4714770546020304274?l=msgoodies.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/blogspot/msgoodies?a=rTVvQ5lhkZw:zZCO0LwnECI: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.feedburner.com/~ff/blogspot/msgoodies?a=rTVvQ5lhkZw:zZCO0LwnECI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=rTVvQ5lhkZw:zZCO0LwnECI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/blogspot/msgoodies?a=rTVvQ5lhkZw:zZCO0LwnECI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/blogspot/msgoodies?i=rTVvQ5lhkZw:zZCO0LwnECI: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/rTVvQ5lhkZw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://msgoodies.blogspot.com/feeds/4714770546020304274/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=8600848&amp;postID=4714770546020304274&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/4714770546020304274?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600848/posts/default/4714770546020304274?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/msgoodies/~3/rTVvQ5lhkZw/useful-test-host-function.html" title="A useful Test-Host Function" /><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/07/useful-test-host-function.html</feedburner:origLink></entry></feed>
