<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_天行健@中国元素</title><subtitle type="text">让世界所有的不公平，都在你面前低头…</subtitle><id>http://feed.cnblogs.com/blog/u/56471/rss</id><updated>2012-05-15T05:38:05Z</updated><author><name>天行健@中国元素</name><uri>http://www.cnblogs.com/fuhj02/</uri></author><generator>feed.cnblogs.com</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/fuhj02/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/56471/rss"/><entry><id>http://www.cnblogs.com/fuhj02/archive/2012/05/15/2501438.html</id><title type="text">Visual Studio11新特性预览</title><summary type="text">之前Visual Studio 11开发者预览版发布的消息就受到了众多技术人员的关注和讨论。日前Visual Studio 11最新的Beta版本在巴塞罗那正式推出。为让更多人了解相关内容，以及与Visual Studio 2010所能支持的项目类型比较，下面就介绍一下Visual Studio 11 九大新功能。 VS2011下载地址如下：http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200098118—项目兼容(ProjectCompatibility)—高效的IDE(IDEProductivityImprove.</summary><published>2012-05-15T05:31:00Z</published><updated>2012-05-15T05:31:00Z</updated><author><name>天行健@中国元素</name><uri>http://www.cnblogs.com/fuhj02/</uri></author><link rel="alternate" href="http://www.cnblogs.com/fuhj02/archive/2012/05/15/2501438.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/fuhj02/archive/2012/05/15/2501438.html"/><content type="html">&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 之前Visual Studio 11开发者预览版发布的消息就受到了众多技术人员的关注和讨论。日前Visual Studio 11最新的Beta版本在巴塞罗那正式推出。为让更多人了解相关内容，以及与Visual Studio 2010所能支持的项目类型比较，下面就介绍一下Visual Studio 11 九大新功能。 &lt;p&gt;VS2011下载地址如下：&lt;span style="color: black"&gt;&lt;a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200098118"&gt;http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200098118&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: black"&gt;&amp;#8212;项目兼容(Project&amp;nbsp;Compatibility)&lt;br /&gt;&amp;#8212;高效的IDE(IDE&amp;nbsp;Productivity&amp;nbsp;Improvements)&lt;br /&gt;&amp;#8212;随处搜索(Search&amp;nbsp;Everywhere)&lt;br /&gt;&amp;#8212;工具栏升级(Toolbar&amp;nbsp;Improvements)&lt;br /&gt;&amp;#8212;附加工具(Additional&amp;nbsp;Tooling)&lt;br /&gt;&amp;#8212;多显示器支持(Multiple-Monitor&amp;nbsp;Support&amp;nbsp;)&lt;br /&gt;&amp;#8212;性能提升(Performance&amp;nbsp;Enhancements&amp;nbsp;)&lt;br /&gt;&amp;#8212;新的项目类型(New&amp;nbsp;Project&amp;nbsp;Types)&lt;br /&gt;&amp;#8212;可扩展性(Extensibility&amp;nbsp;)&lt;br /&gt;&lt;strong&gt;1.项目兼容(Project&amp;nbsp;Compatibility)&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;Visual&amp;nbsp;Studio2011的向下兼容性让你不再犹豫升级你的Visual&amp;nbsp;Studio2010。过去每次升级Visual&amp;nbsp;Studio总会修改你打开的项目文件，有时候甚至只是修改一下版本号，就让你的项目不再被兼容，虽然在个人使用时并没有什么大问题，但在团队工作时却会造成大麻烦，只能让整个团队同时升级到相同版本。而现在，当你把你的Visual&amp;nbsp;Studio&amp;nbsp;2010&amp;nbsp;sp1升级到Visual&amp;nbsp;Studio&amp;nbsp;11时，不再会对团队造成影响，因为Visual&amp;nbsp;Studio&amp;nbsp;11使用的.NET4.5框架不会修改旧的项目文件。虽然仅仅支持Visual&amp;nbsp;Studio&amp;nbsp;2010&amp;nbsp;sp1互通，却仍非常实用。&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2.更高效的IDE(IDE&amp;nbsp;Productivity&amp;nbsp;Improvements)&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;不管你是使用哪种编程语言编程，相信你都会很快注意到这些高效的功能，也许你会感到很熟悉，因为很多功能在集成了Productivity&amp;nbsp;Power&amp;nbsp;Tools扩展的Visual&amp;nbsp;Studio&amp;nbsp;2010中已经看到。或者你没有试过Power&amp;nbsp;Tools，但是使用过Eclipse，相信对此也会非常熟悉。首先，解决方案管理器有了很大的修改，它不再只是文件的索引，它可以直接在解决方案管理器中查看对象的结构。比如，你可以展开一个CS类来直接查看它的成员并且直接打开文件相应位置。在类成员上右键就会出来这个成员的call&amp;nbsp;hierarchy菜单，一般来说，这个菜单会包括它的基类、衍生类以及在项目中被引用情况，通过点击菜单中不同的选项来查看或编辑文件相应的位置。正如你所想的那样，双击要查看的节点就会打开节点所对应的文件位置。强大的新的解决方案管理器还提供了预览功能。点击解决方案管理器的节点就会打开一个文档的预览。这样，当你只是想预览一些文件时就只会在一个公共Tab(标签页)中进行预览而不会打开过多的无用Tab。当然你也可以点击预览Tab的Promote按钮或者对它进行手动编辑从而将它变成普通Tab。&lt;img style="width: 475px; height: 353px" border="0" alt="" align="left" src="http://images.cnblogs.com/cnblogs_com/fuhj02/239075/r_1.jpg" width="475" height="353" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: black"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;3.Search&amp;nbsp;Everywhere&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;在Visual&amp;nbsp;Studio2010中虽然已经集成了简单的搜索功能，作为前三受欢迎的功能，在Visual&amp;nbsp;Studio11中必然会着重优化。&lt;br /&gt;&lt;br /&gt;目前已知提供搜索功能的部分：解决方案管理器、扩展管理器、快速查找功能、新的测试管理器、错误列表、并行监控、工具箱、TFS(Team&amp;nbsp;Foundation&amp;nbsp;Server)团队项目、快速执行Visual&amp;nbsp;Studio命令。&lt;/p&gt;&lt;p&gt;&lt;/span&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/fuhj02/239075/r_2.jpg" /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;4.工具栏的改进(Toolbar&amp;nbsp;Improvements&amp;nbsp;)&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/fuhj02/239075/r_3.jpg" /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;最显眼的莫过于增加了快速启动搜索框，可以直接输入快速命令。只要键入关键字就会在下拉列表中提示可用命令。甚至可以在其中找到工具菜单。&lt;/p&gt;&lt;p&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/fuhj02/239075/r_4.jpg" /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;5.附加工具(Additional&amp;nbsp;Tooling)&lt;/strong&gt;&lt;br /&gt;Visual&amp;nbsp;Studio新增了几项新工具都非常引人注目。Visual&amp;nbsp;Studio&amp;nbsp;11&amp;nbsp;IDE集成了Expression&amp;nbsp;Blend，极大方便了XAML相关应用的开发。此外Visual&amp;nbsp;Studio&amp;nbsp;2011提供了一个崭新的代码克隆分析工具，相信VSS的老用户会非常熟悉，但是这个新版本不仅集成在Visual&amp;nbsp;Studio&amp;nbsp;11中，而且功能相当完备。&lt;/p&gt;&lt;p&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/fuhj02/239075/r_5.jpg" /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;6.支持多显示器(Multiple-Monitor&amp;nbsp;Support)&lt;br /&gt;Visual&amp;nbsp;Studio&amp;nbsp;2010虽然已经开始支持多显示器，但仍有不少问题。Visual&amp;nbsp;Studio&amp;nbsp;2011提供了强有力的多显示器支持。和新的IE一样，当你把一个Tab拖到另一个显示器上时，它会自动创建一个IDE，你可以轻松地把自己的项目移动到另外一个显示器中折叠起来。&lt;/p&gt;&lt;p&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/fuhj02/239075/r_6.jpg" /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: black"&gt;&lt;strong&gt;7.性能优化(Performance&amp;nbsp;Enhancements)&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;Visual&amp;nbsp;Studio&amp;nbsp;2010中有一个没怎么引起注意过的多项目并行Build功能，但只局限于C++，现在在Visual&amp;nbsp;Studio&amp;nbsp;11中，已经不用再受编程语言约束了，不论你是用什么语言(Visual&amp;nbsp;Studio&amp;nbsp;11支持的)开发的，都可以畅快地体验并行Build的效率。从此可以在&amp;#8220;最大并行数&amp;#8221;中来管理最大并行项目数。Visual&amp;nbsp;Studio&amp;nbsp;11中msbuild.exe不复存在，而且由于Visual&amp;nbsp;Studio&amp;nbsp;11中Build过程也不再在Devenv.exe进程中进行，所以Visual&amp;nbsp;Studio&amp;nbsp;11编译时还将会获得更好的UI反应和更低的内存占用。Visual&amp;nbsp;Studio&amp;nbsp;11中，最大同时进行的Build数默认是等于CPU核心数的，不建议你手动修改这个值，因为可能会造成不必要的矛盾的编译结果。&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;8.新的项目类型(New&amp;nbsp;Project&amp;nbsp;Types)&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;从专业的角度来看是否应该从一款Visual&amp;nbsp;Studio&amp;nbsp;转向另一版本的Visual&amp;nbsp;Studio&amp;nbsp;，很重要的一点就是比较项目类型。新的Metro风格的项目毫无疑问是Visual&amp;nbsp;Studio&amp;nbsp;11的主推功能。包括Application,&amp;nbsp;Grid&amp;nbsp;Application,&amp;nbsp;Split&amp;nbsp;Application,&amp;nbsp;Class&amp;nbsp;Library&amp;nbsp;和Unit&amp;nbsp;Test&amp;nbsp;Library。另外一个&amp;nbsp;Visual&amp;nbsp;Studio&amp;nbsp;11&amp;nbsp;就是JavaScript，包括Blank&amp;nbsp;Application,&amp;nbsp;Fixed&amp;nbsp;Layout&amp;nbsp;Application,&amp;nbsp;Grid&amp;nbsp;Application,&amp;nbsp;Navigation&amp;nbsp;Application&amp;nbsp;和Split&amp;nbsp;Application。当然，这些新功能只能在Windows8环境下使用。值得注意的是，这一版本还是支持窗口程序的，Silver&amp;nbsp;Light也依然存在，仍然是Visual&amp;nbsp;Studio所支持的平台之一。还应该注意到是，Visual&amp;nbsp;Studio&amp;nbsp;11甚至包含了便携库，这允许跨平台的Silver&amp;nbsp;Light和标准.NET的跨平台开发。另一个很具代表性的特色就是，所以的新功能都支持C++开发，使用C++来开发Metro界面。但是，Visual&amp;nbsp;Studio&amp;nbsp;11将不再支持.NET2.0以下平台，很较早的程序需要重新。&lt;br /&gt;&lt;strong&gt;9.可扩展性(Extensibility&amp;nbsp;)&lt;/strong&gt;&lt;br /&gt;Visual&amp;nbsp;Studio&amp;nbsp;11提供了相当多的插件来帮助更简单地操作。&lt;br /&gt;Visual&amp;nbsp;Studio&amp;nbsp;Package:&amp;nbsp;提供旧版本Visual&amp;nbsp;Studio&amp;nbsp;视图的插件&lt;br /&gt;C#/Visual&amp;nbsp;Basic&amp;nbsp;Item&amp;nbsp;and&amp;nbsp;Project&amp;nbsp;Templates:&amp;nbsp;定制的文档和项目模板&lt;br /&gt;Editor&amp;nbsp;Classifier:&amp;nbsp;自定义文本高亮支持&lt;br /&gt;Editor&amp;nbsp;Margin:&amp;nbsp;支持自定义编辑器"margins"&amp;nbsp;UI&lt;br /&gt;Editor&amp;nbsp;Text&amp;nbsp;Adornment:&amp;nbsp;支持编辑器自定义图片装饰&lt;br /&gt;Editor&amp;nbsp;Viewport&amp;nbsp;Adornment:&amp;nbsp;支持画板的自定义图片美化&lt;br /&gt;VSIX&amp;nbsp;Project:&amp;nbsp;Visual&amp;nbsp;Studio&amp;nbsp;11的可扩展性在Visual&amp;nbsp;Studio&amp;nbsp;Gallery中的体现&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: black"&gt;Windows&amp;nbsp;Presentation&amp;nbsp;Foundation/Windows&amp;nbsp;Forms&amp;nbsp;Toolbox&amp;nbsp;Control:&amp;nbsp;客户端UI的自定义控制&lt;br /&gt;Visual&amp;nbsp;Studio&amp;nbsp;11还提供了新的API接口用来开发插件。和之前透露的一样，包括可以使用第三方单元测试工具(XUnit&amp;nbsp;and&amp;nbsp;NUnit)和定制的代码分析工具。这是微软开放IDE扩展的一个信号，特别是面向开源工具。&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;&lt;img src="http://www.cnblogs.com/fuhj02/aggbug/2501438.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/fuhj02/archive/2012/05/15/2501438.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/fuhj02/archive/2012/01/03/2310580.html</id><title type="text">Renew 成功，连任微软最有价值专家</title><summary type="text">Renew 成功，连任微软最有价值专家昨天收到了来自微软最有价值专家项目组的邮件，成功的renew了，这一年认识了很多MVP的朋友，学到了很多东西，得到了很多机会，衷心感谢所有的朋友，感谢Sisley，感谢MVP项目组，谢谢大家。未来的一年里会让自己更加的努力！</summary><published>2012-01-02T16:24:00Z</published><updated>2012-01-02T16:24:00Z</updated><author><name>天行健@中国元素</name><uri>http://www.cnblogs.com/fuhj02/</uri></author><link rel="alternate" href="http://www.cnblogs.com/fuhj02/archive/2012/01/03/2310580.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/fuhj02/archive/2012/01/03/2310580.html"/><content type="html">&lt;p&gt;Renew 成功，连任微软最有价值专家&lt;br /&gt;&amp;nbsp;昨天收到了来自微软最有价值专家项目组的邮件，成功的renew了，这一年认识了很多MVP的朋友，学到了很多东西，得到了很多机会，衷心感谢所有的朋友，感谢Sisley，感谢MVP项目组，谢谢大家。&lt;br /&gt;&amp;nbsp;未来的一年里会让自己更加的努力！&lt;/p&gt;&lt;p&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/fuhj02/powershel.png" /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/fuhj02/aggbug/2310580.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/fuhj02/archive/2012/01/03/2310580.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/fuhj02/archive/2011/10/22/2221311.html</id><title type="text">通过PowerShell执行SOAP请求</title><summary type="text">SOAP的请求在Web Service是无处不在的，像WCF服务和传统ASMX asp.net的web Service。如果要测试SOAP服务是否好用通过web编程来实现就显得太过于复杂了，下面的脚本片段(snippet)将会轻而易举的完成通过powershell测试和调用SOAP服务： 隐藏行号 复制代码 ？ 这是一段程序代码。 ...</summary><published>2011-10-22T10:30:00Z</published><updated>2011-10-22T10:30:00Z</updated><author><name>天行健@中国元素</name><uri>http://www.cnblogs.com/fuhj02/</uri></author><link rel="alternate" href="http://www.cnblogs.com/fuhj02/archive/2011/10/22/2221311.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/fuhj02/archive/2011/10/22/2221311.html"/><content type="html">&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; SOAP的请求在Web Service是无处不在的，像WCF服务和传统ASMX asp.net的web Service。如果要测试SOAP服务是否好用通过web编程来实现就显得太过于复杂了，下面的脚本片段(snippet)将会轻而易举的完成通过powershell测试和调用SOAP服务：&lt;/p&gt;  &lt;div class="src_container"&gt;   &lt;div class="titlebar" title="标题"&gt;&lt;span class="toolbar" title="工具栏区域"&gt;&lt;span style="color: blue" class="button" onmouseover="ChangeIcon(this,true)" title="显示/隐藏源代码行号" onmouseout="ChangeIcon(this,false)" onclick="LineNumberVisible(this)"&gt;隐藏行号&lt;/span&gt; &lt;span class="button" onmouseover="ChangeIcon(this,true)" title="将源代码复制到剪贴板上" onkeypress="CopyCode_CheckKey(this,true)" onmouseout="ChangeIcon(this,false)" onclick="CopyCode(this)"&gt;复制代码&lt;/span&gt; &lt;span class="button" onmouseover="ChangeIcon(this,true)" title="关于本程序" onmouseout="ChangeIcon(this,false)" onclick="AboutMe()"&gt;？&lt;/span&gt; &lt;/span&gt;这是一段程序代码。 &lt;/div&gt;    &lt;div class="clientarea linewrap" title="源代码区域"&gt;     &lt;ol class="mainarea number_show"&gt;       &lt;li value="value"&gt;         &lt;span style="color: blue"&gt;function &lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;Execute-SOAPRequest &lt;/span&gt;      &lt;/li&gt;      &lt;li&gt;        &lt;span style="color: #5f9ea0"&gt;&lt;/span&gt;&lt;span style="color: black"&gt;( &lt;/span&gt;      &lt;/li&gt;      &lt;li&gt;        &lt;span style="color: black"&gt;        [&lt;/span&gt;&lt;span style="color: teal"&gt;Xml&lt;/span&gt;&lt;span style="color: black"&gt;]    &lt;/span&gt;&lt;span style="color: purple"&gt;$SOAPRequest&lt;/span&gt;&lt;span style="color: black"&gt;, &lt;/span&gt;      &lt;/li&gt;      &lt;li&gt;        &lt;span style="color: black"&gt;        [&lt;/span&gt;&lt;span style="color: teal"&gt;String&lt;/span&gt;&lt;span style="color: black"&gt;] &lt;/span&gt;&lt;span style="color: purple"&gt;$URL &lt;/span&gt;      &lt;/li&gt;      &lt;li&gt;        &lt;span style="color: purple"&gt;&lt;/span&gt;&lt;span style="color: black"&gt;) &lt;/span&gt;      &lt;/li&gt;      &lt;li&gt;        &lt;span style="color: black"&gt;{ &lt;/span&gt;      &lt;/li&gt;      &lt;li&gt;        &lt;span style="color: black"&gt;        &lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;write-host &lt;/span&gt;&lt;span style="color: maroon"&gt;&amp;quot;Sending SOAP Request To Server: $URL&amp;quot; &lt;/span&gt;      &lt;/li&gt;      &lt;li&gt;        &lt;span style="color: maroon"&gt;        &lt;/span&gt;&lt;span style="color: purple"&gt;$soapWebRequest &lt;/span&gt;&lt;span style="color: red"&gt;= &lt;/span&gt;&lt;span style="color: black"&gt;[&lt;/span&gt;&lt;span style="color: teal"&gt;System.Net.WebRequest&lt;/span&gt;&lt;span style="color: black"&gt;]::&lt;/span&gt;&lt;span style="color: #8b4513"&gt;Create&lt;/span&gt;&lt;span style="color: black"&gt;(&lt;/span&gt;&lt;span style="color: purple"&gt;$URL&lt;/span&gt;&lt;span style="color: black"&gt;) &lt;/span&gt;      &lt;/li&gt;      &lt;li&gt;        &lt;span style="color: black"&gt;        &lt;/span&gt;&lt;span style="color: purple"&gt;$soapWebRequest&lt;/span&gt;&lt;span style="color: black"&gt;.Headers.Add(&lt;/span&gt;&lt;span style="color: maroon"&gt;&amp;quot;SOAPAction&amp;quot;&lt;/span&gt;&lt;span style="color: black"&gt;,&lt;/span&gt;&lt;span style="color: maroon"&gt;&amp;quot;`&amp;quot;http://www.facilities.co.za/valid8service/valid8service/Valid8Address`&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style="color: black"&gt;)&lt;/span&gt;      &lt;/li&gt;      &lt;li&gt;        &lt;span style="color: black"&gt;&lt;/span&gt;      &lt;/li&gt;      &lt;li&gt;        &lt;span style="color: black"&gt;        &lt;/span&gt;&lt;span style="color: purple"&gt;$soapWebRequest&lt;/span&gt;&lt;span style="color: black"&gt;.ContentType &lt;/span&gt;&lt;span style="color: red"&gt;= &lt;/span&gt;&lt;span style="color: maroon"&gt;&amp;quot;text/xml;charset=`&amp;quot;utf-8`&amp;quot;&amp;quot; &lt;/span&gt;      &lt;/li&gt;      &lt;li&gt;        &lt;span style="color: maroon"&gt;        &lt;/span&gt;&lt;span style="color: purple"&gt;$soapWebRequest&lt;/span&gt;&lt;span style="color: black"&gt;.Accept      &lt;/span&gt;&lt;span style="color: red"&gt;= &lt;/span&gt;&lt;span style="color: maroon"&gt;&amp;quot;text/xml&amp;quot; &lt;/span&gt;      &lt;/li&gt;      &lt;li&gt;        &lt;span style="color: maroon"&gt;        &lt;/span&gt;&lt;span style="color: purple"&gt;$soapWebRequest&lt;/span&gt;&lt;span style="color: black"&gt;.Method      &lt;/span&gt;&lt;span style="color: red"&gt;= &lt;/span&gt;&lt;span style="color: maroon"&gt;&amp;quot;POST&amp;quot; &lt;/span&gt;      &lt;/li&gt;      &lt;li&gt;        &lt;span style="color: maroon"&gt;        &lt;/span&gt;      &lt;/li&gt;      &lt;li&gt;        &lt;span style="color: maroon"&gt;        &lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;write-host &lt;/span&gt;&lt;span style="color: maroon"&gt;&amp;quot;Initiating Send.&amp;quot; &lt;/span&gt;      &lt;/li&gt;      &lt;li&gt;        &lt;span style="color: maroon"&gt;        &lt;/span&gt;&lt;span style="color: purple"&gt;$requestStream &lt;/span&gt;&lt;span style="color: red"&gt;= &lt;/span&gt;&lt;span style="color: purple"&gt;$soapWebRequest&lt;/span&gt;&lt;span style="color: black"&gt;.GetRequestStream() &lt;/span&gt;      &lt;/li&gt;      &lt;li&gt;        &lt;span style="color: black"&gt;        &lt;/span&gt;&lt;span style="color: purple"&gt;$SOAPRequest&lt;/span&gt;&lt;span style="color: black"&gt;.Save(&lt;/span&gt;&lt;span style="color: purple"&gt;$requestStream&lt;/span&gt;&lt;span style="color: black"&gt;) &lt;/span&gt;      &lt;/li&gt;      &lt;li&gt;        &lt;span style="color: black"&gt;        &lt;/span&gt;&lt;span style="color: purple"&gt;$requestStream&lt;/span&gt;&lt;span style="color: black"&gt;.Close() &lt;/span&gt;      &lt;/li&gt;      &lt;li&gt;        &lt;span style="color: black"&gt;        &lt;/span&gt;      &lt;/li&gt;      &lt;li&gt;        &lt;span style="color: black"&gt;        &lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;write-host &lt;/span&gt;&lt;span style="color: maroon"&gt;&amp;quot;Send Complete, Waiting For Response.&amp;quot; &lt;/span&gt;      &lt;/li&gt;      &lt;li&gt;        &lt;span style="color: maroon"&gt;        &lt;/span&gt;&lt;span style="color: purple"&gt;$resp &lt;/span&gt;&lt;span style="color: red"&gt;= &lt;/span&gt;&lt;span style="color: purple"&gt;$soapWebRequest&lt;/span&gt;&lt;span style="color: black"&gt;.GetResponse() &lt;/span&gt;      &lt;/li&gt;      &lt;li&gt;        &lt;span style="color: black"&gt;        &lt;/span&gt;&lt;span style="color: purple"&gt;$responseStream &lt;/span&gt;&lt;span style="color: red"&gt;= &lt;/span&gt;&lt;span style="color: purple"&gt;$resp&lt;/span&gt;&lt;span style="color: black"&gt;.GetResponseStream() &lt;/span&gt;      &lt;/li&gt;      &lt;li&gt;        &lt;span style="color: black"&gt;        &lt;/span&gt;&lt;span style="color: purple"&gt;$soapReader &lt;/span&gt;&lt;span style="color: red"&gt;= &lt;/span&gt;&lt;span style="color: black"&gt;[&lt;/span&gt;&lt;span style="color: teal"&gt;System.IO.StreamReader&lt;/span&gt;&lt;span style="color: black"&gt;](&lt;/span&gt;&lt;span style="color: purple"&gt;$responseStream&lt;/span&gt;&lt;span style="color: black"&gt;) &lt;/span&gt;      &lt;/li&gt;      &lt;li&gt;        &lt;span style="color: black"&gt;        &lt;/span&gt;&lt;span style="color: purple"&gt;$ReturnXml &lt;/span&gt;&lt;span style="color: red"&gt;= &lt;/span&gt;&lt;span style="color: black"&gt;[&lt;/span&gt;&lt;span style="color: teal"&gt;Xml&lt;/span&gt;&lt;span style="color: black"&gt;] &lt;/span&gt;&lt;span style="color: purple"&gt;$soapReader&lt;/span&gt;&lt;span style="color: black"&gt;.ReadToEnd() &lt;/span&gt;      &lt;/li&gt;      &lt;li&gt;        &lt;span style="color: black"&gt;        &lt;/span&gt;&lt;span style="color: purple"&gt;$responseStream&lt;/span&gt;&lt;span style="color: black"&gt;.Close() &lt;/span&gt;      &lt;/li&gt;      &lt;li&gt;        &lt;span style="color: black"&gt;        &lt;/span&gt;      &lt;/li&gt;      &lt;li&gt;        &lt;span style="color: black"&gt;        &lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;write-host &lt;/span&gt;&lt;span style="color: maroon"&gt;&amp;quot;Response Received.&amp;quot;&lt;/span&gt;      &lt;/li&gt;      &lt;li&gt;        &lt;span style="color: maroon"&gt;&lt;/span&gt;      &lt;/li&gt;      &lt;li&gt;        &lt;span style="color: maroon"&gt;        &lt;/span&gt;&lt;span style="color: blue"&gt;return &lt;/span&gt;&lt;span style="color: purple"&gt;$ReturnXml &lt;/span&gt;      &lt;/li&gt;      &lt;li&gt;        &lt;span style="color: purple"&gt;&lt;/span&gt;&lt;span style="color: black"&gt;}&lt;/span&gt;      &lt;/li&gt;      &lt;li&gt;        &lt;span style="color: black"&gt;&lt;/span&gt;      &lt;/li&gt;      &lt;li&gt;        &lt;span style="color: black"&gt;&lt;/span&gt;&lt;span style="color: purple"&gt;$url &lt;/span&gt;&lt;span style="color: red"&gt;= &lt;/span&gt;&lt;span style="color: maroon"&gt;'http://www.facilities.co.za/valid8service/valid8service.asmx'&lt;/span&gt;      &lt;/li&gt;      &lt;li&gt;        &lt;span style="color: maroon"&gt;&lt;/span&gt;&lt;span style="color: purple"&gt;$soap &lt;/span&gt;&lt;span style="color: red"&gt;= &lt;/span&gt;&lt;span style="color: black"&gt;[&lt;/span&gt;&lt;span style="color: teal"&gt;xml&lt;/span&gt;&lt;span style="color: black"&gt;]&lt;/span&gt;&lt;span style="color: maroon"&gt;@'&lt;/span&gt;      &lt;/li&gt;      &lt;li&gt;        &lt;span style="color: maroon"&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;/span&gt;      &lt;/li&gt;      &lt;li&gt;        &lt;span style="color: maroon"&gt;&amp;lt;soap12:Envelope xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; xmlns:xsd=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot; xmlns:soap12=&amp;quot;http://www.w3.org/2003/05/soap-envelope&amp;quot;&amp;gt;&lt;/span&gt;      &lt;/li&gt;      &lt;li&gt;        &lt;span style="color: maroon"&gt;  &amp;lt;soap12:Body&amp;gt;&lt;/span&gt;      &lt;/li&gt;      &lt;li&gt;        &lt;span style="color: maroon"&gt;    &amp;lt;Valid8Address xmlns=&amp;quot;http://www.facilities.co.za/valid8service/valid8service&amp;quot;&amp;gt;&lt;/span&gt;      &lt;/li&gt;      &lt;li&gt;        &lt;span style="color: maroon"&gt;      &amp;lt;ID&amp;gt;string&amp;lt;/ID&amp;gt;&lt;/span&gt;      &lt;/li&gt;      &lt;li&gt;        &lt;span style="color: maroon"&gt;      &amp;lt;Address1&amp;gt;&amp;lt;/Address1&amp;gt;&lt;/span&gt;      &lt;/li&gt;      &lt;li&gt;        &lt;span style="color: maroon"&gt;      &amp;lt;Address2&amp;gt;&amp;lt;/Address2&amp;gt;&lt;/span&gt;      &lt;/li&gt;      &lt;li&gt;        &lt;span style="color: maroon"&gt;      &amp;lt;Address3&amp;gt;&amp;lt;/Address3&amp;gt;&lt;/span&gt;      &lt;/li&gt;      &lt;li&gt;        &lt;span style="color: maroon"&gt;      &amp;lt;Address4&amp;gt;&amp;lt;/Address4&amp;gt;&lt;/span&gt;      &lt;/li&gt;      &lt;li&gt;        &lt;span style="color: maroon"&gt;      &amp;lt;Address5&amp;gt;&amp;lt;/Address5&amp;gt;&lt;/span&gt;      &lt;/li&gt;      &lt;li&gt;        &lt;span style="color: maroon"&gt;      &amp;lt;Address6&amp;gt;&amp;lt;/Address6&amp;gt;&lt;/span&gt;      &lt;/li&gt;      &lt;li&gt;        &lt;span style="color: maroon"&gt;      &amp;lt;PostCode&amp;gt;&amp;lt;/PostCode&amp;gt;&lt;/span&gt;      &lt;/li&gt;      &lt;li&gt;        &lt;span style="color: maroon"&gt;    &amp;lt;/Valid8Address&amp;gt;&lt;/span&gt;      &lt;/li&gt;      &lt;li&gt;        &lt;span style="color: maroon"&gt;  &amp;lt;/soap12:Body&amp;gt;&lt;/span&gt;      &lt;/li&gt;      &lt;li&gt;        &lt;span style="color: maroon"&gt;&amp;lt;/soap12:Envelope&amp;gt;&lt;/span&gt;      &lt;/li&gt;      &lt;li&gt;        &lt;span style="color: maroon"&gt;'@&lt;/span&gt;      &lt;/li&gt;      &lt;li&gt;        &lt;span style="color: maroon"&gt;&lt;/span&gt;&lt;span style="color: purple"&gt;$ret &lt;/span&gt;&lt;span style="color: red"&gt;= &lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;Execute-SOAPRequest &lt;/span&gt;&lt;span style="color: purple"&gt;$soap $url&lt;/span&gt;      &lt;/li&gt;    &lt;/ol&gt;  &lt;/div&gt;&lt;/div&gt;&lt;style type="text/css"&gt;.src_container{background-color:#e7e5dc; width:99%; overflow:hidden; margin:12px 0 12px 0 !important; padding:0px 3px 3px 0px}.src_container .titlebar{ background-color:#d4dfff;  border:1px solid #4f81bd;  border-bottom:0;  padding:3px 24px;  margin:0;  width:auto;  line-height:120%;  overflow:hidden;  text-align:left;  font-size:12px}.src_container .toolbar{ display:inline;  font-weight:normal;  font-size:100%;  float:right;  cursor:hand;  color:#00f;  text-align:left;  overflow:hidden}.toolbar span.button{ display:inline;  font-weight:normal;  font-size:100%;  cursor:hand;  color:#00f;  text-align:left;  overflow:hidden;  cursor:pointer;}.src_container div.clientarea{ background-color:white;  border:1px solid #4f81bd;  margin:0;  width:auto !important;  width:100%;  height:auto;  overflow:auto;  text-align:left;  font-size:12px;  font-family: "Courier New","Consolas","Fixedsys",courier,monospace,serif}.src_container ol.mainarea{ padding:0 0 0 52px;  margin:0;  background-color:#f7f7ff !important}.number_show{ padding-left:52px !important;  list-style:decimal outside !important}.number_show li{ list-style:decimal outside !important;  border-left:1px dotted #4f81bd}.number_hide{ padding-left:0px !important;  list-style-type:none !important}.number_hide li{ list-style-type:none !important;  border-left:0px}ol.mainarea li{ display:list-item !important;  font-size:12px !important;  margin:0 !important;  line-height:18px !important;  padding:0 0 0 0px !important;  background-color:#f7f7ff !important;  color:#4f81bd}ol.mainarea li pre{color:black; line-height:18px;  padding:0 0 0 12px !important; margin:0em;  background-color:#fff !important}.linewrap ol.mainarea li pre{white-space:pre-wrap; white-space:-moz-pre-wrapwhite-space:-pre-wrap; white-space:-o-pre-wrap; word-wrap:break-word}ol.mainarea li pre.alt{ background-color:#f7f7ff !important}&lt;/style&gt;&lt;script language="javascript"&gt;function CopyCode(key){var codeElement=null;var trElements=document.all.tags("ol");var i;for(i=0;i&lt;trElements.length;++i){if(key.parentElement.parentElement.parentElement==trElements[i].parentElement.parentElement){codeElement=trElements[i];break}}if(codeElement!=null){var content=codeElement.innerText;if(window.clipboardData==null){window.alert("您的浏览器不支持脚本复制，请尝试手动复制。")}else{window.clipboardData.setData("Text",content);window.alert("源代码已经复制到剪贴板上。")}}}function LineNumberVisible(key){var codeElement=null;var trElements=document.all.tags("ol");var i;for(i=0;i&lt;trElements.length;++i){if(key.parentElement.parentElement.parentElement==trElements[i].parentElement.parentElement){codeElement=trElements[i];break}}if(codeElement!=null){if(codeElement.className=="mainarea number_hide"){codeElement.className="mainarea number_show";key.innerText="隐藏行号"}else{codeElement.className="mainarea number_hide";key.innerText="显示行号"}}}function ChangeIcon(key,isHover){if(isHover)key.style.color='red';else key.style.color='blue'}function CopyCode_CheckKey(key){if(window.event.keyCode==13)CopyCode(key)}function AboutMe(){window.alert("本代码框由 CodePaste for Windows Live Writer 生成。\r\n\r\nAuthor: 范传根\r\nEmail: chuangen@live.cn\r\nWebsite: http://chuangen.name\r\nBlog: http://blog.csdn.net/chuangen");}&lt;/script&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 在这里得到的$ret变量中存储的是System.Xml.XmlDocument对象，如果需要查看其中的具体内容可以通过Export-Clixml这个cmdlet将其输出到本地文件中查看。 &lt;div class="src_container"&gt;  &lt;div class="titlebar" title="标题"&gt;&lt;span class="toolbar" title="工具栏区域"&gt;&lt;span class="button" onmouseover="ChangeIcon(this,true)" title="显示/隐藏源代码行号" onmouseout="ChangeIcon(this,false)" onclick="LineNumberVisible(this)"&gt;隐藏行号&lt;/span&gt; &lt;span class="button" onmouseover="ChangeIcon(this,true)" title="将源代码复制到剪贴板上" onkeypress="CopyCode_CheckKey(this,true)" onmouseout="ChangeIcon(this,false)" onclick="CopyCode(this)"&gt;复制代码&lt;/span&gt; &lt;span class="button" onmouseover="ChangeIcon(this,true)" title="关于本程序" onmouseout="ChangeIcon(this,false)" onclick="AboutMe()"&gt;？&lt;/span&gt; &lt;/span&gt;这是一段程序代码。 &lt;/div&gt;  &lt;div class="clientarea linewrap" title="源代码区域"&gt;    &lt;ol class="mainarea number_show"&gt;      &lt;li value="value"&gt;        &lt;span style="color: purple"&gt;$ret &lt;/span&gt;&lt;span style="color: black"&gt;| &lt;/span&gt;&lt;span style="color: #5f9ea0"&gt;Export-Clixml  &lt;/span&gt;&lt;span style="color: maroon"&gt;c:\1.xml;Get-Content c:\1.xml&lt;/span&gt;      &lt;/li&gt;    &lt;/ol&gt;  &lt;/div&gt;&lt;/div&gt;&lt;style type="text/css"&gt;.src_container{background-color:#e7e5dc; width:99%; overflow:hidden; margin:12px 0 12px 0 !important; padding:0px 3px 3px 0px}.src_container .titlebar{ background-color:#d4dfff;  border:1px solid #4f81bd;  border-bottom:0;  padding:3px 24px;  margin:0;  width:auto;  line-height:120%;  overflow:hidden;  text-align:left;  font-size:12px}.src_container .toolbar{ display:inline;  font-weight:normal;  font-size:100%;  float:right;  cursor:hand;  color:#00f;  text-align:left;  overflow:hidden}.toolbar span.button{ display:inline;  font-weight:normal;  font-size:100%;  cursor:hand;  color:#00f;  text-align:left;  overflow:hidden;  cursor:pointer;}.src_container div.clientarea{ background-color:white;  border:1px solid #4f81bd;  margin:0;  width:auto !important;  width:100%;  height:auto;  overflow:auto;  text-align:left;  font-size:12px;  font-family: "Courier New","Consolas","Fixedsys",courier,monospace,serif}.src_container ol.mainarea{ padding:0 0 0 52px;  margin:0;  background-color:#f7f7ff !important}.number_show{ padding-left:52px !important;  list-style:decimal outside !important}.number_show li{ list-style:decimal outside !important;  border-left:1px dotted #4f81bd}.number_hide{ padding-left:0px !important;  list-style-type:none !important}.number_hide li{ list-style-type:none !important;  border-left:0px}ol.mainarea li{ display:list-item !important;  font-size:12px !important;  margin:0 !important;  line-height:18px !important;  padding:0 0 0 0px !important;  background-color:#f7f7ff !important;  color:#4f81bd}ol.mainarea li pre{color:black; line-height:18px;  padding:0 0 0 12px !important; margin:0em;  background-color:#fff !important}.linewrap ol.mainarea li pre{white-space:pre-wrap; white-space:-moz-pre-wrapwhite-space:-pre-wrap; white-space:-o-pre-wrap; word-wrap:break-word}ol.mainarea li pre.alt{ background-color:#f7f7ff !important}&lt;/style&gt;&lt;script language="javascript"&gt;function CopyCode(key){var codeElement=null;var trElements=document.all.tags("ol");var i;for(i=0;i&lt;trElements.length;++i){if(key.parentElement.parentElement.parentElement==trElements[i].parentElement.parentElement){codeElement=trElements[i];break}}if(codeElement!=null){var content=codeElement.innerText;if(window.clipboardData==null){window.alert("您的浏览器不支持脚本复制，请尝试手动复制。")}else{window.clipboardData.setData("Text",content);window.alert("源代码已经复制到剪贴板上。")}}}function LineNumberVisible(key){var codeElement=null;var trElements=document.all.tags("ol");var i;for(i=0;i&lt;trElements.length;++i){if(key.parentElement.parentElement.parentElement==trElements[i].parentElement.parentElement){codeElement=trElements[i];break}}if(codeElement!=null){if(codeElement.className=="mainarea number_hide"){codeElement.className="mainarea number_show";key.innerText="隐藏行号"}else{codeElement.className="mainarea number_hide";key.innerText="显示行号"}}}function ChangeIcon(key,isHover){if(isHover)key.style.color='red';else key.style.color='blue'}function CopyCode_CheckKey(key){if(window.event.keyCode==13)CopyCode(key)}function AboutMe(){window.alert("本代码框由 CodePaste for Windows Live Writer 生成。\r\n\r\nAuthor: 范传根\r\nEmail: chuangen@live.cn\r\nWebsite: http://chuangen.name\r\nBlog: http://blog.csdn.net/chuangen");}&lt;/script&gt;&lt;p&gt;作者: 付海军   &lt;br /&gt;出处：&lt;a href="http://fuhj02.cnblogs.com"&gt;http://fuhj02.cnblogs.com&lt;/a&gt;   &lt;br /&gt;版权：本文版权归作者和博客园共有   &lt;br /&gt;转载：欢迎转载，为了保存作者的创作热情，请按要求【转载】，谢谢   &lt;br /&gt;要求：未经作者同意，必须保留此段声明；必须在文章中给出原文连接；否则必究法律责任   &lt;br /&gt;个人网站: &lt;a href="http://txj.shell.tor.hu/"&gt;http://txj.shell.tor.hu/&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/fuhj02/aggbug/2221311.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/fuhj02/archive/2011/10/22/2221311.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/fuhj02/archive/2011/05/11/2043029.html</id><title type="text">【招聘】.NET研发工程师</title><summary type="text">.NET研发工程师 工作地点：北京招聘人数：2人福利待遇：五险一金工资范围：面谈，据水平而定，下不设底，上不封顶岗位职责：1、负责关键业务平台项目后续需求开发与平台维护；2、负责部门提出的业务流程功能修改的代码开发；3、参与部门的项目设计、代码开发、项目核心技术攻关任务，并提出合理化建议；4、完成部门经理分配的其他项目开发工作。综合素质要求:1、客户第一，团队合作，拥抱变化，激情，诚信，敬业2、正直、诚实、激情、敬业，具有开放、分享、乐于助人的精神3、具有较强学习和适应工作能力 4、善于团队合作，容易沟通任职资格：1、本科及以上学历，计算机或相关专业，2年以上系统研发维护经验； 2、精通C#,</summary><published>2011-05-11T03:27:00Z</published><updated>2011-05-11T03:27:00Z</updated><author><name>天行健@中国元素</name><uri>http://www.cnblogs.com/fuhj02/</uri></author><link rel="alternate" href="http://www.cnblogs.com/fuhj02/archive/2011/05/11/2043029.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/fuhj02/archive/2011/05/11/2043029.html"/><content type="html">&lt;p&gt;&lt;strong&gt;.NET研发工程师&lt;/strong&gt; &lt;/p&gt;&lt;p&gt;&lt;strong&gt;工作地点：&lt;/strong&gt;北京&lt;br /&gt;&lt;strong&gt;招聘人数：&lt;/strong&gt;2人&lt;br /&gt;&lt;strong&gt;福利待遇：&lt;/strong&gt;五险一金&lt;br /&gt;&lt;strong&gt;工资范围：&lt;/strong&gt;面谈，据水平而定，下不设底，上不封顶&lt;br /&gt;&lt;strong&gt;岗位职责：&lt;/strong&gt;&lt;br /&gt;1、负责关键业务平台项目后续需求开发与平台维护；&lt;br /&gt;2、负责部门提出的业务流程功能修改的代码开发；&lt;br /&gt;3、参与部门的项目设计、代码开发、项目核心技术攻关任务，并提出合理化建议；&lt;br /&gt;4、完成部门经理分配的其他项目开发工作。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;综合素质要求:&lt;/strong&gt;&lt;br /&gt;1、客户第一，团队合作，拥抱变化，激情，诚信，敬业&lt;br /&gt;2、正直、诚实、激情、敬业，具有开放、分享、乐于助人的精神&lt;br /&gt;3、具有较强学习和适应工作能力 &lt;br /&gt;4、善于团队合作，容易沟通&lt;/p&gt;&lt;p&gt;&lt;strong&gt;任职资格：&lt;/strong&gt;&lt;br /&gt;1、本科及以上学历，计算机或相关专业，2年以上系统研发维护经验； &lt;br /&gt;2、精通C#,.net至少一门语言，熟悉winForm,webForm或unix下脚本语言的设计与开发；&lt;br /&gt;3、熟悉windows,UNIX系统下internet开发，能够独立完成系统架构，设计开发测试，布署； &lt;br /&gt;4、熟悉Oracle、MYsql、SQLSERVER至少一门数据库的使用、设计、开发、调试；5、参与过企业级软件项目开发，具有良好的团队意识与协同工作能力； &lt;/p&gt;&lt;p&gt;&lt;strong&gt;联系方式：&lt;/strong&gt;&lt;br /&gt;E-mail：powershell#live.cn（发邮件时将#替换为@）&lt;/p&gt;&lt;p&gt;&lt;strong&gt;招聘单位:&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;阿里巴巴.中国万网薪资待遇：据水平而定，下不设底，上不封顶。福利：正规的5险一金和补充商业医疗保险(本人及家人)，阿里集团的互助保险，餐补，通讯补。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/fuhj02/aggbug/2043029.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/fuhj02/archive/2011/05/11/2043029.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/fuhj02/archive/2011/04/18/2019855.html</id><title type="text">确保数据安全是云计算取信于用户的关键</title><summary type="text">据Bitkom协会调查，21%的受访者担心云计算会产生数据丢失。20%的人拒绝使用云服务，因为他们对数据安全心怀疑虑。2月27日，Google电子邮件服务“Gmail”一度发生故障导致部分用户无法访问。一些Gmail用户昨天声称，他们莫名其妙地失去了邮箱内的电子邮件、文件夹和联系人列表。谷歌最初估计，在2亿Gmail用户中，有0.29%受到影响；但该公司很快又将这一数字下调至0.02%，即大约4万个账户。Gmail事件进一步引起了人们对云计算数据安全的担忧，也给了我们一个启示——确保数据安全是云计算取信于用户的关键。事实上，数据安全问题一直是云计算发展过程中的“绊脚石”，人们对于云计算的不信任</summary><published>2011-04-18T06:46:00Z</published><updated>2011-04-18T06:46:00Z</updated><author><name>天行健@中国元素</name><uri>http://www.cnblogs.com/fuhj02/</uri></author><link rel="alternate" href="http://www.cnblogs.com/fuhj02/archive/2011/04/18/2019855.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/fuhj02/archive/2011/04/18/2019855.html"/><content type="html">&lt;p&gt;&lt;span style="line-height: 150%; font-family: 宋体"&gt;据&lt;span&gt;Bitkom协会调查，21%的受访者担心云计算会产生数据丢失。20%的人拒绝使用云服务，因为他们对数据安全心怀疑虑。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 150%; font-family: 宋体"&gt;2&lt;/span&gt;&lt;span style="line-height: 150%; font-family: 宋体"&gt;月27日，Google电子邮件服务&amp;#8220;Gmail&amp;#8221;一度发生故障导致部分用户无法访问。一些&lt;span&gt;Gmail用户昨天声称，他们莫名其妙地失去了邮箱内的电子邮件、文件夹和联系人列表。谷歌最初估计，在2亿Gmail用户中，有0.29%受到影响；但该公司很快又将这一数字下调至0.02%，即大约4万个账户。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 150%; font-family: 宋体"&gt;Gmail&lt;/span&gt;&lt;span style="line-height: 150%; font-family: 宋体"&gt;事件进一步引起了人们对云计算数据安全的担忧，也给了我们一个启示&amp;#8212;&amp;#8212;&lt;/span&gt;&lt;span style="line-height: 150%; font-family: 宋体"&gt;确保数据安全是云计算取信于用户的关键。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 150%; font-family: 宋体"&gt;事实上，数据安全问题一直是云计算发展过程中的&amp;#8220;绊脚石&amp;#8221;，人们对于云计算的不信任普遍源于数据安全问题的担忧。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 150%; font-family: 宋体"&gt;2010&lt;/span&gt;&lt;span style="line-height: 150%; font-family: 宋体"&gt;年&lt;span&gt;5月份，埃森哲与中国电子学会共同发布了一份名为《中国云计算发展的务实之路》的报告。报告指出，安全问题是全球对云计算最大的质疑。而这种担忧在中国尤为突出，&amp;#8220;以至于首席信息官们如履薄冰，特别是面对公有云服务时&amp;#8221;。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 150%; font-family: 宋体"&gt;报告显示，有&lt;span&gt;59%的中国受访者表示&amp;#8220;十分担心&amp;#8221;云中数据的安全性、私密性和机密性，高于美国的50%以及中国以外其他国家的42%。相比其他所有国家，更高比例的中国受访者认为其所在企业和机构拥有不得外泄的敏感数据。中国高管尤其担心数据遭黑客盗窃，或是意外泄露给同一云供应商的其他用户或本企业的非授权员工。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 150%; font-family: 宋体"&gt;由此足见，云安全问题无法回避。用户在使用云计算的时候，最先考虑的是如何解决云计算的安全性问题。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 150%; font-family: 宋体"&gt;安全问题能否解决是关系到云服务能否得到用户认可的关键要素。除了可能发生的大规模计算资源的系统故障外，云计算安全隐患还包括缺乏统一的安全标准、适用法规以及在用户的隐私保护、数据主权、迁移、传输安全、灾备等方面存在问题。中国的云计算产业发展必须在数据加密、迁移、备份以及位置控制方面进行深入的研究，保证云服务的易用性、可用性、稳定性、安全性。安全问题的解决还包括云计算相关法律法规的不断完善，比如在数据隐私保护、数据主权归属、服务协议保障、服务商资质认定等方面规范的制定都将为云计算产业的发展奠定坚实的基础，增强用户使用云计算的信心，让他们愿意为云计算付费。也唯有如此，才会有更多的云应用服务商实现云上的盈利，从而开发更多的应用，实现产业的良性循环和可持续发展。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: 150%; font-family: 宋体"&gt;总之，确保数据安全是云计算取得用户信任的关键，谁解决了这一难题，谁将成为云计算时代的最大受益者。正因如此，微软、思科、Oracle、EMC、Novell 都纷纷进入云安全市场，抢夺云计算制高点。&lt;/span&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/fuhj02/aggbug/2019855.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/fuhj02/archive/2011/04/18/2019855.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/fuhj02/archive/2011/02/21/1960246.html</id><title type="text">企业发展如何借助“云的力量”</title><summary type="text">IT产业变革正在改变软件交付和消费的模式，而云计算是当今IT产业进一步快速发展的推动力和重要机会。云计算将从根本上改变政府服务、科学探索与发现以及经济和社会发展的方向。作为全球领先的技术、产品、解决方案的供应商，微软有丰富的提供云服务的经验。在微软Tech·ED 2010大会期间，微软展示了包括Windows Azure、Windows Phone 7、Microsoft Lync等在内的多项重要的云计算产品和技术。微软大中华区平台及开发工具事业部总经理、微软大中华区首席云计算战略官谢恩伟指出：“微软在云计算领域有着近15年的经验，从Hotmail到Windows Upd</summary><published>2011-02-21T14:36:00Z</published><updated>2011-02-21T14:36:00Z</updated><author><name>天行健@中国元素</name><uri>http://www.cnblogs.com/fuhj02/</uri></author><link rel="alternate" href="http://www.cnblogs.com/fuhj02/archive/2011/02/21/1960246.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/fuhj02/archive/2011/02/21/1960246.html"/><content type="html">&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"&gt;&lt;span class="apple-style-span"&gt;&lt;span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"&gt;&lt;font face="Times New Roman"&gt;IT&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;产业变革正在改变软件交付和消费的模式，而云计算是当今&lt;/span&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"&gt;&lt;font face="Times New Roman"&gt;IT&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;产业进一步快速发展的推动力和重要机会。云计算将从根本上改变政府服务、科学探索与发现以及经济和社会发展的方向。&lt;/span&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"&gt;&lt;span class="apple-style-span"&gt;&lt;span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;作为全球领先的技术、产品、解决方案的供应商，微软有丰富的提供云服务的经验。在微软&lt;/span&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"&gt;&lt;font face="Times New Roman"&gt;Tech&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;&amp;#183;&lt;/span&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"&gt;&lt;font face="Times New Roman"&gt;ED 2010&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;大会期间，微软展示了包括&lt;/span&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"&gt;&lt;font face="Times New Roman"&gt;Windows Azure&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;、&lt;/span&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"&gt;&lt;font face="Times New Roman"&gt;Windows Phone 7&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;、&lt;/span&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"&gt;&lt;font face="Times New Roman"&gt;Microsoft Lync&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;等在内的多项重要的云计算产品和技术。微软大中华区平台及开发工具事业部总经理、微软大中华区首席云计算战略官谢恩伟指出：&amp;#8220;微软在云计算领域有着近&lt;/span&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"&gt;&lt;font face="Times New Roman"&gt;15&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;年的经验，从&lt;/span&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"&gt;&lt;font face="Times New Roman"&gt;Hotmail&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;到&lt;/span&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"&gt;&lt;font face="Times New Roman"&gt;Windows Update&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;再到&lt;/span&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"&gt;&lt;font face="Times New Roman"&gt;Xbox Live&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;，微软运营着世界上最大的云服务。同时，微软拥有最全面的企业级&lt;/span&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"&gt;&lt;a href="http://w-w.cn/"&gt;&lt;span lang="EN-US" style="color: windowtext; font-family: 宋体; text-decoration: none; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; text-underline: none"&gt;&lt;span lang="EN-US"&gt;云计算&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;产品、技术和基础设施，并致力于通过&lt;/span&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"&gt;&lt;font face="Times New Roman"&gt;Windows Azure&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;云计算平台、&lt;/span&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"&gt;&lt;font face="Times New Roman"&gt;Hyper-V&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;虚拟化技术等实现&amp;#8216;&lt;/span&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"&gt;&lt;font face="Times New Roman"&gt;IT&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;即服务&amp;#8217;愿景，帮助企业减少&lt;/span&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"&gt;&lt;font face="Times New Roman"&gt;IT&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;基础设施投入，从而专注于核心业务研发。&amp;#8221;&lt;/span&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"&gt;&lt;span class="apple-style-span"&gt;&lt;span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"&gt;&lt;font face="Times New Roman"&gt;Tech&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;&amp;#183;&lt;/span&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"&gt;&lt;font face="Times New Roman"&gt;ED2010&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;技术大会上，&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;&amp;#8220;启动云的力量&amp;#8221;这个响亮的口号一经&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;抛出，很快响遍了大江南北。&lt;/span&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"&gt;&lt;span class="apple-style-span"&gt;&lt;span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;何谓云的力量？&lt;/span&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;span style="line-height: 150%; mso-bidi-font-size: 10.5pt"&gt;&lt;font face="Times New Roman"&gt; &lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"&gt;&lt;span class="apple-style-span"&gt;&lt;span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;微软大中华区总裁兼首席执行官梁念坚说：&amp;#8220;我们利用我们&lt;/span&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"&gt;&lt;font face="Times New Roman"&gt;15&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;年的经验，以及在云计算里面的投入，现在可以覆盖到全方位，包括政府、大企业、中小企业，也包括公有云、私有云。所以我们可以跟大家一起提升企业竞争能力，分享云端的应用和新商业模式。&amp;#8221;&lt;/span&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"&gt;&lt;span class="apple-style-span"&gt;&lt;span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt"&gt;提升企业竞争力，这就是微软云的力量。那么，对于普遍意义的云计算，力量又是什么？&lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"&gt;&lt;span style="font-family: 宋体; mso-bidi-font-family: Tahoma"&gt;这得从云计算的起源说起。云计算的出现并非偶然，早在上世纪&lt;span lang="EN-US"&gt;60&lt;/span&gt;年代，麦卡锡就提出了把计算能力作为一种像&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Tahoma"&gt;水和电一样的公用事业提供给用户的理念，这成为云计算思想的起源。在&lt;/span&gt;&lt;span lang="EN-US" style="mso-bidi-font-family: Tahoma"&gt;&lt;font face="Times New Roman"&gt;20&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Tahoma"&gt;世纪&lt;/span&gt;&lt;span lang="EN-US" style="mso-bidi-font-family: Tahoma"&gt;&lt;font face="Times New Roman"&gt;80&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Tahoma"&gt;年代网格计算、&lt;/span&gt;&lt;span lang="EN-US" style="mso-bidi-font-family: Tahoma"&gt;&lt;font face="Times New Roman"&gt;90&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Tahoma"&gt;年代公用计算，&lt;/span&gt;&lt;span lang="EN-US" style="mso-bidi-font-family: Tahoma"&gt;&lt;font face="Times New Roman"&gt;21&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Tahoma"&gt;世纪初虚拟化技术、&lt;/span&gt;&lt;span lang="EN-US" style="mso-bidi-font-family: Tahoma"&gt;&lt;font face="Times New Roman"&gt;SOA&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Tahoma"&gt;、&lt;/span&gt;&lt;span lang="EN-US" style="mso-bidi-font-family: Tahoma"&gt;&lt;font face="Times New Roman"&gt;SaaS&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Tahoma"&gt;应用的支撑下，云计算作为一种新兴的资源使用和交付模式逐渐为学界和产业界所认知。&lt;/span&gt;&lt;span lang="EN-US" style="mso-bidi-font-family: Tahoma"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 10.5pt; line-height: 150%; mso-bidi-font-family: Tahoma"&gt;&lt;font face="宋体"&gt;继个人计算机变革、互联网变革之后，云计算被看作第三次&lt;span lang="EN-US"&gt;IT&lt;/span&gt;浪潮，是中国战略性新兴产业的重要组成部分。它将带来生活、生产方式和商业模式的根本性改变，成为当前全社会关注的热点。&lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"&gt;&lt;span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;改变生活、生产方式和商业模式，这就是云的力量。企业如何借助&amp;#8220;云的力量&amp;#8221;加快发展呢？&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"&gt;&lt;span class="apple-style-span"&gt;&lt;span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma"&gt;可能需要从三个层面来思考这个问题，第一就是对云服务的认识，第二就是对引入云服务过程中存在的问题，需要做具体的分析，第三就是要思考应该从哪些方面去入手来积极推动云服务促进企业的发展。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/fuhj02/aggbug/1960246.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/fuhj02/archive/2011/02/21/1960246.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/fuhj02/archive/2011/01/25/1944354.html</id><title type="text">云计算推进企业管理深化，私有云将会深入企业</title><summary type="text">今天，云计算已经变得炙手可热，云的形式带来的全新的应用方式，企业用户部署大型应用既不再需要斥巨资修建自己的数据中心了，也不需要考虑设备的选型和采购了，甚至都不需要有自己的运维人员24小时的进行运维了，只需要花极少的钱就可以购买到相应的云计算服务，剩下的复杂而纷繁的数据中心选址，搭建，运营，维护等任务都交给微软来做。微软为大家提供了完整而全面的云计算解决方案，让用户真正感受到云就在身边，而不是遥不可及的，可以让用用最熟悉的工具和语言，方便、可靠、快捷的迁移、使用云，用户只需要着力集中精神到具体业务的开发，此时IT行业的协作、沟通、成本控制、技术开发、运营管理等等都将会发生翻天覆地的变化：数万计的</summary><published>2011-01-25T02:44:00Z</published><updated>2011-01-25T02:44:00Z</updated><author><name>天行健@中国元素</name><uri>http://www.cnblogs.com/fuhj02/</uri></author><link rel="alternate" href="http://www.cnblogs.com/fuhj02/archive/2011/01/25/1944354.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/fuhj02/archive/2011/01/25/1944354.html"/><content type="html">&lt;p align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 今天，云计算已经变得炙手可热，云的形式带来的全新的应用方式，企业用户部署大型应用既不再需要斥巨资修建自己的数据中心了，也不需要考虑设备的选型和采购了，甚至都不需要有自己的运维人员24小时的进行运维了，只需要花极少的钱就可以购买到相应的云计算服务，剩下的复杂而纷繁的数据中心选址，搭建，运营，维护等任务都交给微软来做。&lt;br /&gt;微软为大家提供了完整而全面的云计算解决方案，让用户真正感受到云就在身边，而不是遥不可及的，可以让用用最熟悉的工具和语言，方便、可靠、快捷的迁移、使用云，用户只需要着力集中精神到具体业务的开发，此时IT行业的协作、沟通、成本控制、技术开发、运营管理等等都将会发生翻天覆地的变化：数万计的服务器随时可以听从调配，任意网络位置的服务器可以被选取，任意地方的访客都会通过微软的CDN网络最便捷的在和自己最快的网络节点取到用户的数据，超乎想象的计算资源任用户随时取用；&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 用户可以为业务发展的一切做好准备，却不再需要立马准备大笔的花费用于数据中心的搭建，完全可以以更少的投入，完成更多的业务，能耗、人力、办公环境都可以大幅缩减，在全球变暖的情况下，绿色的IT业务将会助力企业以低碳、高效、绿色的形式蓬勃发展；微软云计算能让企业随时调取数据、获取应用程序，沟通协作变得更加的紧密而高效灵活；在全球的任何角落都可以通过连接至云端的工具，以全新的工作方式，展开熟悉的业务。&lt;br /&gt;&lt;strong&gt;1 什么是云计算？&lt;/strong&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 云计算（或云）是一个演化中的词汇，它描述了很多现有的计算技术和方法朝各种不同方向的发展。云将应用和信息资源与底层的用以交付它们的基础设施和机制分开。云强化了协作、敏捷、扩展性、可用性，以及通过优化的、更有效率的计算来降低成本的潜能。&lt;br /&gt;更具体地说，云描述了由&amp;#8220;资源池&amp;#8221;化的计算、网络、信息和存储等组成的服务、应用、信息和基础设施等的使用。这些组件可以迅速策划、置备、部署和退役，并且可以迅速扩充或缩减，提供按需的、效用计算类似的分配和消费模式。&lt;br /&gt;本文的重点是从专门针对IT网络和专业人士的独特视角来裁剪的云的定义。可以用统一分类的一组公用的、简洁的词汇来描述云架构对企业管理架构的影响，在这个统一分类的方法中，云服务和架构可以被分解和细化，给用户一个详实而明确的概念，到底如何才能将云计算平稳的落地与企业的实际应用结合起来。&lt;br /&gt;&lt;strong&gt;2 云计算是由什么组成的？&lt;/strong&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 美国国家标准技术研究院（NIST）给云计算定义了五个关键特征、三个服务模型、四个部署模型。如下图1所示，后面将会有详细描述。&lt;/p&gt;&lt;p align="center"&gt;&lt;br /&gt;&amp;nbsp;&lt;img height="319" alt="" src="http://images.cnblogs.com/cnblogs_com/fuhj02/WindowsLiveWriter/1.JPG" width="683" border="0" /&gt;&lt;br /&gt;图1 NIST云计算定义的形象模型&lt;/p&gt;&lt;p align="left"&gt;&lt;br /&gt;&lt;strong&gt;2.1 云计算的关键特征&lt;/strong&gt;&lt;br /&gt;云服务展现出的五个关键特征，代表了它与传统计算方法的关系和区别：&lt;br /&gt;&amp;#8226; 按需自服务： 用户可以在需要时自动配置计算能力，例如服务器时间和网络存储，的需要自动计算能力，而无需与服务供应商的服务人员交互。&lt;br /&gt;&amp;#8226; 宽带接入：服务能力通过网络提供，支持各种标准接入手段，包括各种瘦或胖客户端平台（例如移动电话、笔记本电脑、或PDA），也包括其它传统的或基于云的服务。&lt;br /&gt;&amp;#8226; 虚拟化的资源&amp;#8220;池&amp;#8221;：提供商的计算资源汇集到资源池中，使用多租户模型，按照用户需要，将不同的物理和虚拟资源动态地分配或再分配给多个消费者使用。虽然存在某种程度上的位置无关性，也就是说用户无法控制或根本无法知道所使用资源的确切物理位置，但是原则上可以在较高抽象层面上来指定位置（例如国家、州、省、或者数据中心）。资源的例子包括存储、处理、内存、网络带宽以及虚拟机等。即使是私有的&amp;#8220;云&amp;#8221;往往也趋向将资源虚拟&amp;#8220;池&amp;#8221;化来为组织的不同部门提供服务。&lt;br /&gt;&amp;#8226; 快速弹性架构：服务能力可以快速、弹性地供应&amp;#8212;&amp;#8212;在某些情况下自动地&amp;#8212;&amp;#8212;实现快速扩容、快速上线。对于用户来说，可供应的服务能力近乎无限，可以随时按需购买。&lt;br /&gt;&amp;#8226; 可测量的服务：云系统之所以能够自动控制优化某种服务的资源使用，是因为利用了经过某种程度抽象的测量能力（例如存储、处理、带宽或者活动用户账号等）。人们可以监视、控制资源使用、并产生报表，报表可以对提供商和用户双方都提供透明。&lt;br /&gt;&lt;strong&gt;2.2 云服务模型&lt;/strong&gt;&lt;br /&gt;云服务的交付可以分为三种模式以及不同的衍生组合。这三种基本类型经常被称为&amp;#8220;SPI&amp;#8221;模型，其中SPI分别代表软件、平台和基础设施（作为服务）。它们的定义如下：&lt;br /&gt;&amp;#8226; 云软件作为服务 (SaaS)：提供给用户的能力是使用服务商运行在云基础设施之上的应用。用户使用各种客户端设备通过&amp;#8220;瘦&amp;#8221;客户界面（例如浏览器）等来访问应用（例如基于浏览器的邮件）。用户并不管理或控制底层的云基础设施，例如网络、服务器、操作系统、存储、甚至其中单个的应用能力，除非是某些有限用户的特殊应用配置项。&lt;br /&gt;&amp;#8226; 云平台作为服务 (PaaS)：提供给用户的能力是在云基础设施之上部署用户创建或采购的应用，这些应用使用服务商支持的编程语言或工具开发，用户并不管理或控制底层的云基础设施，包括网络、服务器、操作系统、或存储等，但是可以控制部署的应用，以及应用主机的某个环境配置。&lt;br /&gt;&amp;#8226; 云基础设施作为服务 (IaaS)：提供给用户的能力是云供应了处理、存储、网络，以及其它基础性的计算资源，以供用户部署或运行自己任意的软件，包括操作系统或应用。用户并不管理或控制底层的云基础设施，但是拥有对操作系统、存储和部署的应用的控制，以及一些网络组件的有限控制（例如主机防火墙等）。&lt;br /&gt;&lt;strong&gt;2.3 云部署模型&lt;/strong&gt;&lt;br /&gt;IaaS 是所有云服务的基础，PaaS建立在IaaS之上，而SaaS又建立在PaaS之上。不管利用了哪种服务模型（SaaS、 PaaS、或 IaaS），存在四种云服务部署模型，以及用以解决某些特殊需求而在它们之上的演化变形。&lt;br /&gt;&amp;#8226; 公共云。由某个组织拥有，其云基础设施对公众或某个很大的业界群组提供云服务。&lt;br /&gt;&amp;#8226; 私有云。云基础设施特定为某个组织运行服务。可以是该组织或某个第三方负责管理，可以是场内服务（on-premises），也可以是场外服务（off-premises）。&lt;br /&gt;&amp;#8226; 社区云。云基础设施由若干个组织分享，以支持某个特定的社区。社区是指有共同诉求和追求的团体（例如使命、安全要求、政策或合规性考虑等）。可以是该组织或某个第三方负责管理，可以是场内服务（on-premises），也可以是场外服务（off-premises）。&lt;br /&gt;&amp;#8226; 混合云。云基础设施由两个或多个云（私有的、社区的、或公共的）组成，独立存在，但是通过标准的或私有的技术绑定在一起，这些技术促成数据和应用的可移植性。&lt;br /&gt;1. 云服务是如何部署的&amp;#8221;与&amp;#8220;云服务是在哪里提供的&amp;#8221;这样的概念频繁混用所带来的困惑。例如，公共或私有可能被描述成外部或内部云，这种互换不是所有情况下都是准确的。&lt;br /&gt;2. 云服务的使用方式经常被描述成与组织的管理或安全边界位置有关（通常定义在某个防火墙上）。虽然了解云计算中安全边界在哪里很重要，但是，&amp;#8220;界限清晰的边界&amp;#8221;的这一概念是一个时代性错误。&lt;br /&gt;3. 在企业中正在上演的对信任边界的重组（re-perimeterization）及侵蚀，被云计算放大并加速。无处不在的连接、各种形式的信息交换、无法解决云服务动态特性的传统静态安全控制，这些都要求针对云计算的新思维。针对企业网络的边界重整，&lt;br /&gt;下面的表格总结了这些要点：&lt;/p&gt;&lt;p align="center"&gt;&lt;br /&gt;&amp;nbsp;&lt;img height="209" alt="" src="http://images.cnblogs.com/cnblogs_com/fuhj02/2.JPG" width="708" border="0" /&gt;&lt;br /&gt;图2 &amp;#8211; 云计算部署模型&lt;/p&gt;&lt;p align="left"&gt;&lt;br /&gt;私有云是为一个客户单独使用而构建的，因而提供对数据、安全性和服务质量的最有效控制。该公司拥有基础设施，并可以控制在此基础设施上部署应用程序的方式。私有云可部署在企业数据中心的防火墙内，也可以将它们部署在一个安全的主机托管场所。&lt;br /&gt;私有云可由公司自己的 IT 机构，也可由云提供商进行构建。在此&amp;#8220;托管式专用&amp;#8221;模式中，像微软、Sun、IBM这样的云计算提供商可以安装、配置和运营基础设施，以支持一个公司企业数据中心内的专用云。此模式赋予公司对于云资源使用情况的极高水平的控制能力，同时带来建立并运作该环境所需的专门知识。&lt;br /&gt;&lt;strong&gt;2.4 私有云优点&lt;/strong&gt;&lt;br /&gt;1.数据安全 虽然每个公有云的提供商都对外宣称，其服务在各方面都是非常安全，特别是对数 据的管理。但是对企业而言，特别是大型企业而言，和业务有关的数据是其的生命线，是不能受到任何形式的威胁，所以短期而言，大型企业是不会将其至关重要的应用放到公有云上运行的。而私有云在这方面是非常有优势的，因为它一般都构筑在防火墙后。 &lt;br /&gt;2. SLA（服务质量）因为私有云一般在防火墙之后，而不是在某一个遥远的数据中心中，所以当公司员工访问那些基于私有云的应用时，它的SLA应该会非常稳定，不会受到网络不稳定的影响，比如上次&amp;#8220;暴风影音&amp;#8221;事件，导致大规模的断网。&lt;br /&gt;3.充分利用现有硬件资源和软件资源 大家也知道每个公司，特别大公司都会有很多历史遗留的应用，而且历史遗留应用大多都是其核心应用。虽然公有云的技术很先进，但却对历史遗留的应用支持不好，因为很多都是用静态语言编写的，以Cobol，C，C++和Java为主，而现有的公有云对这些语言支持很一般。但私有云在这方面就不错，比如微软推出的AzureAppFabric就能有效地解决私有云落地的问题，以及IBM推出的cloudburst，通过cloudburst，能非常方便地构建基于Java的私有云。而且一些私用云的工具能够利用企业现有的硬件资源来构建云，这样将极大降低企业的花费。&lt;br /&gt;4. 不影响现有IT管理的流程 对大型企业而言，流程是其管理的核心，如果没有完善的流程，企业将会成为一盘散沙。不仅有业务有关的流程非常繁多，而且IT部门的流程也不少，比如那些和Sarbanes-Oxley法案相关的流程，并且这些流程对IT部门非常关键。在这方面，公有云很吃亏，因为假如使用公有云的话，将会对IT部门流程有很多的冲击，比如在数据管理方面和安全规定等方面。而在私有云，因为它一般在防火墙内的，所以对IT部门流程冲击不大。&lt;br /&gt;&lt;strong&gt;2.5 微软云技术&lt;br /&gt;&lt;/strong&gt;Windows Azure是一个&amp;#8220;云服务操作系统&amp;#8221;，可用作Windows Azure平台的开发、服务托管，以及服务管理环境。Windows Azure可通过Microsoft的数据中心，为开发人员提供按需计算和存储的主机，可缩放，并且可以直接在互联网上管理Web应用程序。 Windows Azure是一个灵活的平台，可支持多种语言，并可以和现有的内部环境整合。作为一个开放的平台，Windows Azure为开发人员提供了多种选择，开发人员可以使用不同语言（.NET、PHP、Ruby、Python，或Java）和开发工具（Visual Studio或Eclipse）构建运行在Windows Azure上的应用程序。通过这种基于标准并且可交互的方式，Windows Azure平台可支持多种互联网协议，包括HTTP、XML、SOAP，以及REST，这些都是数据可移植性的关键基石。Microsoft的Windows Azure服务的主要目标正是提供这一设施。作为庞大的Windows Azure平台的一部分，Windows Azure是在云中运行Windows应用程序以及存储数据的基础。&lt;br /&gt;SSP 2.0 (Self-service portal 2.0)是微软针对企业级私有云而专门设计的产品，它提供基于Web的用户交互界面，功能包括：集中化配置和分配数据中心资源；定制化服务（如虚拟机的快速部署）；内置的资源申请/审批流程；基础架构申请和变更管理；自服务管理支持。&lt;/p&gt;&lt;p align="center"&gt;&amp;nbsp;&lt;img style="width: 609px; height: 316px" height="316" alt="" src="http://images.cnblogs.com/cnblogs_com/fuhj02/3.JPG" width="609" border="0" /&gt;&lt;br /&gt;图3 - 微软云计算平台&lt;/p&gt;&lt;p&gt;&lt;br /&gt;微软的云计算战略：包括三大部分，目的是为自己的客户和合作伙伴提供三种不同的云计算运营模式： &lt;br /&gt;&lt;strong&gt;第一、微软运营 &lt;br /&gt;&lt;/strong&gt;微软自己构建及运营公有云的应用和服务，同时向个人消费者和企业客户提供云服务。例如，微软向最终使用者提供的Online Services和Windows Live等服务。 &lt;br /&gt;&lt;strong&gt;第二、伙伴运营&lt;/strong&gt; &lt;br /&gt;ISV/SI等各种合作伙伴可基于Windows Azure Platform开发ERP、CRM等各种云计算应用，并在Windows Azure Platform上为最终使用者提供服务。另外一个选择是，微软运营在自己的云计算平台中的Business Productivity Online Suite (BPOS)产品也可交由合作伙伴进行托管运营。BPOS主要包括Exchange Online, SharePoint Online, Office Communications Online和LiveMeeting Online等服务。 &lt;br /&gt;&lt;strong&gt;第三、客户自建 &lt;br /&gt;&lt;/strong&gt;客户可以选择微软的云计算解决方案构建自己的云计算平台。微软可以为用户提供包括产品、技术、平台和运维管理在内的全面支持。&lt;/p&gt;&lt;p align="left"&gt;而微软Windows Azure Platform AppFabric的设计就是瞄准私有云而来的，通过消息总线可以很好的黏合各种业务应用。Windows Azure Platform AppFabric是微软继虚拟机组件Windows Azure、数据库组件SQL Azure之后推出的又一重要的云计算组件。Windows Azure支持Web Roles(用于托管Web站点)和Worker Role(用于后端处理)，主要应用于云计算;SQL Azure基于SQL Server，具有很多相同的特性，强化了其基于云计算的功能，弱化了其作为客户端软件的身份。而Azure AppFabric作为消息总线，目标是简化身份验证和消息传递，尤其在跨防火墙的时候使其更容易，Azure AppFabric作为私有云，能够更加有效的组合企业应用中涉及到的多种应用，将云的作用发挥到极致，不得不称赞微软在云计算架构设计之初就能考虑到这一关键性的问题。&lt;br /&gt;&lt;strong&gt;3 微软Azure AppFabric架构概述&lt;br /&gt;&lt;/strong&gt;Windows Azure Platform AppFabric是微软为开发者准备的构建和管理复合型应用程序，无论是在服务器或是在云环境中，Azure Appfabric是个消息总线，目标是简化身份验证和消息传递，尤其是在跨防火墙和NAT环境的时候使其更容易。&lt;br /&gt;Azure Platform Appfabric的前身是&amp;#8220;.NET Services&amp;#8221;提供基于云的服务，帮助开发者通过Windows Azure、Windows Server、和众多其他平台连接至应用程序与服务。经过发展、演化和成熟之后，它包括了Service Bus和Access Control功能。&lt;br /&gt;Windows Azure Platform Appfabric构建与Windows Azure之上， 将云服务与非云端的系统集成的服务，通过提供安全的联通性与访问控制，完成B2B的集成，或连接至远程设备。Service Bus在服务与应用程序之间允许安全的连通性（通过防火墙或网络界限），可以使用在大量通信模式。Access Control Service为网络访问提供了联合的、基于声明的访问控制，开发者可以使用这些服务构建分布式或混合式的应用程序或服务。&lt;br /&gt;&lt;strong&gt;2.1 AppFabric 服务总线(Service Bus)概述&lt;/strong&gt;&lt;br /&gt;服务总线帮助开发者提供松散耦合的服务和应用程序的安全连接，使它们能够使用多种通信方式通过防火墙和网络边界。在服务总线上注册的服务能很容易通过各种网络拓扑被发现和访问。&lt;/p&gt;&lt;p align="center"&gt;&lt;br /&gt;&amp;nbsp;&lt;img height="372" alt="" src="http://images.cnblogs.com/cnblogs_com/fuhj02/4.JPG" width="648" border="0" /&gt;&lt;br /&gt;图4 - 异构服务间通过服务总线轻松耦合&lt;/p&gt;&lt;p align="left"&gt;&lt;br /&gt;&lt;strong&gt;服务总线的适用范围&lt;/strong&gt;&lt;br /&gt;&amp;nbsp;用现有的能够和数据库连接Windows Azure应用和SQL Azure数据库&lt;br /&gt;&amp;nbsp;和各类无前提应用桥接&lt;br /&gt;&amp;nbsp;创建复合应用&lt;br /&gt;&lt;strong&gt;使用服务总线的好处&lt;br /&gt;&lt;/strong&gt;&amp;nbsp;能通过防火墙、NAT网关和其他未知网络边界公开程序和服务。&lt;br /&gt;&amp;nbsp;通过公开端点很容易创建很低限制的复合应用，支持多种连接选项和发布、订阅的多播。&lt;br /&gt;&amp;nbsp;友好的、轻量级开发者编程模型，支持标准协议和扩展的Windows Communication Foundation简单标准绑定。&lt;br /&gt;&amp;nbsp;帮助阻止恶意流量和保护用户服务免于拒绝服务攻击。&lt;br /&gt;&lt;strong&gt;服务总线的特点&lt;/strong&gt;&lt;br /&gt;&amp;nbsp;可以不考虑位置，通过稳定的、通过互联网可访问的URL发布服务。&lt;br /&gt;&amp;nbsp;发送者和接受者之间的单向信息服务支持单播和多播分发。&lt;br /&gt;&amp;nbsp;面向连接的全双工线程保证发送者和接受者之间支持双向通信。&lt;br /&gt;&amp;nbsp;面向连接的全双工线程支持点对点(pear-to-paer) 通过NAT创建终端对终端的直接连接。&lt;br /&gt;&amp;nbsp;多发布者与多用户可同时使用该服务的主题管理和事件分发系统。&lt;br /&gt;&amp;nbsp;支持非.NET平台的REST和HTTP访问。&lt;br /&gt;&amp;nbsp;通过DNS和透明无约束的等级分类实现全局命名空间。&lt;br /&gt;&amp;nbsp;在用于允许的情况下支持匿名用户对服务的访问。&lt;br /&gt;&lt;strong&gt;2.2 AppFabric 访问控制(Access Control)概述&lt;/strong&gt;&lt;br /&gt;访问控制帮助用户在应用和服务中创建集成授权，无需复杂编程就能实现基于组织边界考虑的安全应用。凭借简单的规则和要求，访问控制规则可以轻松、灵活的进行配置，以涵盖不同的安全需求和身份管理的各种基础设施。&lt;/p&gt;&lt;p align="center"&gt;&lt;br /&gt;&amp;nbsp;&lt;img height="287" alt="" src="http://images.cnblogs.com/cnblogs_com/fuhj02/5.JPG" width="578" border="0" /&gt;&lt;br /&gt;图5 - 基于Azure平台的访问控制&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;strong&gt;访问控制的适用范围&lt;/strong&gt;&lt;br /&gt;&amp;nbsp;可基于现有的身份管理系统、Active Directory服务、其他目录服务或任何基于标准的基础认证机制创建用户帐号。&lt;br /&gt;&amp;nbsp;应用程序可定制的控制和访问级别，每个用户和组&lt;br /&gt;&amp;nbsp;应用与服务总线连接相同的安全级别&lt;br /&gt;&lt;strong&gt;访问控制的好处&lt;/strong&gt;&lt;br /&gt;&amp;nbsp;通过联合身份和访问控制规则为基础的授权使应用程序等同于本地用户帐号管理。&lt;br /&gt;&amp;nbsp;灵活的基于标准的服务，支持多种凭据和依赖方&lt;br /&gt;&amp;nbsp;友好的、轻量级开发者编程模型，基于Microsoft .NET Framework和Windows Communication Foundation。&lt;br /&gt;&lt;strong&gt;访问控制的特点&lt;/strong&gt;&lt;br /&gt;&amp;nbsp;通过简单Web界面或API编程实现安装发行的信任。&lt;br /&gt;&amp;nbsp;通过最小化的编码支持活动目录和其他认证机制。&lt;br /&gt;&amp;nbsp;支持对凭据，包括X.509证书&lt;br /&gt;&amp;nbsp;支持包括REST在内的标准协议&lt;br /&gt;&amp;nbsp;运行在组织边界内外的应用可以依靠服务存在&lt;br /&gt;&amp;nbsp;可验证从数据和连通服务传递的应用和用户请求&lt;/p&gt;&lt;p&gt;&lt;strong&gt;4 总结&lt;/strong&gt;&lt;br /&gt;在云计算的支持下，用户可以按使用付费，从而节省大量的前期投资。此外，在时间周期、灵活性上，用户也更加从容，不必为漫长的审批周期而伤神，从而加快业务的上市速度。就技术的角度而言，由于应用剥离了具体的硬件平台，不仅系统资源利用更加充分，更加节能高效；与此同时，系统管理难度大大降低，更能够充分释放系统的能量，使得系统更加富有弹性。较之通过Internet进行访问，供公众使用的公有云，私有云一般在防火墙之内，专为某企业提供运营服务，因此在安全性、法规遵从以及服务质量方面更加具有保障，也更加容易集成现有应用，降低运营成本。但是公有云成本更低，管理负担更轻，在容量分配等方面更具有优势。&lt;br /&gt;微软认为，未来而互联网世界将会以&amp;#8220;云&amp;#8221;+&amp;#8220;端&amp;#8221;组合的形式存在，在这个与云为中心的世界里，用户可以便捷的使用各种形式的&amp;#8220;端&amp;#8221;访问自己部署在云端的数据和应用，或者访问和使用别人提供的数据和应用，届时数据，应用，甚至是计算能力都如同电力和自来水一样，随时随地接入，按需要使用，按使用付费，而不是事先花大量的资金购买自己都不知道用不用得着，能用多少的具体设备，而这些&amp;#8220;端&amp;#8221;可以是电脑和手机，甚至是电视等各种可以网络接入的电子设备。用户在使用各种设备访问云中的服务时，得到的也是完全无缝切换的服务体验。与此同时，云计算平台也随着现有的IT和互联网技术以及业务模式的逐渐演变，成功的云计算平台可以最大限度的使用和共享现有软件开发的经验、能力和各种资源。长期以来微软致力于云计算技术和服务的不断创新，在动态数据中心、私用云以及公有云方面开展了左右成效的探索和实践，并坚持让这一切的不懈努力，最终转化为企业切实可用、触手可及的东西。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;作者: 付海军 &lt;br /&gt;出处：&lt;a href="http://fuhj02.cnblogs.com/"&gt;http://fuhj02.cnblogs.com/&lt;/a&gt; &lt;br /&gt;版权：本文版权归作者和博客园共有 &lt;br /&gt;转载：欢迎转载，为了保存作者的创作热情，请按要求【转载】，谢谢 &lt;br /&gt;要求：未经作者同意，必须保留此段声明；必须在文章中给出原文连接；否则必究法律责任 &lt;br /&gt;个人网站: &lt;a href="http://txj.lzuer.com/"&gt;http://txj.lzuer.com/&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/fuhj02/aggbug/1944354.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/fuhj02/archive/2011/01/25/1944354.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/fuhj02/archive/2011/01/24/1942786.html</id><title type="text">PowerShell2.0之维护网络(三)设置网络适配器</title><summary type="text">如果计算机中有多个网络适配器，在Windows原有的cmd下配置其属性很困难，用户必须确保配置了适当的适配器并确认要禁用的不是正在使用中的网络适配器。本节介绍在处理多个网络适配器时可能出现的问题及其解决方法。 （1）检测多个网络适配器 对于Windows系统来说，操作系统会将无线网络放在所有网络连接中优先级最高的网络使用。这对于普通用户可能是很方便的，一旦周围有无线网络就可以自动连接到无线网络...</summary><published>2011-01-23T16:54:00Z</published><updated>2011-01-23T16:54:00Z</updated><author><name>天行健@中国元素</name><uri>http://www.cnblogs.com/fuhj02/</uri></author><link rel="alternate" href="http://www.cnblogs.com/fuhj02/archive/2011/01/24/1942786.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/fuhj02/archive/2011/01/24/1942786.html"/><content type="html">&lt;p&gt;如果计算机中有多个网络适配器，在Windows原有的cmd下配置其属性很困难，用户必须确保配置了适当的适配器并确认要禁用的不是正在使用中的网络适配器。本节介绍在处理多个网络适配器时可能出现的问题及其解决方法。&lt;/p&gt;  &lt;p&gt;（1）检测多个网络适配器&lt;/p&gt;  &lt;p&gt;对于Windows系统来说，操作系统会将无线网络放在所有网络连接中优先级最高的网络使用。这对于普通用户可能是很方便的，一旦周围有无线网络就可以自动连接到无线网络中，便捷而有效。但是对于网络管理员来说这个特性可能会带来麻烦，甚至是安全问题。如出差在外的人员无法通过所在地的有线网络访问Internet。Windows Vista通常会建议启用无线网络适配器来上网，而如果听从了这个建议，并连接到不安全的网络，如图1所示，计算机可能存在很大的安全威胁。&lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/fuhj02/201101/201101240038368676.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="478" alt="image" src="http://images.cnblogs.com/cnblogs_com/fuhj02/201101/201101240038376333.png" width="627" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p align="center"&gt;图1 连接到不安全的网络&lt;/p&gt;  &lt;p&gt;创建一个名为“GetNetID.ps1”的脚本显示连接到本地计算机的网络适配器名称、接口索引编号、适配器信息及其介质形式，这些属性对于创建资产清单非常有用。该脚本的代码如下：&lt;/p&gt;  &lt;p&gt;Get-WmiObject -Class win32_networkadapter |&lt;/p&gt;  &lt;p&gt;format-table -Property name, interfaceIndex, `&lt;/p&gt;  &lt;p&gt;adapterType, macAddress –autosize&lt;/p&gt;  &lt;p&gt;该脚本中通过使用Get-WmiObject cmdlet并检索Win32_NetWorkAdapter WMI类信息，最后将输出的信息通过管道传递给Format-Table cmdlet格式化输出的内容，而仅限定输出Name、InterfaceIndex、AdapterType及MacAddress属性。-autosize参数可以配合Format-Table使用，以进一步整理输出内容并调整显示方式，执行结果如图2所示。&lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/fuhj02/201101/201101240038416239.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="435" alt="image" src="http://images.cnblogs.com/cnblogs_com/fuhj02/201101/201101240038458238.png" width="672" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p align="center"&gt;图2 执行结果&lt;/p&gt;  &lt;p&gt;（2）将网络适配器信息写入Excel文件&lt;/p&gt;  &lt;p&gt;当系统中有多个网络适配器时通过控制台查看这些网络适配器的信息会显得信息量太大，无法细致地查看和处理，这时需要将信息写入到Excel文件中。创建名为“WriteNetworkAdapterInfoToExcel.ps1”的脚本获得安装在本地计算机上所有网络适配器的配置信息，并写入本地的Excel文件中便于后期分析，其代码如下：&lt;/p&gt;  &lt;p&gt;$strPath=&amp;quot;C:\PowerShell\CHAPTER18\netAdapter.xls&amp;quot;&lt;/p&gt;  &lt;p&gt;$objExcel=New-Object -ComObject Excel.Application&lt;/p&gt;  &lt;p&gt;$objExcel.Visible=-1 &lt;/p&gt;  &lt;p&gt;$WorkBook=$objExcel.Workbooks.Add()&lt;/p&gt;  &lt;p&gt;$sheet=$workbook.worksheets.item(1)&lt;/p&gt;  &lt;p&gt;$x=2&lt;/p&gt;  &lt;p&gt;$Computer = $env:computerName&lt;/p&gt;  &lt;p&gt;$objWMIService = Get-WmiObject -class win32_NetworkAdapter `&lt;/p&gt;  &lt;p&gt;-computer $Computer&lt;/p&gt;  &lt;p&gt;for($b=1 ; $b -le 10 ; $b++)&lt;/p&gt;  &lt;p&gt;{$sheet.Cells.item(1,$b).font.bold=$true}&lt;/p&gt;  &lt;p&gt;$sheet.Cells.item(1,1)=(&amp;quot;Name of Adapter&amp;quot;)&lt;/p&gt;  &lt;p&gt;$sheet.Cells.item(1,2)=(&amp;quot;Interface Index&amp;quot;)&lt;/p&gt;  &lt;p&gt;$sheet.Cells.item(1,3)=(&amp;quot;Index&amp;quot;)&lt;/p&gt;  &lt;p&gt;$sheet.Cells.item(1,4)=(&amp;quot;DeviceID&amp;quot;)&lt;/p&gt;  &lt;p&gt;$sheet.Cells.item(1,5)=(&amp;quot;AdapterType&amp;quot;)&lt;/p&gt;  &lt;p&gt;$sheet.Cells.item(1,6)=(&amp;quot;MacAddress&amp;quot;)&lt;/p&gt;  &lt;p&gt;$sheet.Cells.item(1,7)=(&amp;quot;netconnectionid&amp;quot;)&lt;/p&gt;  &lt;p&gt;$sheet.Cells.item(1,8)=(&amp;quot;NetConnectionStatus&amp;quot;)&lt;/p&gt;  &lt;p&gt;$sheet.Cells.item(1,9)=(&amp;quot;NetworkAddresses&amp;quot;)&lt;/p&gt;  &lt;p&gt;$sheet.Cells.item(1,10)=(&amp;quot;PermanentAddress&amp;quot;)&lt;/p&gt;  &lt;p&gt;ForEach ($objNet in $objWMIService)&lt;/p&gt;  &lt;p&gt;{&lt;/p&gt;  &lt;p&gt;$sheet.Cells.item($x, 1)=($objNet.Name)&lt;/p&gt;  &lt;p&gt;$sheet.Cells.item($x, 2)=($objNet.InterfaceIndex)&lt;/p&gt;  &lt;p&gt;$sheet.Cells.item($x, 3)=($objNet.index)&lt;/p&gt;  &lt;p&gt;$sheet.Cells.item($x, 4)=($objNet.DeviceID)&lt;/p&gt;  &lt;p&gt;$sheet.Cells.item($x, 5)=($objNet.adapterType)&lt;/p&gt;  &lt;p&gt;$sheet.Cells.item($x, 6)=($objNet.MacAddress)&lt;/p&gt;  &lt;p&gt;$sheet.Cells.item($x,7)=($objNet.netconnectionid)&lt;/p&gt;  &lt;p&gt;$sheet.Cells.item($x,8)=($objNet.NetConnectionStatus)&lt;/p&gt;  &lt;p&gt;$sheet.Cells.item($x,9)=($objNet.NetworkAddresses)&lt;/p&gt;  &lt;p&gt;$sheet.Cells.item($x,10)=($objNet.PermanentAddress)&lt;/p&gt;  &lt;p&gt;If($objNet.AdapterType -notMatch 'ethernet')&lt;/p&gt;  &lt;p&gt;{&lt;/p&gt;  &lt;p&gt;$sheet.Cells.item($x,5).font.colorIndex=3 # 32 is blue 16 silver/gray 8 is Aqua, 4 is green, 3 is red&lt;/p&gt;  &lt;p&gt;$sheet.Cells.item($x,5).font.bold=$true&lt;/p&gt;  &lt;p&gt;}&lt;/p&gt;  &lt;p&gt;$x++&lt;/p&gt;  &lt;p&gt;}&lt;/p&gt;  &lt;p&gt;$range = $sheet.usedRange&lt;/p&gt;  &lt;p&gt;$range.EntireColumn.AutoFit()&lt;/p&gt;  &lt;p&gt;IF(Test-Path $strPath)&lt;/p&gt;  &lt;p&gt;{ &lt;/p&gt;  &lt;p&gt;Remove-Item $strPath&lt;/p&gt;  &lt;p&gt;$objExcel.ActiveWorkbook.SaveAs($strPath)&lt;/p&gt;  &lt;p&gt;}&lt;/p&gt;  &lt;p&gt;ELSE&lt;/p&gt;  &lt;p&gt;{&lt;/p&gt;  &lt;p&gt;$objExcel.ActiveWorkbook.SaveAs($strPath)&lt;/p&gt;  &lt;p&gt;}&lt;/p&gt;  &lt;p&gt;能够看到上述脚本中网络适配器信息的代码量很少，大多数代码主要是关于对Excel文件的操作方法。在通过PowerShell操作Excel之前需要指定Excel文件的存放路径，在该脚本中将其放在$strPath变量中。随后创建一个Excel.Application COM对象的实例，用于创建和操作Excel表格。为操作Excel模块，将保存在$objExcel变量中的Excel.Application对象的Visible属性设置为-1，表示窗口可见。然后在Excel中添加一个新的工作簿，打开第1个工作表并将引用信息保存在$sheet变量中。为此需要引用新创建并保存在$workbook变量中的新工作簿对象，然后使用item方法返回第1个工作表。&lt;/p&gt;  &lt;p&gt;接下来声明变量$x，并赋值为2，指定从第2行开始写。随后为了在WMI查询中能够使用计算机名，进入env:\这个PS的驱动器中并获得用于保存计算机名的环境变量computerName的值保存在$Computer变量中。其后使用Get-WmiObject cmdlet查询Win32_NetworkAdapter WMI类，查询得到的Management对象保存在$objwmiService变量中。&lt;/p&gt;  &lt;p&gt;下一段代码为从WMI中获得的每个属性提供标题行，这里使用for循环指定需要用粗体显示的行。为了将该行标题显示为粗体，将该字体的Bold属性设置为True。设置标题后使用Foreach语句在WMI对象之间遍历，以找出所需的特定信息并将其插入到相应的列中。这里使用item方法来引用相应的单元格，需要为该方法提供横轴和纵轴的坐标信息，以使光标在单元格中定位。为了让操作过程简单而便捷，这里使用变量$x跟踪要写入的行。通过改变其值来移动光标，特定的纵轴指定保存特定数据的列。检查网络适配器为以太网适配器或其他类型的最简单方法是检查Win32_NetworkAdapter WMI类中的AdapterType属性，该脚本的目的是标记非以太网适配器，所以使用-notmatch操作符比较适配器类型。如果适配器类型不是“ethernet”（以太网），则改变字体的颜色并用粗体显示。处理每一条网络适配器记录后使用递增运算符++使$x变量值递增，这样随后的一条适配器信息才可写入表格的下一行。&lt;/p&gt;  &lt;p&gt;创建并显示整个表后，通常需要必要改变列宽以显示完整的信息。为此在该脚本中使用AutoFit()方法用于表格内特定范围内的列对象，定义范围的简单方法是使用工作表对象的UseRange属性。&lt;/p&gt;  &lt;p&gt;规整表格内容和格式之后，务必保存当前文档。如果工作簿已经存在，则将其删除，然后将工作表保存在新的工作簿中；否则直接将工作表保存为新工作簿。该脚本执行后的工作簿如图3所示。&lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/fuhj02/201101/201101240038485013.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="363" alt="image" src="http://images.cnblogs.com/cnblogs_com/fuhj02/201101/201101240038527885.png" width="644" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p align="center"&gt;图3 脚本执行后的工作簿&lt;/p&gt;  &lt;p&gt;（3）识别已连接的网络适配器&lt;/p&gt;  &lt;p&gt;多重网络环境在提供了便利的同时，也给计算机安全带来极大的威胁。计算机系统中多个网络一旦被桥接，而网络中又存在安全和不安全的网络，则恶意用户可以通过这种网桥攻击安全网络。&lt;/p&gt;  &lt;p&gt;对于复杂网络环境下的计算机，多重网络环境在提供便利的同时，也给计算机带来了极大的威胁。计算机系统中多个网络一旦被桥接起来，而网络中又存在安全和不安去的网络，恶意用户可以通过这种网桥对安全网络进行攻击。这就会给安全网络造成很大的威胁。&lt;/p&gt;  &lt;p&gt;为了避免由于复杂网络环境下可能由网络适配器桥接造成的安全风险，创建名为“FindConfigurationOfConnectedAdapters.ps1”的脚本识别连通多个计算机的网络适配器。该脚本仅返回已经连通的网络适配器的数据，如果没有活动连接，则不会返回任何数据。该脚本的代码如下：&lt;/p&gt;  &lt;p&gt;$computer=&amp;quot;localhost&amp;quot;&lt;/p&gt;  &lt;p&gt;$connected=2&lt;/p&gt;  &lt;p&gt;Get-WmiObject -Class win32_networkadapter -computername $computer `&lt;/p&gt;  &lt;p&gt;-filter &amp;quot;netconnectionstatus = $connected&amp;quot; |&lt;/p&gt;  &lt;p&gt;foreach-object `&lt;/p&gt;  &lt;p&gt;{&lt;/p&gt;  &lt;p&gt;Get-WmiObject -Class win32_networkadapterconfiguration `&lt;/p&gt;  &lt;p&gt;-computername $computer -filter &amp;quot;Index = $($_.deviceID)&amp;quot;&lt;/p&gt;  &lt;p&gt;}&lt;/p&gt;  &lt;p&gt;该脚本使用了两个WMI类，其中Win32_NetworkAdapter WMI类具有名为“Connected”的属性，而Win32_NetworkAdapterConfiguration WMI类则无。&lt;/p&gt;  &lt;p&gt;该脚本首先定义变量$compute用于执行WMI查询，$connected用于显示NetConnectionStatus属性值表示计算机是否已经连接。随后查询Win32_NetworkAdapter类，这样可获得一个可以代表网络适配器是否连接的Management对象。如果只希望已经连接的网络适配器的信息，则可以使用-filter参数。这些信息会通过管道命令发送到Foreach-Object cmdlet，在其中查询Win32_NetworkAdapterConfiguration类。并使用筛选器查询上文中筛选后的网络适配器，适配器可以通过当前管道对象的DeviceID识别。&lt;/p&gt;  &lt;p&gt;（4）设置静态IP地址&lt;/p&gt;  &lt;p&gt;很多时候，网络管理员需要为网络设备指定静态IP，以便有效地管理服务器。尽管在如图4所示的“Internet协议（TCP/IP）属性”对话框中很容易设置静态IP地址，但是设置大量服务器则比较麻烦。&lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/fuhj02/201101/201101240038533000.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="454" alt="image" src="http://images.cnblogs.com/cnblogs_com/fuhj02/201101/2011012400385468.png" width="408" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p align="center"&gt;图4 “Internet协议（TCP/IP）属性”对话框&lt;/p&gt;  &lt;p&gt;PowerShell可以使用Win32_NetworkAdapterConfiguration WMI类中包括的14个方法，创建名为“SetStaticIP.ps1”的脚本中演示其中的3个方法。&lt;/p&gt;  &lt;p&gt;该脚本的代码如下：&lt;/p&gt;  &lt;p&gt;param($computer=&amp;quot;localhost&amp;quot;,$q,$ip,$sm,$dg,$dns,$help)&lt;/p&gt;  &lt;p&gt;function funHelp()&lt;/p&gt;  &lt;p&gt;{&lt;/p&gt;  &lt;p&gt;$helpText=@&amp;quot;&lt;/p&gt;  &lt;p&gt;DESCRIPTION:&lt;/p&gt;  &lt;p&gt;NAME: SetStaticIP.ps1&lt;/p&gt;  &lt;p&gt;Sets a static IP address on a local or remote machine.&lt;/p&gt;  &lt;p&gt;PARAMETERS: &lt;/p&gt;  &lt;p&gt;-computerName Specifies the name of the computer upon which to run the script&lt;/p&gt;  &lt;p&gt;-q Queries all IP bound network adapters&lt;/p&gt;  &lt;p&gt;-ip IP address to use&lt;/p&gt;  &lt;p&gt;-sm Subnet mask to use&lt;/p&gt;  &lt;p&gt;-dg Default gateway to use&lt;/p&gt;  &lt;p&gt;-dns Dns server to use&lt;/p&gt;  &lt;p&gt;-help prints help file&lt;/p&gt;  &lt;p&gt;SYNTAX:&lt;/p&gt;  &lt;p&gt;SetStaticIP.ps1 -q &amp;quot;yes&amp;quot; -computer WebServer&lt;/p&gt;  &lt;p&gt;Lists all the network adapters bound to IP on a computer named WebServer&lt;/p&gt;  &lt;p&gt;SetStaticIP.ps1 &lt;/p&gt;  &lt;p&gt;Lists all the network adapters bound to IP on local computer&lt;/p&gt;  &lt;p&gt;SetStaticIP.ps1 -ip &amp;quot;10.0.0.1&amp;quot; -sm &amp;quot;255.0.0.0&amp;quot; -dg &amp;quot;10.0.0.5&amp;quot; -dns &amp;quot;10.0.0.2&amp;quot;&lt;/p&gt;  &lt;p&gt;Sets the Ip address to 10.0.0.1 and the subnet mask to 255.0.0.0 and the default&lt;/p&gt;  &lt;p&gt;Gateway to 10.0.0.5 with a dns server of 10.0.0.2 on the local machine&lt;/p&gt;  &lt;p&gt;SetStaticIP.ps1 -help ?&lt;/p&gt;  &lt;p&gt;Displays the help topic for the script&lt;/p&gt;  &lt;p&gt;&amp;quot;@&lt;/p&gt;  &lt;p&gt;$helpText&lt;/p&gt;  &lt;p&gt;exit&lt;/p&gt;  &lt;p&gt;}&lt;/p&gt;  &lt;p&gt;function FunEvalRTN($rtn)&lt;/p&gt;  &lt;p&gt;{ &lt;/p&gt;  &lt;p&gt;Switch ($rtn.returnvalue) &lt;/p&gt;  &lt;p&gt;{ &lt;/p&gt;  &lt;p&gt;0 { Write-Host -foregroundcolor green &amp;quot;No errors for $strCall&amp;quot; }&lt;/p&gt;  &lt;p&gt;66 { Write-Host -foregroundcolor red &amp;quot;$strCall reports&amp;quot; `&lt;/p&gt;  &lt;p&gt;&amp;quot; invalid subnetMask&amp;quot; }&lt;/p&gt;  &lt;p&gt;70 { Write-Host -ForegroundColor red &amp;quot;$strCall reports&amp;quot; `&lt;/p&gt;  &lt;p&gt;&amp;quot; invalid IP&amp;quot; }&lt;/p&gt;  &lt;p&gt;71 { Write-Host -ForegroundColor red &amp;quot;$strCall reports&amp;quot; `&lt;/p&gt;  &lt;p&gt;&amp;quot; invalid gateway&amp;quot; }&lt;/p&gt;  &lt;p&gt;91 { Write-Host -ForegroundColor red &amp;quot;$strCall reports&amp;quot; `&lt;/p&gt;  &lt;p&gt;&amp;quot; access denied&amp;quot;}&lt;/p&gt;  &lt;p&gt;96 { Write-Host -ForegroundColor red &amp;quot;$strCall reports&amp;quot; `&lt;/p&gt;  &lt;p&gt;&amp;quot; unable to contact dns server&amp;quot;}&lt;/p&gt;  &lt;p&gt;DEFAULT { Write-Host -ForegroundColor red &amp;quot;$strCall service reports&amp;quot; `&lt;/p&gt;  &lt;p&gt;&amp;quot; ERROR $($rtn.returnValue)&amp;quot; }&lt;/p&gt;  &lt;p&gt;}&lt;/p&gt;  &lt;p&gt;$rtn=$strCall=$null&lt;/p&gt;  &lt;p&gt;}&lt;/p&gt;  &lt;p&gt;if($help) { funhelp }&lt;/p&gt;  &lt;p&gt;if($q)&lt;/p&gt;  &lt;p&gt;{ &lt;/p&gt;  &lt;p&gt;Get-WmiObject -Class win32_networkadapterconfiguration `&lt;/p&gt;  &lt;p&gt;-computer $computer -filter &amp;quot;ipenabled = 'true'&amp;quot;&lt;/p&gt;  &lt;p&gt;exit&lt;/p&gt;  &lt;p&gt;}&lt;/p&gt;  &lt;p&gt;if(!$ip) { funhelp }&lt;/p&gt;  &lt;p&gt;if(!$sm) { funhelp }&lt;/p&gt;  &lt;p&gt;if(!$dg) { funhelp }&lt;/p&gt;  &lt;p&gt;if(!$dns) { funhelp }&lt;/p&gt;  &lt;p&gt;$global:RTN = $null&lt;/p&gt;  &lt;p&gt;$metric = [int32[]]1&lt;/p&gt;  &lt;p&gt;$objWMI = Get-WmiObject -Class win32_networkadapterconfiguration `&lt;/p&gt;  &lt;p&gt;-computer $computer -filter &amp;quot;ipenabled = 'true'&amp;quot;&lt;/p&gt;  &lt;p&gt;$RTN=$objwmi.EnableStatic($ip, $sm)&lt;/p&gt;  &lt;p&gt;$strCall=&amp;quot;enable static IP and subnet mask&amp;quot;&lt;/p&gt;  &lt;p&gt;FunEvalRTN($rtn)&lt;/p&gt;  &lt;p&gt;$RTN=$objwmi.SetGateways($dg, $metric)&lt;/p&gt;  &lt;p&gt;$strCall=&amp;quot;enable set default gateway and metric&amp;quot;&lt;/p&gt;  &lt;p&gt;FunEvalRTN($rtn)&lt;/p&gt;  &lt;p&gt;$RTN=$objwmi.SetDNSServerSearchOrder($dns)&lt;/p&gt;  &lt;p&gt;$strCall=&amp;quot;Set the dns server search order&amp;quot;&lt;/p&gt;  &lt;p&gt;FunEvalRTN($rtn)&lt;/p&gt;  &lt;p&gt;在脚本中定义了FunEvalRTN函数，用于判断调用不同的WMI方法以配置IP地址后返回的代码。在该函数内部使用switch语句判断返回代码的ReturnValue属性，如果ReturnValue的值是0，表示没有出错。而其他值均代表命令没有成功完成。&lt;/p&gt;  &lt;p&gt;Ø 0：没有错误，正常完成操作。&lt;/p&gt;  &lt;p&gt;Ø 66：错误的子网掩码。&lt;/p&gt;  &lt;p&gt;Ø 70：非法IP。&lt;/p&gt;  &lt;p&gt;Ø 71：非法的网关。&lt;/p&gt;  &lt;p&gt;Ø 91：访问被拒绝。&lt;/p&gt;  &lt;p&gt;Ø 96：不能连接到DNS服务器。&lt;/p&gt;  &lt;p&gt;Ø default 表示出现错误，但错误不在上述情况。&lt;/p&gt;  &lt;p&gt;如果希望返回的字符串包括更多信息，那么可以包括一个变量$strCall，其中包括生成ReturnValue调用的方法名称。&lt;/p&gt;  &lt;p&gt;该脚本会检查-q参数，如果存在该参数堆栈中会存在$q变量，脚本运行WMI查询并显示所有启用IP地址的网络适配器信息。在设置相关网络参数时要求相关参数不能为空；否则将无法设置IP信息，并调用funhelp函数获得帮助信息。&lt;/p&gt;  &lt;p&gt;随后使用$global标记生成全局变量，并使其名称成为全局性的。为了以数组形式保存存在的网关地址，在脚本中使用[int32]类型约束符，以保证输入的数字是int32数据类型。然后在类型约束符内部插入一对空的方括号标示对约束符的调用，接下来将数组指定给方法调用中使用的变量$metric。此脚本的执行结果如图5所示。&lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/fuhj02/201101/201101240039005122.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="459" alt="image" src="http://images.cnblogs.com/cnblogs_com/fuhj02/201101/201101240039022006.png" width="808" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p align="center"&gt;图5 执行结果&lt;/p&gt;  &lt;p&gt;由于Windows Vista和Windows Server2008与Windows XP之间的网络WMI模型已经存在很大的区别，并且该脚本中使用的EnableStatic()、SetGateways()和SetDNSServerSearchOrder()等方法均是Vista以后操作系统中的新增方法，所以这个脚本仅适用于Vista以上版本的Windows操作系统中的PowerShell。&lt;/p&gt;  &lt;p&gt;（5）启用DHCP&lt;/p&gt;  &lt;p&gt;除了可以对网络适配器绑定IP外，还可以使用DHCP（Dynamic Host Configuration Protocol）服务器获取IP地址，启用DHCP的目的就是为了防止由于静态地址绑定而造成对网络地址的大量占用。DHCP的工作原理一般分为4步，即客户端查找DHCP Server、Server提供IP租用地址、客户端接受IP租约和租约确认。服务器之类的计算机需要指定IP地址；否则一旦IP地址被更换，用户将无法连接到服务器。比较好的策略就是为服务器预留一定得地址段，为服务器绑定IP地址，而PC则可以使用DHCP获取IP地址。&lt;/p&gt;  &lt;p&gt;创建名为“WorkWithDHCP.ps1”的脚本用于报告DHCP状态、启用DHCP、释放由DHCP分配的IP地址，并更新由DHCP分配的IP地址，其代码如下：&lt;/p&gt;  &lt;p&gt;param($computer=&amp;quot;localhost&amp;quot;,$action,$help)&lt;/p&gt;  &lt;p&gt;function funHelp()&lt;/p&gt;  &lt;p&gt;{&lt;/p&gt;  &lt;p&gt;$helpText=@&amp;quot;&lt;/p&gt;  &lt;p&gt;DESCRIPTION:&lt;/p&gt;  &lt;p&gt;NAME: WorkWithDHCP.ps1&lt;/p&gt;  &lt;p&gt;Works with DHCP settings on a local or remote machine.&lt;/p&gt;  &lt;p&gt;PARAMETERS: &lt;/p&gt;  &lt;p&gt;-computerName Specifies the name of the computer upon which to run the script&lt;/p&gt;  &lt;p&gt;-action &amp;lt;q(uery) e(nable) r(elease) rr(release/renew) action to perform&lt;/p&gt;  &lt;p&gt;-help prints help file&lt;/p&gt;  &lt;p&gt;SYNTAX:&lt;/p&gt;  &lt;p&gt;WorkWithDHCP.ps1 -q &amp;quot;yes&amp;quot; -computer WebServer&lt;/p&gt;  &lt;p&gt;Queries DHCP settings on a computer named WebServer&lt;/p&gt;  &lt;p&gt;WorkWithDHCP.ps1 -action e&lt;/p&gt;  &lt;p&gt;enables DHCP on local computer&lt;/p&gt;  &lt;p&gt;WorkWithDHCP.ps1 -action r&lt;/p&gt;  &lt;p&gt;Releases the DHCP address on the local machine&lt;/p&gt;  &lt;p&gt;WorkWithDHCP.ps1 -action rr&lt;/p&gt;  &lt;p&gt;Releases and then renews the DHCP address on the local machine&lt;/p&gt;  &lt;p&gt;WorkWithDHCP.ps1 -help ?&lt;/p&gt;  &lt;p&gt;Displays the help topic for the script&lt;/p&gt;  &lt;p&gt;&amp;quot;@&lt;/p&gt;  &lt;p&gt;$helpText&lt;/p&gt;  &lt;p&gt;exit&lt;/p&gt;  &lt;p&gt;}&lt;/p&gt;  &lt;p&gt;function FunEvalRTN($rtn)&lt;/p&gt;  &lt;p&gt;{ &lt;/p&gt;  &lt;p&gt;Switch ($rtn.returnvalue) &lt;/p&gt;  &lt;p&gt;{ &lt;/p&gt;  &lt;p&gt;0 { Write-Host -foregroundcolor green &amp;quot;No errors for $strCall&amp;quot; }&lt;/p&gt;  &lt;p&gt;82 { Write-Host -foregroundcolor red &amp;quot;$strCall reports&amp;quot; `&lt;/p&gt;  &lt;p&gt;&amp;quot; Unable to renew DHCP lease&amp;quot; }&lt;/p&gt;  &lt;p&gt;83 { Write-Host -ForegroundColor red &amp;quot;$strCall reports&amp;quot; `&lt;/p&gt;  &lt;p&gt;&amp;quot; Unable to release DHCP lease&amp;quot; }&lt;/p&gt;  &lt;p&gt;91 { Write-Host -ForegroundColor red &amp;quot;$strCall reports&amp;quot; `&lt;/p&gt;  &lt;p&gt;&amp;quot; access denied&amp;quot;}&lt;/p&gt;  &lt;p&gt;DEFAULT { Write-Host -ForegroundColor red &amp;quot;$strCall service reports&amp;quot; `&lt;/p&gt;  &lt;p&gt;&amp;quot; ERROR $($rtn.returnValue)&amp;quot; }&lt;/p&gt;  &lt;p&gt;}&lt;/p&gt;  &lt;p&gt;$rtn=$strCall=$null&lt;/p&gt;  &lt;p&gt;}&lt;/p&gt;  &lt;p&gt;if($help) { funhelp }&lt;/p&gt;  &lt;p&gt;$global:RTN = $null&lt;/p&gt;  &lt;p&gt;if(!$action) { $action=&amp;quot;q&amp;quot; }&lt;/p&gt;  &lt;p&gt;$objWMI = Get-WmiObject -Class win32_networkadapterconfiguration `&lt;/p&gt;  &lt;p&gt;-computer $computer -filter &amp;quot;ipenabled = 'true'&amp;quot;&lt;/p&gt;  &lt;p&gt;Switch($action)&lt;/p&gt;  &lt;p&gt;{ &lt;/p&gt;  &lt;p&gt;&amp;quot;e&amp;quot; { &lt;/p&gt;  &lt;p&gt;$rtn = $objWMI.EnableDHCP() ; &lt;/p&gt;  &lt;p&gt;$strCall = &amp;quot;Enable DHCP&amp;quot; ; &lt;/p&gt;  &lt;p&gt;FunEvalRTN($rtn) &lt;/p&gt;  &lt;p&gt;}&lt;/p&gt;  &lt;p&gt;&amp;quot;r&amp;quot; { &lt;/p&gt;  &lt;p&gt;$rtn = $objWMI.ReleaseDHCPLease() ; &lt;/p&gt;  &lt;p&gt;$strCall = &amp;quot;Release DHCP address&amp;quot; ; &lt;/p&gt;  &lt;p&gt;FunEvalRTN($rtn) &lt;/p&gt;  &lt;p&gt;}&lt;/p&gt;  &lt;p&gt;&amp;quot;rr&amp;quot; { &lt;/p&gt;  &lt;p&gt;$rtn = $objWMI.RenewDHCPLease() ; &lt;/p&gt;  &lt;p&gt;$strCall = &amp;quot;Release and Renew DHCP address&amp;quot; ; &lt;/p&gt;  &lt;p&gt;FunEvalRTN($rtn) &lt;/p&gt;  &lt;p&gt;}&lt;/p&gt;  &lt;p&gt;&amp;quot;q&amp;quot; {&lt;/p&gt;  &lt;p&gt;&amp;quot;DHCP Server: $($objWMI.dhcpserver)&amp;quot;&lt;/p&gt;  &lt;p&gt;&amp;quot;Lease obtained: &amp;quot; + [Management.ManagementDatetimeConverter]::`&lt;/p&gt;  &lt;p&gt;todatetime($objWMI.DHCPleaseObtained)&lt;/p&gt;  &lt;p&gt;&amp;quot;Lease expires: &amp;quot; + [Management.ManagementDatetimeConverter]::`&lt;/p&gt;  &lt;p&gt;todatetime($objWMI.DHCPleaseExpires)&lt;/p&gt;  &lt;p&gt;}&lt;/p&gt;  &lt;p&gt;}&lt;/p&gt;  &lt;p&gt;该脚本首先使用param语句定义3个参数，其中-computer参数的默认值为localhost。然后声明全局变量RTN，并将其设置为$null，用于在代码段之间传递参数。如果没有提供任何参数，则显示当前DHCP的配置信息。如果$action变量没有参数，则默认为q参数，用于检索现有DHCP信息。&lt;/p&gt;  &lt;p&gt;接下来使用switch语句对判断$action变量值，如果为e，则在目标计算机上启用DHCP。这里调用enableDHCP()方法为$strCall变量指定一个字符串，并将其传递给FunEvalRTN函数判断enableDHCP()方法是否成功执行；如果为r，则调用releaseDHCP()方法释放DHCP地址，并返回值$strCall传递给FunEvalRTN函数判断是否执行成功；如果为rr，则更新DHCP地址为$strCall变量指定字符串，然后判断返回值。&lt;/p&gt;  &lt;p&gt;在switch语句的最后需要显示提供当前IP地址的DHCP服务器的地址，并查询获得租约的时间和过期时间。需要将UTC事件对象转换为客户端所需的正常时间，为此可以使用Manangement.ManangementDateTimeConverter这个.NET框架的类，并调用其中的toDateTime静态方法将UTC格式的日期时间对象传递给该方法。该脚本的执行结果如图13所示。&lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/fuhj02/201101/201101240039113279.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="471" alt="image" src="http://images.cnblogs.com/cnblogs_com/fuhj02/201101/201101240039148277.png" width="792" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p align="center"&gt;图6 查询和更新DHCP信息&lt;/p&gt;  &lt;p&gt;上面脚本中使用的EnableDHCP()、ReleaseDHCPLease()和RenewDHCPLease()等方法均是Vista以后的操作系统新增的方法，该脚本仅适用于Windows Vista及其以上版本。&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;作者: 付海军   &lt;br /&gt;出处：&lt;a href="http://fuhj02.cnblogs.com"&gt;http://fuhj02.cnblogs.com&lt;/a&gt;    &lt;br /&gt;版权：本文版权归作者和博客园共有    &lt;br /&gt;转载：欢迎转载，为了保存作者的创作热情，请按要求【转载】，谢谢    &lt;br /&gt;要求：未经作者同意，必须保留此段声明；必须在文章中给出原文连接；否则必究法律责任     &lt;br /&gt;个人网站: &lt;a href="http://txj.lzuer.com/"&gt;http://txj.lzuer.com/&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/fuhj02/aggbug/1942786.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/fuhj02/archive/2011/01/24/1942786.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/fuhj02/archive/2011/01/23/1942758.html</id><title type="text">PowerShell2.0之维护网络(二)处理适配器配置</title><summary type="text">在处理所有适配器的状态后，还可以查询每个网络适配器的详细配置信息。可以通过选择“控制面板”|“网络和共享中心”|“网络连接”选项，打开“网络连接”窗口。在其中显示每个适配器的详细信息并做相应调整，如图1所示。 图1 在“网络连接”窗口中查看每个适配器的详细信息 创建名为“GetNetAdapterConfig.ps1”的脚本收集特定网络适配器的用于排错的详细信息，并且通过指定关键字仅返回有关网络...</summary><published>2011-01-23T15:46:00Z</published><updated>2011-01-23T15:46:00Z</updated><author><name>天行健@中国元素</name><uri>http://www.cnblogs.com/fuhj02/</uri></author><link rel="alternate" href="http://www.cnblogs.com/fuhj02/archive/2011/01/23/1942758.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/fuhj02/archive/2011/01/23/1942758.html"/><content type="html">&lt;p&gt;在处理所有适配器的状态后，还可以查询每个网络适配器的详细配置信息。可以通过选择“控制面板”|“网络和共享中心”|“网络连接”选项，打开“网络连接”窗口。在其中显示每个适配器的详细信息并做相应调整，如图1所示。&lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/fuhj02/201101/201101232345252677.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="360" alt="image" src="http://images.cnblogs.com/cnblogs_com/fuhj02/201101/201101232345273191.png" width="704" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p align="center"&gt;图1 在“网络连接”窗口中查看每个适配器的详细信息&lt;/p&gt;  &lt;p&gt;创建名为“GetNetAdapterConfig.ps1”的脚本收集特定网络适配器的用于排错的详细信息，并且通过指定关键字仅返回有关网络适配器的特定配置信息，其代码如下：&lt;/p&gt;  &lt;p&gt;param($computer=&amp;quot;localhost&amp;quot;,$query,$help)&lt;/p&gt;  &lt;p&gt;function funHelp()&lt;/p&gt;  &lt;p&gt;{&lt;/p&gt;  &lt;p&gt;$helpText=@&amp;quot;&lt;/p&gt;  &lt;p&gt;DESCRIPTION:&lt;/p&gt;  &lt;p&gt;NAME: GetNetAdapterConfig.ps1&lt;/p&gt;  &lt;p&gt;Produces a listing of network adapter configuration information&lt;/p&gt;  &lt;p&gt;on a local or remote machine.&lt;/p&gt;  &lt;p&gt;PARAMETERS: &lt;/p&gt;  &lt;p&gt;-computer Specifies the name of the computer to run the script&lt;/p&gt;  &lt;p&gt;-help prints help file&lt;/p&gt;  &lt;p&gt;-query the type of query &amp;lt; ip, dns, dhcp, all &amp;gt;&lt;/p&gt;  &lt;p&gt;SYNTAX:&lt;/p&gt;  &lt;p&gt;GetNetAdapterConfig.ps1 -computerName WebServer&lt;/p&gt;  &lt;p&gt;Lists default network adapter configuration on a &lt;/p&gt;  &lt;p&gt;computer named WebServer&lt;/p&gt;  &lt;p&gt;GetNetAdapterConfig.ps1 -computerName WebServer -query IP&lt;/p&gt;  &lt;p&gt;Lists IPaddress, IPsubnet, DefaultIPgateway, MACAddress &lt;/p&gt;  &lt;p&gt;on a computer named WebServer&lt;/p&gt;  &lt;p&gt;GetNetAdapterConfig.ps1 -computerName WebServer -query DNS&lt;/p&gt;  &lt;p&gt;Lists DNSDomain, DNSDomainSuffixSearchOrder, DNSServerSearchOrder, &lt;/p&gt;  &lt;p&gt;DomainDNSRegistrationEnabled on a computer named WebServer&lt;/p&gt;  &lt;p&gt;GetNetAdapterConfig.ps1 -computerName WebServer -query DHCP&lt;/p&gt;  &lt;p&gt;Lists Index,DHCPEnabled, DHCPLeaseExpires, DHCPLeaseObtained, &lt;/p&gt;  &lt;p&gt;DHCPServer on a computer named WebServer&lt;/p&gt;  &lt;p&gt;GetNetAdapterConfig.ps1 -computerName WebServer -query ALL&lt;/p&gt;  &lt;p&gt;Lists all network adapter configuration information on a computer &lt;/p&gt;  &lt;p&gt;named WebServer&lt;/p&gt;  &lt;p&gt;GetNetAdapterConfig.ps1 -help ?&lt;/p&gt;  &lt;p&gt;Prints the help topic for the script&lt;/p&gt;  &lt;p&gt;&amp;quot;@&lt;/p&gt;  &lt;p&gt;$helpText&lt;/p&gt;  &lt;p&gt;exit&lt;/p&gt;  &lt;p&gt;}&lt;/p&gt;  &lt;p&gt;if($help) { &amp;quot;Printing help now...&amp;quot; ; funHelp }&lt;/p&gt;  &lt;p&gt;$class=&amp;quot;win32_networkadapterconfiguration&amp;quot;&lt;/p&gt;  &lt;p&gt;$IPproperty=&amp;quot;IPaddress, IPsubnet, DefaultIPgateway, MACAddress&amp;quot;&lt;/p&gt;  &lt;p&gt;$dnsProperty=&amp;quot;DNSDomain, DNSDomainSuffixSearchOrder, `&lt;/p&gt;  &lt;p&gt;DNSServerSearchOrder, DomainDNSRegistrationEnabled&amp;quot;&lt;/p&gt;  &lt;p&gt;$dhcpProperty=&amp;quot;Index,DHCPEnabled, DHCPLeaseExpires, `&lt;/p&gt;  &lt;p&gt;DHCPLeaseObtained, DHCPServer&amp;quot;&lt;/p&gt;  &lt;p&gt;if($query)&lt;/p&gt;  &lt;p&gt;{&lt;/p&gt;  &lt;p&gt;switch($query)&lt;/p&gt;  &lt;p&gt;{&lt;/p&gt;  &lt;p&gt;&amp;quot;ip&amp;quot; { $query=&amp;quot;Select $IPproperty from $class&amp;quot; }&lt;/p&gt;  &lt;p&gt;&amp;quot;dns&amp;quot; { $query=&amp;quot;Select $dnsProperty from $class&amp;quot; }&lt;/p&gt;  &lt;p&gt;&amp;quot;dhcp&amp;quot; { $query=&amp;quot;Select $dhcpProperty from $class&amp;quot; }&lt;/p&gt;  &lt;p&gt;&amp;quot;all&amp;quot; { &lt;/p&gt;  &lt;p&gt;$query = &amp;quot;Select * from $class&amp;quot; ; `&lt;/p&gt;  &lt;p&gt;Get-WmiObject -Query $query | format-list * ; &lt;/p&gt;  &lt;p&gt;exit&lt;/p&gt;  &lt;p&gt;}&lt;/p&gt;  &lt;p&gt;DEFAULT { &lt;/p&gt;  &lt;p&gt;$query = &amp;quot;Select * from $class&amp;quot; ; `&lt;/p&gt;  &lt;p&gt;Get-WmiObject -Query $query ; exit&lt;/p&gt;  &lt;p&gt;}&lt;/p&gt;  &lt;p&gt;}&lt;/p&gt;  &lt;p&gt;}&lt;/p&gt;  &lt;p&gt;ELSE&lt;/p&gt;  &lt;p&gt;{ &lt;/p&gt;  &lt;p&gt;$query = &amp;quot;Select * from $class&amp;quot; ; `&lt;/p&gt;  &lt;p&gt;Get-WmiObject -Query $query ; exit &lt;/p&gt;  &lt;p&gt;}&lt;/p&gt;  &lt;p&gt;Get-WmiObject -query $query | format-table [a-z]* -AutoSize&lt;/p&gt;  &lt;p&gt;该脚本使用param语句定义了3个参数，即-computer、-query及-help。其中设置-computer的默认值为localhost。如果用户未指定计算机，则默认返回本地计算机的网络配置。&lt;/p&gt;  &lt;p&gt;接下来针对帮助信息创建的funhelp函数用于输出帮助信息，当用户未输入参数或输入错误的参数时，调用该函数提示输入的错误及正确的输入。脚本中使用if语句检查$help变量是否存在，因为只有用户在调用脚本时指定了-help参数，该变量才会存在。随后初始化用于WMI查询的变量，这些变量的存在是为了便于在后面对命令行应用中实现灵活调用。在用户输入的参数中包括-query参数时，脚本将会调用switch语句判断$query变量值。并执行相应的操作，输出ip、dns、dhcp和所有条目的信息。在$query变量无输入的情况下还特别使用ELSE语句将WMI对象中的所有属性发送给Get-WmiObject cmdlet查询，在控制台输出当前计算机中的所有网络连接的信息。在代码的最后将Get-WmiObject cmdlet查询的结果通过管道传递给Format-Table cmdlet格式化输出，在使用Format-Tables时需要指定符合Get-WmiObject cmdlet输出代码格式的参数。该脚本的执行结果如图2和图3所示。&lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/fuhj02/201101/201101232345347539.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="442" alt="image" src="http://images.cnblogs.com/cnblogs_com/fuhj02/201101/201101232345355719.png" width="673" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p align="center"&gt;图2 查询当前主机DHCP信息&lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/fuhj02/201101/201101232345394130.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="442" alt="image" src="http://images.cnblogs.com/cnblogs_com/fuhj02/201101/201101232345406247.png" width="673" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p align="center"&gt;图3 未指定检索项默认会输出所有的网络适配器信息&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;作者: 付海军    &lt;br /&gt;出处：&lt;a href="http://fuhj02.cnblogs.com"&gt;http://fuhj02.cnblogs.com&lt;/a&gt;     &lt;br /&gt;版权：本文版权归作者和博客园共有     &lt;br /&gt;转载：欢迎转载，为了保存作者的创作热情，请按要求【转载】，谢谢     &lt;br /&gt;要求：未经作者同意，必须保留此段声明；必须在文章中给出原文连接；否则必究法律责任     &lt;br /&gt;个人网站: &lt;a href="http://txj.lzuer.com/"&gt;http://txj.lzuer.com/&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/fuhj02/aggbug/1942758.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/fuhj02/archive/2011/01/23/1942758.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/fuhj02/archive/2011/01/22/1942261.html</id><title type="text">PowerShell2.0之维护网络(一)查看网络设置</title><summary type="text">本文将会介绍如何使用PowerShell管理网络，包括设置和TCP/IP堆栈有关的选项；通过不同脚本提供网络适配器的状态信息，网络适配器的连接状态及属性；设置静态IP、启动DHCP及配置DNS服务器；获取防火墙设置信息并设置有关选项以启用远程管理，以及远程共享文件等。 Windows Vista开始在网络功能方面有了很大改善，包括新的防火墙服务及IPv6协议的增强支持等。同时从Windows V...</summary><published>2011-01-22T15:53:00Z</published><updated>2011-01-22T15:53:00Z</updated><author><name>天行健@中国元素</name><uri>http://www.cnblogs.com/fuhj02/</uri></author><link rel="alternate" href="http://www.cnblogs.com/fuhj02/archive/2011/01/22/1942261.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/fuhj02/archive/2011/01/22/1942261.html"/><content type="html">&lt;p&gt;本文将会介绍如何使用PowerShell管理网络，包括设置和TCP/IP堆栈有关的选项；通过不同脚本提供网络适配器的状态信息，网络适配器的连接状态及属性；设置静态IP、启动DHCP及配置DNS服务器；获取防火墙设置信息并设置有关选项以启用远程管理，以及远程共享文件等。&lt;/p&gt;  &lt;p&gt;Windows Vista开始在网络功能方面有了很大改善，包括新的防火墙服务及IPv6协议的增强支持等。同时从Windows Vista开始WMI中增加了很多用于操作防火墙和IPv6的新特性和计数器，可以显示和使用IPv6地址。&lt;/p&gt;  &lt;p&gt;Windows Vista和Windows Server 2008中包括强大的网络功能，允许用户以简单且便捷的方式操作网络。但是给网络管理员带来大量麻烦，如管理大量网络适配器，如图1所示。&lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/fuhj02/201101/201101222352508506.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="435" alt="image" src="http://images.cnblogs.com/cnblogs_com/fuhj02/201101/201101222352511179.png" width="672" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p align="center"&gt;图1 需要管理大量网络适配器&lt;/p&gt;  &lt;p&gt;为了有效地管理网络设备，创建名为“GetNetAdapterStatus.ps1”的脚本用于检测网络适配器的状态，其代码如下：&lt;/p&gt;  &lt;p&gt;param($computer=&amp;quot;localhost&amp;quot;,$help)&lt;/p&gt;  &lt;p&gt;function funStatus($status)&lt;/p&gt;  &lt;p&gt;{&lt;/p&gt;  &lt;p&gt;switch($status)&lt;/p&gt;  &lt;p&gt;{&lt;/p&gt;  &lt;p&gt;0 { &amp;quot; Disconnected&amp;quot; }&lt;/p&gt;  &lt;p&gt;1 { &amp;quot; Connecting&amp;quot; } &lt;/p&gt;  &lt;p&gt;2 { &amp;quot; Connected&amp;quot; }&lt;/p&gt;  &lt;p&gt;3 { &amp;quot; Disconnecting&amp;quot; } &lt;/p&gt;  &lt;p&gt;4 { &amp;quot; Hardware not present&amp;quot; } &lt;/p&gt;  &lt;p&gt;5 { &amp;quot; Hardware disabled&amp;quot; } &lt;/p&gt;  &lt;p&gt;6 { &amp;quot; Hardware malfunction&amp;quot; } &lt;/p&gt;  &lt;p&gt;7 { &amp;quot; Media disconnected&amp;quot; } &lt;/p&gt;  &lt;p&gt;8 { &amp;quot; Authenticating&amp;quot; } &lt;/p&gt;  &lt;p&gt;9 { &amp;quot; Authentication succeeded&amp;quot; } &lt;/p&gt;  &lt;p&gt;10 { &amp;quot; Authentication failed&amp;quot; } &lt;/p&gt;  &lt;p&gt;}&lt;/p&gt;  &lt;p&gt;}&lt;/p&gt;  &lt;p&gt;function funHelp()&lt;/p&gt;  &lt;p&gt;{&lt;/p&gt;  &lt;p&gt;$helpText=@&amp;quot;&lt;/p&gt;  &lt;p&gt;DESCRIPTION:&lt;/p&gt;  &lt;p&gt;NAME: GetNetAdapterStatus.ps1&lt;/p&gt;  &lt;p&gt;Produces a listing of network adapters and status on a local or remote machine.&lt;/p&gt;  &lt;p&gt;PARAMETERS: &lt;/p&gt;  &lt;p&gt;-computerName Specifies the name of the computer upon which to run the script&lt;/p&gt;  &lt;p&gt;-help prints help file&lt;/p&gt;  &lt;p&gt;SYNTAX:&lt;/p&gt;  &lt;p&gt;GetNetAdapterStatus.ps1 -computer WebServer&lt;/p&gt;  &lt;p&gt;Lists all the network adapters and status on a computer named WebServer&lt;/p&gt;  &lt;p&gt;GetNetAdapterStatus.ps1 &lt;/p&gt;  &lt;p&gt;Lists all the network adapters and status on local computer&lt;/p&gt;  &lt;p&gt;GetNetAdapterStatus.ps1 -help ?&lt;/p&gt;  &lt;p&gt;Displays the help topic for the script&lt;/p&gt;  &lt;p&gt;&amp;quot;@&lt;/p&gt;  &lt;p&gt;$helpText&lt;/p&gt;  &lt;p&gt;exit&lt;/p&gt;  &lt;p&gt;}&lt;/p&gt;  &lt;p&gt;function funline ($strIN)&lt;/p&gt;  &lt;p&gt;{&lt;/p&gt;  &lt;p&gt;$num = $strIN.length&lt;/p&gt;  &lt;p&gt;for($i=1 ; $i -le $num ; $i++)&lt;/p&gt;  &lt;p&gt;{ $funline = $funline + &amp;quot;=&amp;quot; }&lt;/p&gt;  &lt;p&gt;Write-Host -ForegroundColor yellow $strIN &lt;/p&gt;  &lt;p&gt;Write-Host -ForegroundColor darkYellow $funline&lt;/p&gt;  &lt;p&gt;}&lt;/p&gt;  &lt;p&gt;if($help) { &amp;quot;Printing help now...&amp;quot; ; funHelp }&lt;/p&gt;  &lt;p&gt;$objWMI=Get-WmiObject -Class win32_networkadapter -computer $computer&lt;/p&gt;  &lt;p&gt;funline(&amp;quot;Network adapters and status on $computer&amp;quot;)&lt;/p&gt;  &lt;p&gt;foreach($net in $objWMI)&lt;/p&gt;  &lt;p&gt;{&lt;/p&gt;  &lt;p&gt;Write-Host &amp;quot;$($net.name)&amp;quot;&lt;/p&gt;  &lt;p&gt;funstatus($net.netconnectionstatus)&lt;/p&gt;  &lt;p&gt;}&lt;/p&gt;  &lt;p&gt;为了获取网络适配器的状态，在该脚本中使用Win32_NetWorkAdapter WMI类返回状态代码。并创建了一个名为“funStatus”的函数，通过switch语句的代码块包括Win32_NetWorkAdapterWMI类定义的所有可能的状态代码。状态代码及其含义在Windows软件开发包（SDK）中有详细介绍，说明如下。&lt;/p&gt;  &lt;p&gt;Ø 0：Disconnected（断开）。&lt;/p&gt;  &lt;p&gt;Ø 1：Connecting（连接中）。&lt;/p&gt;  &lt;p&gt;Ø 2：Connected（已连接）。&lt;/p&gt;  &lt;p&gt;Ø 3：Disconnecting（断开中）。&lt;/p&gt;  &lt;p&gt;Ø 4：Hardware not present（硬件不存在）。&lt;/p&gt;  &lt;p&gt;Ø 5：Hardware disabled（硬件已禁用）。&lt;/p&gt;  &lt;p&gt;Ø 6：Hardware malfunction（硬件故障）。&lt;/p&gt;  &lt;p&gt;Ø 7：Media disconnected（媒介断开）。&lt;/p&gt;  &lt;p&gt;Ø 8：Authenticating（权限认证中）。&lt;/p&gt;  &lt;p&gt;Ø 9：Authentication succeeded（权限认证成功）。&lt;/p&gt;  &lt;p&gt;Ø 10：Authentication failed（权限认证失败）。&lt;/p&gt;  &lt;p&gt;在该脚本中通过funStatus函数将状态值转换为便于理解的内容，其执行结果如图2所示。&lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/fuhj02/201101/201101222352543985.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="435" alt="image" src="http://images.cnblogs.com/cnblogs_com/fuhj02/201101/201101222352567215.png" width="672" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p align="center"&gt;图2 执行结果&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;作者: 付海军    &lt;br /&gt;出处：&lt;a href="http://fuhj02.cnblogs.com"&gt;http://fuhj02.cnblogs.com&lt;/a&gt;     &lt;br /&gt;版权：本文版权归作者和博客园共有     &lt;br /&gt;转载：欢迎转载，为了保存作者的创作热情，请按要求【转载】，谢谢     &lt;br /&gt;要求：未经作者同意，必须保留此段声明；必须在文章中给出原文连接；否则必究法律责任     &lt;br /&gt;个人网站: &lt;a href="http://txj.lzuer.com/"&gt;http://txj.lzuer.com/&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/fuhj02/aggbug/1942261.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/fuhj02/archive/2011/01/22/1942261.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
