<?xml version="1.0" encoding="GBK" ?>
<rss version="2.0" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dcterms="http://purl.org/dc/terms/">
 <channel>
  	  <title><![CDATA[大河§晕王&apos;Blog]]></title>
	  <link>http://ewangsoft.blog.163.com</link>
	  <description><![CDATA[Interest Network/Server/Program ]]></description>
	  <language>zh-CN</language>
	  <pubDate>Thu, 17 Jul 2008 21:26:01 +0800</pubDate>
	  <lastBuildDate>Thu, 17 Jul 2008 21:26:01 +0800</lastBuildDate>
	  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
	  <generator><![CDATA[NetEase Space]]></generator>
	  <managingEditor><![CDATA[ewangsoft]]></managingEditor>
	  <webMaster><![CDATA[大河§晕王]]></webMaster>
		  <ttl>120</ttl>
	  <image>
	  	<title><![CDATA[大河§晕王&apos;Blog]]></title>
	  	<url>http://ava.blog.163.com/photo/hofPVYAAs2XkVMaBYIuefg==/178736610211369548.jpg</url>
	  	<link>http://ewangsoft.blog.163.com</link>
	  </image>
  <item>
  	<title><![CDATA[基于第二层的网络隔离]]></title>	
    <link>http://ewangsoft.blog.163.com/blog/static/77215582200861781123956</link>
    <description><![CDATA[<div><P>为了隔离网络广播，我们可以使用VLAN技术将网络划分成虚拟局域网。但是，在同一VLAN内的PC，仍然处在一个广播域中，也就是说，同一VLAN内各PC之间的通信不受限制。</P>
<P><FONT color=#ff0000>这时，可以使用基于MAC地址的访问控制列表，在每个端口做第二层过滤。</FONT></P>
<P>命令如下（神州数码S3926交换机配置命令）：</P>
<P>全局模式下创建访问列表1100：</P>
<P>access-list 1100&nbsp; permit&nbsp; [Sourcemac]&nbsp; [Sourcemac-wildcard bits] [Destinationmac]&nbsp; [Dourcemac-wildcard bits]</P>
<P>access-list 1100&nbsp; deny&nbsp;&nbsp;&nbsp; [Sourcemac]&nbsp; [Sourcemac-wildcard bits] [Destinationmac]&nbsp; [Dourcemac-wildcard bits]</P>
<P>全局模式下将访问列表1100应用到指定接口：</P>
<P>access-group&nbsp;&nbsp; mac-acl&nbsp; 1100&nbsp; in interface [interface name]</P>
<P>access-group&nbsp;&nbsp; mac-acl&nbsp; 1100&nbsp; in interface [interface name]</P>
<P>我们可以在交换机所有的接口启用如上的访问列表，可以做到基于MAC的精确过滤。</P>
<P>但是，这种方法配置需要查找到每个接入PC的MAC地址并输入到访问列表中，比较繁琐，同时，<FONT color=#ff0000>还有一个弊端，当PC更改MAC地址时，需要更改访问列表规则，不然将起不到应有的作用</FONT>。</P>
<P>另外，还有这样一些情况，PC之间不允许通信，但所有PC允许与某一服务器或网关通信，拓扑如下图示：</P>
<P align=center>&nbsp;<A href="http://img.blog.163.com/photo/EfBK0X6OCy153gHzkvi4XA==/616993148950215213.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/EfBK0X6OCy153gHzkvi4XA==/616993148950215213.jpg"></A><A href="http://img.blog.163.com/photo/yhnjQGnMMrqU9PBVNQNWyA==/1999035284599593142.jpg" target=_blank></A></P>
<P align=left>实现如上的功能，使用基于MAC地址的访问控制可以实现，但是，操作起来比较繁琐。</P>
<P align=left>此时，我们可以使用私有VLAN来实现如上功能：</P>
<P>&nbsp;1、将连接服务器和路由器的交换机接口放置到VLAN 10中，设置VLAN 10为主VLAN：</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; switch(Config)#vlan 10</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; switch(Config-Vlan10)#private-vlan primary</P>
<P>2、将PC所在的接口放置到VLAN 20中，设置其为隔离VLAN：</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp; switch(Config)#vlan 20</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp; switch(Config-Vlan20)#private-vlan&nbsp; isolated</P>
<P>3、在主VLAN 20中联合隔离VLAN 20，以便VLAN 20内接口可以和VLAN 20内接口通信：</P>
<P>&nbsp;&nbsp;&nbsp; switch(Config-Vlan10)#private-vlan association 20</P>
<P>4、安装如上图的IP配置，即可实现PC间不可通信，PC与网关和服务器可以通信。</P></div>]]></description>
	    <author><![CDATA[大河§晕王]]></author>
	    <comments>http://ewangsoft.blog.163.com/blog/static/77215582200861781123956</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://ewangsoft.blog.163.com/blog/static/77215582200861781123956</guid>
    <pubDate>Thu, 17 Jul 2008 21:25:31 +0800</pubDate>
    <dcterms:modified>2008-07-17T21:25:31+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[交换机端口的三种链路类型]]></title>	
    <link>http://ewangsoft.blog.163.com/blog/static/772155822008614105028684</link>
    <description><![CDATA[<div><P><STRONG>以太网端口有三种链路类型：access、trunk、hybird。</STRONG></P>
<P>Access类型的端口只能属于1个VLAN，一般用于连接计算机的端口；<BR>Trunk类型的端口可以允许多个VLAN通过，可以接收和发送多个VLAN的报文，一般用于交换机之间连接的端口；<BR>Hybrid类型的端口可以允许多个VLAN通过，可以接收和发送多个VLAN的报文，可以用于交换机之间连接，也可以用于连接用户的计算机。<BR>Hybrid端口和Trunk端口在接收数据时，处理方法是一样的，唯一不同之处在于发送数据时：Hybrid端口可以允许多个VLAN的报文发送时不打标签，而Trunk端口只允许缺省VLAN的报文发送时不打标签。</P>
<P><STRONG>缺省VLAN：</STRONG><BR>Access端口只属于1个VLAN，所以它的缺省VLAN就是它所在的VLAN，不用设置；<BR>Hybrid端口和Trunk端口属于多个VLAN，所以需要设置缺省VLAN ID。缺省情况下，Hybrid端口和Trunk端口的缺省VLAN为VLAN 1；<BR><STRONG><FONT color=#ff0000>&nbsp;&nbsp;&nbsp; 如果设置了端口的缺省VLAN ID，当端口接收到不带VLAN Tag的报文后，则将报文转发到属于缺省VLAN的端口；当端口发送带有VLAN Tag的报文时，如果该报文的VLAN ID与端口缺省的VLAN ID相同，则系统将去掉报文的VLAN Tag，然后再发送该报文。</FONT><BR></STRONG>注：对于华为交换机缺省VLAN被称为“Pvid Vlan”， 对于思科交换机缺省VLAN被称为“Native Vlan”</P>
<P><STRONG>交换机接口出入数据处理过程：</STRONG> <BR>Acess端口收报文:<BR>&nbsp;&nbsp;&nbsp; 收到一个报文,判断是否有VLAN信息：如果没有则打上端口的PVID，并进行交换转发,如果有则直接丢弃（缺省）<BR>Acess端口发报文：<BR>&nbsp;&nbsp;&nbsp; 将报文的VLAN信息剥离，直接发送出去 <BR>trunk端口收报文： <BR>&nbsp;&nbsp;&nbsp; 收到一个报文，判断是否有VLAN信息：如果没有则打上端口的PVID，并进行交换转发，如果有判断该trunk端口是否允许该VLAN的数据进入：如果可以则转发，否则丢弃<BR>trunk端口发报文：<BR>&nbsp;&nbsp;&nbsp; <FONT color=#ff0000><STRONG>比较端口的PVID和将要发送报文的VLAN信息，如果两者相等则剥离VLAN信息，再发送，如果不相等则直接发送</STRONG><BR></FONT>hybrid端口收报文：&nbsp;<BR>&nbsp;&nbsp;&nbsp; 收到一个报文,判断是否有VLAN信息：如果没有则打上端口的PVID，并进行交换转发，如果有则判断该hybrid端口是否允许该VLAN的数据进入：如果可以则转发，否则丢弃(此时端口上的untag配置是不用考虑的，untag配置只对发送报文时起作用)<BR>hybrid端口发报文：<BR>&nbsp;&nbsp;&nbsp; 1、判断该VLAN在本端口的属性（disp interface 即可看到该端口对哪些VLAN是untag， 哪些VLAN是tag）<BR>&nbsp;&nbsp;&nbsp; 2、如果是untag则剥离VLAN信息，再发送，如果是tag则直接发送<BR></P>
<P>可以用此理论解释如下图示两台PC（属于两个VLAN，同一个网段）间可以通信的问题。</P>
<P align=center><A href="http://img.blog.163.com/photo/LqR2Kqi7yJEeL8HoUcifkg==/890868301290023319.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/LqR2Kqi7yJEeL8HoUcifkg==/890868301290023319.jpg"></A><BR>&nbsp;</P></div>]]></description>
	    <author><![CDATA[大河§晕王]]></author>
	    <comments>http://ewangsoft.blog.163.com/blog/static/772155822008614105028684</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://ewangsoft.blog.163.com/blog/static/772155822008614105028684</guid>
    <pubDate>Mon, 14 Jul 2008 10:50:28 +0800</pubDate>
    <dcterms:modified>2008-07-14T10:59:43+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[【转载】46个不可不知的生活小常识]]></title>	
    <link>http://ewangsoft.blog.163.com/blog/static/772155822008632402495</link>
    <description><![CDATA[<div><P><FONT size=3>1、常吃宵夜，会得胃癌， 因为胃得不到休息<BR>2、一个星期只能吃四颗蛋，吃太多，对身体不好<BR>3、，鸡屁股含有致癌物, 不要吃较好<BR>4、饭后吃水果是错误的观念， 应是饭前吃水果<BR>5、女生月经来时，不要喝绿茶， 反正茶类不要喝就对了，多吃可以补血的东西<BR>6、喝豆浆时不要加鸡蛋及糖， 也不要喝太多<BR>7、空腹时不要吃蕃茄, 最好饭后吃<BR>8、早上醒来，先喝一杯水， 预防结石<BR>9、睡前三小时不要吃东西， 会胖<BR>10、少喝奶茶， 因为高热量，高油，没有营养价值可言，长期饮用，易罹患高血压，糖尿病，等疾病<BR>11、刚出炉的面包 不宜马上食用<BR>12、远离充电座， 人体应远离30公分以上，切忌放在床边<BR>13、天天喝水 八大杯<BR>14、每天十杯水， 膀胱癌不会来<BR>15、白天多喝水， 晚上少喝水<BR>16、一天不要喝两杯以上的咖啡， 喝太多易导致失眠,胃痛<BR>17、多油脂的食物少吃，因 为得花5~7小时去消化,并使脑中血液集中到肠胃，易昏昏欲睡<BR>18、下午五点后，大餐少少吃, 因为五点后身体不需那么多能量<BR>19、10种吃了会快乐的食物: 深海鱼,香蕉,葡萄柚,全麦面包,菠菜,大蒜,南瓜,低脂牛奶,鸡肉,樱桃<BR>20、睡眠不足会变笨, 一天须八小时睡眠,有午睡习惯较不会老<BR>21、最佳睡眠时间是在 晚上10点~清晨6点<BR>22、每天喝酒不要超过一杯, 因为酒精会抑制制造抗体的B细胞,增加细菌感染的机会<BR>23、服用胶囊应以冷水吞服(可以第一个吃), 睡前30分先服药，忌立即躺下<BR>24、酸梅具防止老化作用, 青春永驻;肝火有毛病者宜多食用<BR>25、掉发因素: 熬夜,压力,烟酒,香鸡排，麻辣锅，油腻食物，调味过重的料理<BR>26、帮助头发生长:多 食用包心菜,蛋，豆类;少吃甜食(尤其是果糖)<BR>27、每天一杯柠檬汁,柳橙汁， 不但可以美白还可以淡化黑斑<BR>28、苹果是机车族、瘾君子、家庭主妇的常备良药， 一天一颗，才能让自己有个干干净净的肺<BR>29、抽烟又吃维他命(B胡萝卜素-A维他命的一种), 会致癌,尽早戒烟，才是最健康的做法<BR>30、女性不宜喝茶的五个时期: 月经来时,孕妇,临产前，生产完后,更年期<BR>31、抽烟,关系最大的是 肺癌,唇癌,舌癌,喉癌,食道癌,也与膀胱癌有关<BR>32、饮酒导致肝硬化 ，引发肝癌<BR>33、吃槟榔会导致口腔纤维化, 口腔癌<BR>34、食物过于精细,缺乏纤维; 含大量脂肪,尤其是胆固醇会引发胃癌<BR>35、食物过于粗糙, 营养不足时导致食道癌,胃癌<BR>36、食品中的黄曲毒素， 亚硝酸类物皆具有致癌性<BR>37、不抽烟， 拒吸二手烟<BR>38、适量饮酒, 不拚久，不醉酒<BR>39、减少食用 盐腌，烟熏,烧烤的食物<BR>40、每天摄取新鲜的 蔬菜与水果<BR>41、每天摄取富含高纤维的 五谷类及豆类<BR>42、每天摄取均衡的饮食, 不过量<BR>43、维持理想体重， 不过胖<BR>44、保持规律的 生活与运动<BR>45、保持 轻松愉快的心情<BR>46、正确饮食习惯: 早上吃的像皇帝,中午吃的像平民,晚上吃的像乞丐</FONT></P></div>]]></description>
	    <author><![CDATA[大河§晕王]]></author>
	    <comments>http://ewangsoft.blog.163.com/blog/static/772155822008632402495</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://ewangsoft.blog.163.com/blog/static/772155822008632402495</guid>
    <pubDate>Thu, 3 Jul 2008 14:40:24 +0800</pubDate>
    <dcterms:modified>2008-07-03T16:28:30+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[【原创】在“设备仿真器”里面体验WM6]]></title>	
    <link>http://ewangsoft.blog.163.com/blog/static/772155822008630923354</link>
    <description><![CDATA[<div><P align=left>&nbsp;&nbsp;&nbsp;&nbsp;WM－Windows Mobile，是微软推出的For Pocket PC/Smartphone等移动通信设备的操作系统。这些设备往往价格较高，不少人（包括我）都消费不起。但是，我们可以通过“设备仿真器”，在电脑中运行WM操作系统，来体验WM For PPC的魅力。下面就介绍我在仿真器里面模拟的WM6。</P>
<P>一、在“设备仿真器”里运行PPC后如下图：</P>
<P align=left><A href="http://img.blog.163.com/photo/DP-kF1lL0EuueFERALpwTQ==/5711971702390263663.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/DP-kF1lL0EuueFERALpwTQ==/5711971702390263663.jpg"></A><A href="http://img.blog.163.com/photo/s3jfD8zuuVZMa4et9aqwfA==/5678757655137751092.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/s3jfD8zuuVZMa4et9aqwfA==/5678757655137751092.jpg"></A><A href="http://img.blog.163.com/photo/O8fCttnYwDYszkDRtFUsng==/5678757655137751093.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/O8fCttnYwDYszkDRtFUsng==/5678757655137751093.jpg"></A><A href="http://img.blog.163.com/photo/j3PtmNRHt5ltXXb5TKWA1w==/5678757655137751094.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/j3PtmNRHt5ltXXb5TKWA1w==/5678757655137751094.jpg"></A><A href="http://img.blog.163.com/photo/Rqx0NfxUPyn8rZyK9Sxjeg==/5678757655137751095.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/Rqx0NfxUPyn8rZyK9Sxjeg==/5678757655137751095.jpg"></A><A href="http://img.blog.163.com/photo/fYAXZLnZtj7EURCuVE1rFQ==/2322731507817083777.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/fYAXZLnZtj7EURCuVE1rFQ==/2322731507817083777.jpg"></A></P>
<P align=left>&nbsp;</P><A href="http://img.blog.163.com/photo/ku2lPw9wFMow_ln-vRTJDw==/5429370825772558870.jpg" target=_blank></A>
<P>二、设置网络</P>
<P>&nbsp;&nbsp;&nbsp; 1、我们可以让“仿真器网卡”桥接到电脑网卡上。在“设备仿真器”上单击“文件”－“配置”，切换到“网络”页面，如下图：</P>
<P align=center><A href="http://img.blog.163.com/photo/E1kH5RiQZN_AECQ4lpJ3qw==/3423017191779068049.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/E1kH5RiQZN_AECQ4lpJ3qw==/3423017191779068049.jpg"></A></P>
<P align=left>勾选中“启用NE2000 PCMICA网络适配器并绑定到”，然后在下面的列表中选择计算机的网卡，完成桥接。</P>
<P align=left>&nbsp; 2、在WM6中，单击“开始”－“设置”，打开设置窗体，切换到“连接”选项，如下图示：</P>
<P align=center><A href="http://img.blog.163.com/photo/yMfC7u1bwWFt1QPKK4Idtg==/921830548728187834.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/yMfC7u1bwWFt1QPKK4Idtg==/921830548728187834.jpg"></A></P>
<P align=left>&nbsp; 3、单击“网卡”，打开“配置网络适配器”窗体。在“我的网卡连接到”中，选择“Work”（<STRONG>此处也可以选择"The Internet"，选择后，下面的凡是选择"Work"的都要改为选择"The Internet"。</STRONG>）；在“点击适配器以修改设置”中，选择“NE2000 兼容Ethernet驱动程序”。如下图：</P>
<P align=center><A href="http://img.blog.163.com/photo/-yAa4T9ItZp-61QMHHbvuA==/572801577606685801.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/-yAa4T9ItZp-61QMHHbvuA==/572801577606685801.jpg"></A></P>
<P align=left>&nbsp; 4、选择完适配器后，会自动打开适配器网络设置窗口。根据实际网络来分配IP、网关、DNS等。如下图：</P>
<P align=center><A href="http://img.blog.163.com/photo/OYY63PDeSLOIasPxNWUKRw==/4012144318034424406.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/OYY63PDeSLOIasPxNWUKRw==/4012144318034424406.jpg"></A></P>
<P align=left>&nbsp; 5、单击右上角“OK”，以确定配置。</P>
<P align=left>&nbsp; 6、返回窗体，然后单击“连接”图标，切换到“高级”选项页，如下图：</P>
<P align=center><A href="http://img.blog.163.com/photo/LVoWIupKC6pvclsDtOuAMg==/1178254252511347053.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/LVoWIupKC6pvclsDtOuAMg==/1178254252511347053.jpg"></A></P>
<P align=left>&nbsp; 7、单击“选择网络”按钮，打开“网络管理”，在程序自动连接到Internet时，使用”下选择“单位网络”（<STRONG>此处也可以选择“Internet网络”，要与第一步设置对应。</STRONG>）。如下图：</P>
<P align=center><A href="http://img.blog.163.com/photo/-eAmp5hAXQ6r9sjHt7UI2g==/1171498853070523915.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/-eAmp5hAXQ6r9sjHt7UI2g==/1171498853070523915.jpg"></A></P>
<P align=left>这样，WM6就可以通过计算机网卡连接到INTERNET了。使用IE打开QQ手机网站如下图：</P>
<P align=center><A href="http://img.blog.163.com/photo/GKXoovWo8RjpF0uP6VXIIg==/606578574812243686.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/GKXoovWo8RjpF0uP6VXIIg==/606578574812243686.jpg"></A></P>
<P align=left>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;</P></div>]]></description>
	    <author><![CDATA[大河§晕王]]></author>
	    <comments>http://ewangsoft.blog.163.com/blog/static/772155822008630923354</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://ewangsoft.blog.163.com/blog/static/772155822008630923354</guid>
    <pubDate>Thu, 3 Jul 2008 13:01:12 +0800</pubDate>
    <dcterms:modified>2008-07-03T13:04:31+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[【原创】OCS2007的安装体验（Live Meeting部分）]]></title>	
    <link>http://ewangsoft.blog.163.com/blog/static/7721558220086231052293</link>
    <description><![CDATA[<div><P align=left>微软提供OCS2007的180天试用版本。详情请查看微软官方网站<A href="http://www.microsoft.com/china/office">www.microsoft.com/china/office</A>&nbsp;。</P>
<P><STRONG>一、简介：</STRONG></P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OCS2007，全称是Office Communications Server 2007，是微软“统一沟通”平台的重要产品之一。</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OCS2007提供了 Standard Edition 和 Enterprise Edition 两种版本：</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Standard Edition：适用于中小型组织。在不需要 Enterprise Edition 提供的性能、可伸缩性和高可用性的组织中，也建议使用 Standard Edition。</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Enterprise Edition：适用于大型组织常用的大型部署。在 Enterprise Edition 部署中，多个 Office Communications Server Enterprise Edition 服务器作为池部署在负载平衡器后面。池中的服务器共享存储用户数据的中央Microsoft SQL Server? 数据库。</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 当安装使用标准版时，OCS2007的以下组件将安装在单台计算机上：</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Microsoft SQL Server? 2005 Express Edition Service Pack 2 (SP2) </P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; 前端服务器：用于存放即时消息、状态、电话会议服务器以及所有必需的用户服务。</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; Web 会议服务器：用于启用内部会议。</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; A/V（音频/视频）会议服务器：允许用户共享音频和视频流。</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;Web 组件服务器：允许用户执行以下操作：</P>
<P style="TEXT-INDENT: 2em">&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 从 Web 会议访问会议演示文稿和其他内容</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 下载通讯簿服务器文件，用于为 Microsoft Office Communicator 客户端提供全局地址列表信息 </P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 扩展通讯组以便与各个成员进行通信 </P>
<P style="TEXT-INDENT: 2em"><STRONG>二、安装：</STRONG> </P>
<P style="TEXT-INDENT: 2em">安装OCS2007前，请详细查看《Microsoft Office Communications Server 2007 Standard Edition 部署指南》，以便了解安装所需的“基础结构要求”和“先决条件”。 </P>
<P style="TEXT-INDENT: 2em">OCS2007的安装程序非常友好，OCS2007安装、运行需要的相关条件，在安装时都会友好的提示；每个组件的按照都有详细的安装向导和帮助，并能查看组件安装是否成功。条理很清晰。 </P>
<P style="TEXT-INDENT: 2em">1、运行SETUP.EXE，此时如果计算机上没有安装"Visual C++ 2005 Redistributable"，安装程序将提示你安装它，安装包提供其安装程序。 </P>
<P style="TEXT-INDENT: 2em">2、如果系统中没有安装Microsoft Dotnet Framework 2.0的话，提示安装它。 </P>
<P style="TEXT-INDENT: 2em">3、先决条件具备之后，将打开OCS2007的部署向导，如下图示：</P>
<P style="TEXT-INDENT: 2em" align=center><A href="http://img.blog.163.com/photo/EaZ1opOFGGOio5JcouC1Ew==/1991716935205142374.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/EaZ1opOFGGOio5JcouC1Ew==/1991716935205142374.jpg"></A></P>
<P style="TEXT-INDENT: 2em" align=center><A href="http://img.blog.163.com/photo/-QaCZGZcg2ELZXvUywo4Rw==/1991716935205142375.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/-QaCZGZcg2ELZXvUywo4Rw==/1991716935205142375.jpg"></A></P>
<P style="TEXT-INDENT: 2em" align=center>提供了非常详细的安装步骤</P>
<P style="TEXT-INDENT: 2em" align=left>&nbsp;&nbsp;&nbsp; 4、OCS2007的部署向导非常详细，每一步应该安装什么，需要什么先决条件，部署后怎样验证安装是否成功，都提供了详细的说明。</P>
<P style="TEXT-INDENT: 2em" align=left>&nbsp;&nbsp;&nbsp; 5、安装过程中的细节，请查看《Microsoft Office Communications Server 2007 Standard Edition 部署指南》。</P>
<P><STRONG>三、配置启用音频/视频会议和 Web 会议，添加会议用户</STRONG></P>
<P>1、在OCS2007管理器中，右键单击“林”节点，单击“属性”，然后单击“全局属性”。打开如下图示的设置窗体：</P>
<P align=center><A href="http://img.blog.163.com/photo/SMLbwO_1tmgoVJPb4n-KMA==/851180329573684185.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/SMLbwO_1tmgoVJPb4n-KMA==/851180329573684185.jpg"></A></P>
<P align=left>2、如果希望用户能匿名参与会议，请在“匿名参与者”中选择“允许用户邀请匿名参与者”。</P>
<P align=left>3、选中“全局策略”，然后单击“编辑”，弹出如下示的设置窗体：</P>
<P align=center><A href="http://img.blog.163.com/photo/A_qXLuy58zO4ujWR2EdmWQ==/5403756602892097494.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/A_qXLuy58zO4ujWR2EdmWQ==/5403756602892097494.jpg"></A></P>
<P align=left>&nbsp;&nbsp;&nbsp;&nbsp; 1）为了启用视频会议，请勾选中“启用Web会议”、“启用IP音频”、“启用IP视频”选项。</P>
<P align=left>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2）如果想让主持者能共享他的桌面，需勾选“启用程序和桌面共享”选项。</P>
<P align=left>&nbsp;&nbsp;&nbsp;&nbsp; 3）如果允许录制会议，请勾选“允许演示者录制会议”选项。</P>
<P align=left>4、为“演讲者”创建和启用账户</P>
<P align=left>&nbsp;&nbsp;&nbsp;&nbsp; 1）在“域用户和计算机”中创建一个账户。</P>
<P align=left>&nbsp;&nbsp;&nbsp;&nbsp; 2）用RTCUniversalUserAdmins 组成员身份登录到 Office Communications Server。</P>
<P align=left>&nbsp;&nbsp;&nbsp;&nbsp; 3）在OCS上输入dsa.msc打开域用户和计算机，在需要使用会议的用户名上单击右键，弹出的菜单中选择“为Office Communications Server启用用户...”，如下图示：</P>
<P align=center><A href="http://img.blog.163.com/photo/nuuaG0Ecyvkhgvowck_iAg==/2608710084155098925.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/nuuaG0Ecyvkhgvowck_iAg==/2608710084155098925.jpg"></A></P>
<P align=left>&nbsp;&nbsp;&nbsp;&nbsp; 4）打开启用用户向导，在生成用户登录名的窗体中，选择用户SIP URI的格式，如下图示：</P>
<P align=center><A href="http://img.blog.163.com/photo/23PK_YgyCctkRz4zDjtFRQ==/5108770827299002891.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/23PK_YgyCctkRz4zDjtFRQ==/5108770827299002891.jpg"></A></P>
<P align=left>&nbsp;&nbsp;&nbsp;&nbsp; 5）单击“下一步”，将显示启用用户是否成功。</P>
<P align=center><A href="http://img.blog.163.com/photo/I3EIHMqCBG0P0WPQ8DfSNg==/927178573285561998.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/I3EIHMqCBG0P0WPQ8DfSNg==/927178573285561998.jpg"></A></P>
<P align=left>&nbsp;&nbsp;&nbsp;&nbsp; 6）这样就启用了用户，可以在OCS的管理器－用户，看到列表。如下图：</P>
<P align=center><A href="http://img.blog.163.com/photo/pMrk6uGjIY3w65BGO8X9fA==/3421891291872224193.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/pMrk6uGjIY3w65BGO8X9fA==/3421891291872224193.jpg"></A></P>
<P align=center>&nbsp;</P>
<P align=left>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 7）配置用户：在Llive Meeting中不需要。OCS客户端需要。</P>
<P align=left><STRONG>四、创建视频会议</STRONG></P>
<P align=left>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1）安装Microsoft Office Live Meeting 2007客户端</P>
<P align=left>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2）打开“用户账户”设置窗体，单击“高级”按钮，在弹出的窗体中设置使用的“服务器”、“用户名”、“密码”。如下图示：</P>
<P align=center><A href="http://img.blog.163.com/photo/NvpsIdjrmOvOq0hYf-H4Sg==/595882525696883694.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/NvpsIdjrmOvOq0hYf-H4Sg==/595882525696883694.jpg"></A></P>
<P align=left>&nbsp;&nbsp;&nbsp;&nbsp; 然后单击“确定”，返回。</P>
<P align=left>&nbsp;&nbsp;&nbsp;&nbsp;在如下图示窗口中单击“测试连接”。提示成功后，单击确定返回主窗体。如下图示：</P>
<P align=center><A href="http://img.blog.163.com/photo/NokZt1m6TkAgXQpQJrAgMg==/5122563101158108606.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/NokZt1m6TkAgXQpQJrAgMg==/5122563101158108606.jpg"></A></P>
<P align=left>&nbsp;&nbsp;&nbsp; 3）单击“立即开会”按钮，创建一个会议。</P>
<P align=left>&nbsp;&nbsp;&nbsp; 4）单击“会议”菜单，将看到本次会议的“会议代码”及“进入位置”。如下图：</P>
<P align=center><A href="http://img.blog.163.com/photo/1HY7t1irMpIht-5IZv-8hw==/2538059865000471011.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/1HY7t1irMpIht-5IZv-8hw==/2538059865000471011.jpg"></A></P>
<P align=center><A href="http://img.blog.163.com/photo/_VjSuyIkVaJNi3nXiJpUJg==/4533154499925418480.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/_VjSuyIkVaJNi3nXiJpUJg==/4533154499925418480.jpg"></A></P>
<P align=left>&nbsp;&nbsp;&nbsp; 5）将进入会议代码及位置通告给会议参加者，以便其在Live Meeting 2007登录窗体中设置，如下图示：</P>
<P align=center><A href="http://img.blog.163.com/photo/E9EhT1d2a9XXSrWJjp8zbg==/5705497777925267380.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/E9EhT1d2a9XXSrWJjp8zbg==/5705497777925267380.jpg"></A></P>
<P align=left>至此，OCS2007的视频会议搭建完成。</P>
<P align=left>&nbsp;</P></div>]]></description>
	    <author><![CDATA[大河§晕王]]></author>
	    <comments>http://ewangsoft.blog.163.com/blog/static/7721558220086231052293</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://ewangsoft.blog.163.com/blog/static/7721558220086231052293</guid>
    <pubDate>Wed, 2 Jul 2008 16:45:56 +0800</pubDate>
    <dcterms:modified>2008-07-04T10:12:00+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[【转载】河南籍抗震救灾英雄-武文斌]]></title>	
    <link>http://ewangsoft.blog.163.com/blog/static/772155822008530908535</link>
    <description><![CDATA[<div><P>全文转自【人民网】。</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; “娃儿，你不该走呀！你是为我们活活累死的呀！”</P>
<P>　　“叔叔，我们长大了也要像你那样去报效祖国……”</P>
<P>　　一声声呼唤，聚焦着同一个名字；一排排花圈，悼念着同一个士兵。</P>
<P>　　岷江上游的都江堰，记载了李冰父子不畏艰险与洪水抗争的奋斗历史；今天，它铭记了一位战士真情爱民累倒在抗灾一线的感人事迹。</P>
<P>　　6月18日凌晨4时45分，因过度劳累引发肺血管破裂出血，济南军区驻豫某红军师炮兵指挥连战士武文斌永远地走了，年仅26岁。</P>
<P>　　6月21日，某集团军党委追认他为中共正式党员，追记一等功，批准为革命烈士。</P>
<P>　　“舍不了自己的命，就救不了群众的命”</P>
<P>　　铁军一兵――光荣传统熏陶，他好学上进；面对受困群众，他奋不顾身</P>
<P>　　2002年，高中毕业的武文斌，入伍来到某红军师“飞夺泸定桥”红二连。</P>
<P>　　这是一支有着优良传统的军队。该师历史悠久、战功卓越，素有“铁军”之称。</P>
<P>　　从此，红军的传统熏陶着这名年轻的战士，二十二勇士“要桥不要命”的连魂深深融入到他的血液。</P>
<P>　　2005年8月，武文斌以全团第一的成绩考入解放军信息工程大学测绘学院，2007年7月分配到铁军师炮指连实习。地震发生时，武文斌的实习期快满了。考虑到这点，部队安排武文斌留守。“指导员，你是不是不把我当连队的兵看？对我来说，能给党分点忧，给灾区人民做点贡献，就是最好的毕业证。”就这样，武文斌争取到了参加抗震救灾的机会。</P>
<P>　　5月12日，部队到达灾区后，武文斌和战友们始终奋战在第一线。转移群众，他肩扛背驮走在前面，和战友们翻越一座座大山，把食品和饮用水及时送到受灾群众手中；搜救失事直升机，他不畏山高路险，一直在最前面探路，3次滚下山，幸运地被树木拦住；灾后安置重建，他一个人干几个人的活，清淤泥、搬石头、疏通引水渠……</P>
<P>　　“他最自豪的是他以前的老连队。”新兵徐鸿光说，“当我们都觉得扛不住的时候，他就用红军精神鼓励我们。”</P>
<P>　　5月17日，武文斌所在师接到命令，迅速组织兵力前往汶川县三江乡展开搜救和转移重伤员。具有军事地形学专长的武文斌和代理排长李孝会，被抽调到先遣队担负探路任务。</P>
<P>　　道路被毁，山体滑坡，判定方位、选择开进路线异常困难。但武文斌还是凭着过硬的专业技能，引导救援官兵以最快的速度，翻越3座2500多米的高山，第一时间把部队安全带到了指定地域。</P>
<P>　　“让我去！”浸透衣背的汗水还没晾干，得知山上的一位老人房屋倒塌、生死不明，武文斌立即找到通信营教导员王斌请战。</P>
<P>　　山路崎岖，余震不断，飞石滚落。武文斌全然不顾，带着几名战士攀山而行，一个多小时后赶到救援现场，将全身7处受伤的老人马学友成功救出。</P>
<P>　　那是一次多么艰难的前行啊！战士们如伏在旱地上的青蛙，四肢交替爬行。衣服破了，手划破了，双肘双膝磨破了。虽然他们小心翼翼，但还是几次险些跌下山崖。面对战友的担心和责怪，武文斌却十分坦然：“舍不了自己的命，就救不了群众的命。”</P>
<P>　　“老乡一天不住进板房，我就一天不休息”</P>
<P>　　拼命三郎――平时最听话的兵，抗震救灾中成了“最不听话”的人　　</P>
<P>　　武文斌出生在河南农村，对农民怀有朴素的感情。</P>
<P>　　在武文斌眼里，群众的事就是自己的事。进入灾区以来，武文斌从没睡过午觉，一有空儿就跑到附近的老百姓那里，清废墟、割麦子、搭帐篷。</P>
<P>　　6月9日，连队奉命帮灾区群众安装板床，武文斌抢着承担了最重的拧螺丝任务。时间不长，就磨破了手套。他就干脆徒手作业，很快手上就打起了血泡。</P>
<P>　　“戴手套拧螺丝不方便，速度慢。”战友见状，给武文斌送来手套，劝他休息一会儿。武文斌却说：“不碍事，我们早一分钟把床装好，灾区群众就少受一分钟的罪。”</P>
<P>　　一天下来，武文斌拧了1400多个螺丝，螺丝刀都被拧变了形。</P>
<P>　　看着他打满血泡的双手，有的战友心疼得掉泪，可武文斌却自豪地说：“我们铁军都该有双铁手。”</P>
<P>　　据炮兵指挥连提供的资料，武文斌在抗震救灾一线的32天时间里，连队共给他安排了3天轮休，分别是5月22日、6月2日、6月16日。可他一刻也没“消停”。</P>
<P>　　“他是我们连平时最听话，但在抗震救灾中‘最不听话’的兵。”连长李俊峰说，到灾区以后，武文斌总是找活干、抢活干，干完分内的事，就到处蹭活，别人拦也拦不住，被战友称为“拼命三郎”。</P>
<P>　　历史记下了他和连队战友32天创造的业绩：走遍都江堰市玉堂镇的12个村7816户人家，转移群众3638人，帮助群众搭建1000余顶（间）帐篷和简易房，组装木床1818张，卸载救灾物资54车。</P>
<P>　　历史记下了这位钢铁战士最后一日的战斗瞬间：6月17日早上8点，连队从玉堂镇向胥家镇转移战场，临行前，武文斌抽空给父亲武中林打了参加抗震救灾以来的第三个电话。</P>
<P>　　电话中，父亲听说儿子又有了新的任务，反复叮嘱他“既要完成好任务，又要注意休息，我们正在家给你忙乎结婚的事。”</P>
<P>　　武文斌对父亲说：“现在咋能休息，老百姓都在焦急地等着。只要还有一个老乡没住进板房，我就一天不休息。”</P>
<P>　　这一天，武文斌好像知道自己的时间不多了，整个人像开机的马达，转个不停！</P>
<P>　　活动板材很沉，四周是锋利的金属皮，稍不留意就会割破手。第一车快卸完的时候，夜色渐暗，连长李俊峰担心天黑后官兵割伤手，决定组织党员骨干抢卸。</P>
<P>　　武文斌不是党员，他找到连长：“让我上吧，我保证和党员一样快。”</P>
<P>　　对于武文斌，李俊峰没有办法拒绝，这个虽然不是党员的战士，只要组织党员突击队，他都一次不落。况且，连里开展火线入党时，他还把机会一次次让给了别人；部队组织党员交“特殊党费”时，他把身上仅有的２００块钱交了上去。</P>
<P>　　21时25分，武文斌和战友们冒雨将8车50吨活动板房建材全部卸载到位。他累得瘫坐在地。</P>
<P>　　武文斌实在太累了！尽管如此，他仍念念不忘灾区群众。熄灯前洗漱，他对一起打水的班长姜春雷说：“洗洗袜子泡泡脚，明天又可以好好干。”</P>
<P>　　没想到，这却成了武文斌留在人间的最后一句话。</P>
<P>　　“我们要替武班长了结入党心愿，他是一名真正的共产党员！”5月18日，武文斌牺牲的消息传到指挥连，全连官兵签名要求连队党支部发展武文斌为中共党员。集团军党委及时作出决定：追认武文斌为中国共产党党员。</P>
<P>　　“我宣誓，我志愿加入中国共产党……宣誓人：武文斌！”6月20日20时，在武文斌的灵堂内，战友抱着他的遗像，全连官兵高举右手，面向鲜红的党旗，庄严地代表武文斌齐声宣读入党誓词。</P>
<P>　　“老婆，等我抗震救灾凯旋时,一定把你风风光光娶进门”</P>
<P>　　真情男儿――认准的事情，他一定要做到；商定的婚礼，竟成了永远的梦</P>
<P>　　听说武文斌要上灾区前线，2月份刚和他领取了结婚证的妻子杨卫华有些放不下心。武文斌在电话里对她说：“现在灾区人民有难，铁血男儿岂能无动于衷，如果错过了这次抗震救灾机会，我会后悔一辈子。战士就应该上战场！”</P>
<P>　　杨卫华高挑的个子，俊秀的面容，和英俊的武文斌站在一起，谁都说是天生的一对。他俩恋爱5年，感情深厚，一直到今年2月，武文斌才休了一个短假，领了结婚证，两人商定在“五一”或6月武文斌毕业时举行婚礼。因为工作，一推再推。“老婆，辛苦了！等我抗震救灾凯旋时,一定把你风风光光娶进门。”丈夫透着千般柔情。</P>
<P>　　这些日子，武文斌几乎每天都要和杨卫华通个短信，报个平安。参加抗震救灾以来，两人每次联系，武文斌要说许多安慰妻子的话：“我不累。”“我在这挺好。”武文斌牺牲的噩耗传来，杨卫华悲痛欲绝，前往都江堰的途中，怀里揣着丈夫的照片，泪流满面地念叨着：“文斌呀，我一直等着你回来完婚，没想到这婚礼竟成了永远的梦。”</P>
<P>　　武文斌牺牲后，战友们在清理他的遗物时，发现他口袋里仅有5元2角钱。</P>
<P>　　“这孩子太节俭了，心里总想着别人。”父亲武中林热泪盈眶，伤心不已。</P>
<P>　　武中林说，儿子当兵以来，无论是当义务兵还是后来当士官，他隔三岔五向家里寄些钱。回家时，绝少不了给村里大爷大妈孝敬。</P>
<P>　　武文斌是家里的顶梁柱，弟弟是个智障残疾人，妈妈做过胆结石穿孔手术，干不了什么重活。为了生计，已经60岁的武中林来到河南邓州市第二人民医院做临时工，每月挣300元钱。儿子当上士官后对父亲说：“我今后有工资了，你以后不用再操心，安心注意身体，我养活你。”</P>
<P>　　武文斌从小就想当兵。参军来到部队后，武文斌省吃俭用，一双袜子补了又补，一个牙刷能用半年，一个笔记本用完正面用反面，从不随便丢弃，从不乱花一分钱。</P>
<P>　　“他热爱生活，懂得体贴人，哪怕遇见小孩子过马路，他总是习惯地伸开手护着，生怕他们摔一跤。这次，他是为灾区人民献身的，我为有这样的丈夫感到骄傲！”杨卫华抽泣着，努力地不哭出声来，“我要留下来，当个志愿者。”</P>
<P>　　武文斌走了，他同时带走了妻子6月17日22时00分53秒发来的短信――这是一段绵绵的情话：“老公，你受苦了，等你回去，我去看你，请你吃好吃的，吃你爱吃的，给你按摩，让你舒舒服服！你困吗，要是困了，你就先睡吧。”</P>
<P>　　武文斌睡着了，头冲着青城山。他的心与灾区人民紧紧相连，他的爱洒在了身下这片土地！&nbsp;</P></div>]]></description>
	    <author><![CDATA[大河§晕王]]></author>
	    <comments>http://ewangsoft.blog.163.com/blog/static/772155822008530908535</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://ewangsoft.blog.163.com/blog/static/772155822008530908535</guid>
    <pubDate>Mon, 30 Jun 2008 09:00:08 +0800</pubDate>
    <dcterms:modified>2008-07-03T16:29:15+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[【原创】微软公共计算机保护利器－SteadyState]]></title>	
    <link>http://ewangsoft.blog.163.com/blog/static/772155822008528927859</link>
    <description><![CDATA[<div><P>本文是介绍使用SteadyState的体会，软件的详细介绍请查阅微软SteadyState网站：<A href="http://www.microsoft.com/china/windows/products/winfamily/sharedaccess/default.mspx" target=_blank>http://www.microsoft.com/china/windows/products/winfamily/sharedaccess/default.mspx</A>。</P>
<P>使用SteadyState以后，觉得它从以下三方面对公共计算机做了安全设计（<STRONG>个人认为是亮点的就以红色显示</STRONG>）：</P>
<P><STRONG>1、配置计算机限制：</STRONG></P>
<P>&nbsp;&nbsp;&nbsp;&nbsp; <STRONG>1）隐私保护：</STRONG></P>
<P><FONT color=#ff0000>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a) 不在 "登录到Windows” 对话框中显示用户名（非域环境下）</FONT>：</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;选择此选项可帮助确保当某个用户注销时，"登录到 Windows” 对话框中的“用户名”框显示为空白。</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b) 防止无法在计算机上找到的锁定或漫游用户配置文件登录：在 Windows SteadyState 的“设置计算机限制”中选中此选项，将防止在计算机上没有配置文件的用户进行登录。</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; c) 对于以前登录此计算机的用户不缓存锁定或漫游用户配置文件的副本：选择此选项有助于提高隐私性和节省磁盘空间。</P>
<P><STRONG>&nbsp;&nbsp;&nbsp;&nbsp;2）安全设置：</STRONG></P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a) 从“欢迎”屏幕删除管理员用户名（要求连按 Ctrl-Alt-Del 两次以登录到未列出的帐户）：Windows“欢迎”屏幕列出了驻留在计算机上的所有用户帐户名。选择此选项可从该屏幕的列表中删除管理员用户名。若要以管理员身份登录，必须连按 Ctrl-Alt-Del 两次以显示传统的登录屏幕。</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b) 从“登录到 Windows”对话框和“欢迎”屏幕删除“关机”和“关闭”选项：选择此选项可防止用户从“登录到 Windows”对话框和“欢迎”屏幕关闭计算机。</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; c) 不允许 Windows 使用 LAN Manager 哈希值计算和存储密码：选择此选项可帮助通过禁用每个密码的 LanMan 哈希 (LMHash) 形式提升安全密码存储。LMHash 是一种加密机制，用于支持与早期 Windows 操作系统的向后兼容性。</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; d) 不存储用于登录 Windows Live ID 或域的用户名和密码（要求重新启动计算机）：选择此选项可防止 Windows 保存用户的 Windows Live ID 帐户和域凭据，并强制用户在每次开始会话时输入此信息。这样可以提高隐私性，防止用户使用先前使用此计算机的用户的凭据登录。</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT color=#ff0000>e) 防止用户在驱动器 C:\ 中创建文件夹和文件：选择此选项可以更改系统驱动器根目录中的访问控制列表 (ACL)，以防止用户创建文件和文件夹。</FONT></P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; d) 防止用户从 Internet Explorer 打开 Microsoft Office 文档：选择此选项有助于确保 Microsoft Office 应用程序承载自己的文档，以便可选的 Microsoft Office 软件限制正常工作。</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e) <FONT color=#ff0000>防止对 USB 存储设备进行写访问（要求重新启动计算机）：选择此选项可防止用户将文件或数据保存到 USB 存储设备。</FONT></P>
<P>&nbsp; <STRONG>3）用户模式下，对WINDOWS的限制：</STRONG></P>
<P><STRONG>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a) </STRONG><FONT color=#ff0000>会话计时：如果选择如图示的两项，将有效的防止客户端超时使用计算机。</FONT></P>
<P align=center><A href="http://img.blog.163.com/photo/SXCHNrOsHjr8Q3KjWLKePw==/4548354148668207222.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/SXCHNrOsHjr8Q3KjWLKePw==/4548354148668207222.jpg"></A></P>
<P align=left><STRONG>&nbsp;&nbsp;&nbsp;&nbsp; b) WINDOWS限制：</STRONG>可以对开始菜单、系统等做详细限制。本人以为有如下亮点：</P>
<P align=left>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT color=#ff0000>A、防止更改Explorer高级注册表设置。</FONT></P>
<P align=left><FONT color=#ff0000>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; B、防止访问命令提示符。</FONT></P>
<P align=left><FONT color=#ff0000>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; C、防止访问注册表编辑器。</FONT></P>
<P align=left><FONT color=#ff0000>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; D、防止访问任务管理器。</FONT></P>
<P align=left><FONT color=#ff0000>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; E、防止访问管理控制台实用程序。</FONT></P>
<P align=left><FONT color=#ff0000>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; F、只允许运行Windows和Program Files&nbsp; 文件夹中的程序。</FONT></P>
<P align=left><FONT color=#ff0000>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; G、禁用系统工具和其它管理工具。</FONT></P>
<P align=left><FONT color=#ff0000>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; H、隐藏指定驱动器。</FONT></P>
<P align=left><FONT color=black><STRONG>二、Windows自动更新：此处也为一大亮点。</STRONG></FONT></P>
<P align=left><STRONG>&nbsp;&nbsp;&nbsp; </STRONG><FONT color=#ff0000>SteadyState可以在磁盘保护开启的情况下对系统进行安全更新。安全更新后，自动的将更新后的系统数据保存到“永久磁盘”数据中。比一般的第三方硬盘保护卡有优势。</FONT></P>
<P align=left><STRONG><FONT color=black>三、磁盘保护：</FONT></STRONG></P>
<P align=left><FONT color=black><STRONG>&nbsp;&nbsp; </STRONG>只能保护系统盘数据，非系统分区不能保护。但可以使用NTFS安全特性限制在非系统盘的数据存储。或者使用上述的&nbsp;</FONT><FONT color=#ff0000> D、只允许运行Windows和Program Files&nbsp; 文件夹中的程序。来限制运行非系统盘的程序。</FONT></P>
<P align=left><FONT color=black><STRONG>四、补充说明</STRONG></FONT></P>
<P align=left><STRONG>&nbsp;&nbsp; </STRONG>上述对WINDOWS系统的限制，<FONT color=#ff0000>大部分是通过修过注册表、软件限制策略完成的</FONT>。</P>
<P align=left>&nbsp;&nbsp; <FONT color=#ff0000><FONT color=black>SteadyState 提高了组策略模板，存放位置在软件安装目录的ADM文件夹中，文件名为 SCTSettings.adm。</FONT>我们可以将SteadyState的组策略模板导入到域中，通过域来统一部署限制。</FONT></P>
<P align=left><FONT color=#ff0000>&nbsp;&nbsp; 在域中，我们还可以对用户的文档目录指定重定向，可以重定向到网络共享中。还可以做更详细的软件限制策略。如下图：</FONT></P>
<P align=center><FONT color=#ff0000><A href="http://img.blog.163.com/photo/FijDppaVGAB4K-0mgwNUuA==/5142829299480962645.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/FijDppaVGAB4K-0mgwNUuA==/5142829299480962645.jpg"></A><BR></FONT><FONT color=#000000>指定用户“我的文档”位置</FONT></P>
<P align=center>&nbsp;</P>
<P align=center><FONT color=#ff0000></FONT>&nbsp;<A href="http://img.blog.163.com/photo/mWRu5q4OhN1i3lvg4awtow==/3456512714007309154.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/mWRu5q4OhN1i3lvg4awtow==/3456512714007309154.jpg"></A><BR>添加一个软件限制策略：限制运行D盘的程序</P></div>]]></description>
	    <author><![CDATA[大河§晕王]]></author>
	    <comments>http://ewangsoft.blog.163.com/blog/static/772155822008528927859</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://ewangsoft.blog.163.com/blog/static/772155822008528927859</guid>
    <pubDate>Sat, 28 Jun 2008 22:12:20 +0800</pubDate>
    <dcterms:modified>2008-06-29T08:22:08+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[【原创】ARP代理]]></title>	
    <link>http://ewangsoft.blog.163.com/blog/static/77215582200852843537398</link>
    <description><![CDATA[<div><P>当ARP请求是从一个网络上的主机发往另外一个网络上的主机时，连接这两个网络的设备应答该请求时，我们就认为此设备具有ARP代理功能。</P>
<P><STRONG>一、应用场景：</STRONG></P>
<P><STRONG>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</STRONG>如下图：</P>
<P align=center><A href="http://img.blog.163.com/photo/7TUKDFHTbdk29zcLkN-19Q==/1425952232016968123.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/7TUKDFHTbdk29zcLkN-19Q==/1425952232016968123.jpg"></A></P>
<P align=left><STRONG>二、应用分析</STRONG></P>
<P align=left><STRONG>1、</STRONG>由于R1的F0/0和R2的F0/1用同一个网段IP，于是，在R1上PING 192.168.0.102时，<FONT color=#ff0000>R1上的协议程序会认为目标是和自己在同一个网段，于是R1发出ARP请求广播</FONT>。如果R0没有启用ARP代理，R0路由器默认要隔离此广播。结果将出现R1访问不到R2的情况。</P>
<P align=left>抓包如下图示：</P>
<P align=center><A href="http://img.blog.163.com/photo/IaRZXPHU4RzwsGg5CPaSDg==/1153765929537573083.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/IaRZXPHU4RzwsGg5CPaSDg==/1153765929537573083.jpg"></A><BR>R1 PING 192.168.0.102时，将发出ARP广播请求</P>
<P align=center>&nbsp;</P>
<P align=left><STRONG>2、</STRONG>当R0的F0/0接口启用ARP代理时，R1发出的请求“IP地址为192.168.0.102的主机的MAC地址是多少”的ARP广播会被R0的F0/0应答，应答的MAC地址为R0的F0/0接口的MAC地址。</P>
<P align=left>抓包如下图示：</P>
<P align=center><A href="http://img.blog.163.com/photo/T03aRPq_0N03DkBExfZF3g==/3950219823157834800.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/T03aRPq_0N03DkBExfZF3g==/3950219823157834800.jpg"></A><BR>&nbsp;R0的F0/0接口将自己的MAC应答给R1</P>
<P align=left><STRONG>3、</STRONG>R1将PING 请求数据传递给R0的F0/0。如下图：</P>
<P align=center><A href="http://img.blog.163.com/photo/t0hpWcaX77fouK0FZye6LQ==/2022960657620193817.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/t0hpWcaX77fouK0FZye6LQ==/2022960657620193817.jpg"></A></P>
<P align=center>&nbsp;</P>
<P align=left><STRONG>4、</STRONG>R0看到此数据的目标地址为自己另外一个网段的地址，于是，R0将数据通过F0/1传递出去。</P><A href="http://img.blog.163.com/photo/5WTjFwi5b4FLcQNHndQAjA==/322288848334450601.jpg" target=_blank></A>
<P align=left><STRONG>5、</STRONG>数据传递到R2后，R2要应答此数据，于是，R2向192.168.0.2发出应答数据。同样，由于R2的协议程序认为此地址和自己在同一个网段，于是R2发出ARP请求，请求IP为192.168.0.2的主机的MAC地址是多少。</P>
<P align=left><STRONG>6、</STRONG>此时，如果R0的F0/1接口没有启用ARP代理的话，R2发出的ARP广播将被R0丢弃。这样R2就不能给R1返回应答数据。因此，<FONT color=#ff0000>要想让R0启用ARP代理，则必须在要参与通信的所有接口启用。</FONT></P>
<P align=left><FONT color=black><STRONG>7、</STRONG>R0的F0/1启用ARP代理，将应答R2对192.168.0.2的MAC地址的请求，R0的F0/1接收R2传递来的数据，进而经过F0/0传递给R1。PING 通信完成。</FONT></P>
<P align=center>&nbsp;</P>
<P align=left>&nbsp;</P>
<P align=left>&nbsp;</P></div>]]></description>
	    <author><![CDATA[大河§晕王]]></author>
	    <comments>http://ewangsoft.blog.163.com/blog/static/77215582200852843537398</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://ewangsoft.blog.163.com/blog/static/77215582200852843537398</guid>
    <pubDate>Sat, 28 Jun 2008 17:29:44 +0800</pubDate>
    <dcterms:modified>2008-06-28T22:13:36+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[奥运火炬郑州7月29日传递路线]]></title>	
    <link>http://ewangsoft.blog.163.com/blog/static/77215582200852711531304</link>
    <description><![CDATA[<div><P style="TEXT-INDENT: 2em">奥运火炬7月29日在郑州传递。</P>
<P style="TEXT-INDENT: 2em">７月２８日至３１日，奥运圣火将依次在河南商丘、开封、郑州、洛阳、安阳５个城市传递。</P>
<P style="TEXT-INDENT: 2em">具体传递时间为：</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; ２８日上午在商丘市传递，下午在开封市传递</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; ２９日在郑州市传递，</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; ３０日在洛阳市传递，</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; ３１日在安阳市传递至河北省。 
</P><P style="TEXT-INDENT: 2em">根据北京奥组委的统一安排，火炬传递将于2008年7月29号经过郑州。
</P><P style="TEXT-INDENT: 2em">为充分展示郑州特有的历史文化，自然风光和建设成就，有利于沿途群众观看火炬传递，郑州市初步拟订了火炬传递路线：火炬将从新郑黄帝故里广场出发传递6.1公里，之后转程至登封少林寺传递12.1公里。
</P><P style="TEXT-INDENT: 2em">郑州市区内火炬传递将在当天下午2点30分从绿城广场出发，途径二七广场，文化路，河南博物院，花园路，中州大道，郑东新区，最后在郑州国际会展中心结束。
</P><P style="TEXT-INDENT: 2em">传递路线全长38.2公里，用时约8.5小时，共有208名火炬手参与火炬传递。</P></div>]]></description>
	    <author><![CDATA[大河§晕王]]></author>
	    <comments>http://ewangsoft.blog.163.com/blog/static/77215582200852711531304</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://ewangsoft.blog.163.com/blog/static/77215582200852711531304</guid>
    <pubDate>Fri, 27 Jun 2008 11:53:01 +0800</pubDate>
    <dcterms:modified>2008-06-27T11:53:01+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[【原创】应用程序虚拟化（3）：SoftGrid Client的使用]]></title>	
    <link>http://ewangsoft.blog.163.com/blog/static/7721558220085242628173</link>
    <description><![CDATA[<div><P>本文只介绍SoftGrid Client的使用，详细信息请查看软件主页：<A href="http://www.microsoft.com/china/systemcenter/softgrid/default.mspx">http://www.microsoft.com/china/systemcenter/softgrid/default.mspx</A>。</P>
<P>1、在“管理工具”中找到"SoftGrid Client Management”，打开管理界面。</P>
<P>2、如下图示右击鼠标，弹出菜单，选择"New Server..."。</P>
<P align=center><A href="http://img.blog.163.com/photo/vqGR-bUnwn-0wys3oa5AXw==/2542844939604545450.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/vqGR-bUnwn-0wys3oa5AXw==/2542844939604545450.jpg"></A></P>
<P align=left>3、在如下窗口中输入SoftGrid Server的计算机名或IP地址。</P>
<P align=center><A href="http://img.blog.163.com/photo/VKkg6CoD2uGSclH_1mcJyw==/3395995594014834540.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/VKkg6CoD2uGSclH_1mcJyw==/3395995594014834540.jpg"></A></P>
<P align=left>SoftGrid Client配置完成。</P>
<P align=left>二、客户端获取软件，操作如下图：</P>
<P align=center><A href="http://img.blog.163.com/photo/y5tAYclmj4PFGTCCPNTrlQ==/3947123598414014362.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/y5tAYclmj4PFGTCCPNTrlQ==/3947123598414014362.jpg"></A></P>
<P align=left>更新完之后，在Applications中将出现软件列表，在用户的桌面等处将出现快捷方式。<BR></P></div>]]></description>
	    <author><![CDATA[大河§晕王]]></author>
	    <comments>http://ewangsoft.blog.163.com/blog/static/7721558220085242628173</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://ewangsoft.blog.163.com/blog/static/7721558220085242628173</guid>
    <pubDate>Tue, 24 Jun 2008 14:06:28 +0800</pubDate>
    <dcterms:modified>2008-06-24T14:06:28+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[【原创】应用程序虚拟化（2）：SoftGrid Sequncer的安装使用]]></title>	
    <link>http://ewangsoft.blog.163.com/blog/static/77215582200852405459603</link>
    <description><![CDATA[<div><P>本文只介绍SoftGrid Sequncer的安装使用，详细信息请查看软件主页：<A href="http://www.microsoft.com/china/systemcenter/softgrid/default.mspx" target=_blank><FONT color=#4590ea>http://www.microsoft.com/china/systemcenter/softgrid/default.mspx</FONT></A></P>
<P><FONT size=2>SoftGrid Sequencer用来制作应用程序序列化包，通过使用SoftGrid Sequencer制作序列化包，然后在SoftGrid Server中导入，以便SoftGrid Desktop来调用。</FONT></P>
<P><FONT size=2><STRONG>一、软硬件环境要求</STRONG></FONT></P>
<P><FONT size=2>SoftGrid Senquecer对软、硬件要求不高，Intel Pentium III 850 MHz及以上CPU、 256M及以上内存即可。操作系统可以是WINDOWS 2000、XP、2003及以上版本。要求有两个NTFS格式的分区，<FONT color=#ff0000>默认情况下，SoftGrid Desktop运行程序序列化程序使用Q分区，所以，在SoftGrid Sequencer中最好将要序列化的程序安装在Q分区，也就是说，</FONT><FONT color=#ff0000>SoftGrid Senquecer所在的计算机要有一个驱动器名称为"Q"的分区。</FONT></FONT></P>
<P><FONT color=black size=2><STRONG>二、制作序列化软件过程</STRONG></FONT></P>
<P><FONT size=2>1、程序打开后点击File－New Packge...，在弹出的对话框里点"YES”</FONT></P>
<P><FONT size=2>2、在接着出现的向导对话框中，点击"Next"</FONT></P>
<P><FONT size=2>3、在出现的安装包的描述信息对话框中输入相应的信息。<FONT color=#ff0000>需要注意的是最下面的Server URL的设置。</FONT></FONT></P>
<P><FONT size=2><FONT color=#ff0000>&nbsp;&nbsp;&nbsp;&nbsp; </FONT><FONT color=black>Hostname中可以使用默认值：%SFT_SOFTGRIDSERVER%，<FONT color=#ff0000>如果使用此默认值，那么需要在客户端注册此变量，变量的值为SoftGrid Server的IP地址或计算机名</FONT>。也可以在"Hosftname"中输入SoftGrid Server的IP地址，在"Path"中输入要发布到服务器的路径。<FONT color=#ff0000>此处的设置要与序列化包文件夹在SoftGrid Server中Content的位置对应</FONT>，如下图示的设置，那么，需要将序列化包文件夹命名为autoruns，并将此文件夹拷到Content文件夹内。</FONT></FONT></P>
<P align=center><A href="http://img.blog.163.com/photo/o0ZNC4vVDJTE_ZwM4IPtjQ==/5394186453683532295.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/o0ZNC4vVDJTE_ZwM4IPtjQ==/5394186453683532295.jpg"></A></P>
<P align=left>4、单击下一步，出现选择程序要运行的客户端操作系统环境。选择好之后，单击下一步，选择完成。</P>
<P align=center><A href="http://img.blog.163.com/photo/-PS7nyb1FKh4CSlKaOLXhg==/860187528828539094.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/-PS7nyb1FKh4CSlKaOLXhg==/860187528828539094.jpg"></A></P>
<P align=left>5、在弹出的安装向导窗口中单击“下一步”，如下图，选择默认。单击“下一步”。</P>
<P align=center><A href="http://img.blog.163.com/photo/n_951F_Cn9FkU4pPaupUPw==/4548354148668199429.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/n_951F_Cn9FkU4pPaupUPw==/4548354148668199429.jpg"></A></P>
<P align=left>6、在弹出的窗口中单击“Begin Monitoring”，然后选择要安装的软件，开始安装软件，需要注意的是，<FONT color=#ff0000>安装软件时，要选择将软件安装到"Q”分区中</FONT>。此时SoftGrid Senquencer将开始监视安装。</P>
<P align=center><A href="http://img.blog.163.com/photo/HI-iOKUvapazxnKPijwgag==/5140014549713857152.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/HI-iOKUvapazxnKPijwgag==/5140014549713857152.jpg"></A></P>
<P align=left>7、安装完软件，单击"Stop Monitoring"，将弹出如下窗口，让确认软件安装的位置。此处应该选择Q:\autoruns。</P>
<P align=center><A href="http://img.blog.163.com/photo/og_42l6knH4GWZoNUP35hA==/3995255819431496691.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/og_42l6knH4GWZoNUP35hA==/3995255819431496691.jpg"></A></P>
<P><FONT size=2>8、单击“下一步”，在下面的窗口中选择“DO NOTHING”。单击“完成”。</FONT></P>
<P align=center><A href="http://img.blog.163.com/photo/McPyfpq2te61BKvvCM-PcQ==/5105674602554986581.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/McPyfpq2te61BKvvCM-PcQ==/5105674602554986581.jpg"></A></P>
<P align=left><FONT size=2>9、在如下窗口中，设置客户端可用的快捷方式，单击"Remove"按钮，删除多余的，只留下程序运行的“autoruns”快捷方式。</FONT></P>
<P align=center><A href="http://img.blog.163.com/photo/UxmwUCDayriPM7Y5m24NUA==/886927651616051441.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/UxmwUCDayriPM7Y5m24NUA==/886927651616051441.jpg"></A></P>
<P align=left>10、在如下窗口中，单击“Launch”，运行程序，继续抓取程序运行时所需的相关信息。</P>
<P align=center><A href="http://img.blog.163.com/photo/DEROMDlmk0OEH4HahYSBgw==/5074430880140143025.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/DEROMDlmk0OEH4HahYSBgw==/5074430880140143025.jpg"></A></P>
<P align=left>11、单击“下一步”完成。保存到autoruns文件夹中，然后将此文件夹拷贝到SoftGrid Server的Content文件夹下。</P>
<P align=left>完成软件序列化过程。</P></div>]]></description>
	    <author><![CDATA[大河§晕王]]></author>
	    <comments>http://ewangsoft.blog.163.com/blog/static/77215582200852405459603</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://ewangsoft.blog.163.com/blog/static/77215582200852405459603</guid>
    <pubDate>Tue, 24 Jun 2008 12:54:59 +0800</pubDate>
    <dcterms:modified>2008-06-27T07:36:17+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[【原创】应用程序虚拟化（1）：SoftGrid Server的安装使用]]></title>	
    <link>http://ewangsoft.blog.163.com/blog/static/772155822008523113312875</link>
    <description><![CDATA[<div><P>本文只介绍SoftGrid Server的安装使用，详细信息请查看软件主页：<A href="http://www.microsoft.com/china/systemcenter/softgrid/default.mspx" target=_blank>http://www.microsoft.com/china/systemcenter/softgrid/default.mspx</A></P>
<P><STRONG>一、安装软件的软、硬件条件：</STRONG></P>
<P>本人测试使用的是SoftGrid Server 4.1.3.16。从安装界面来看，其包含一下组件：</P>
<P align=center><A href="http://img.blog.163.com/photo/e7QU0XJpO0Nx1osMcIHCag==/1726567507143669107.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/e7QU0XJpO0Nx1osMcIHCag==/1726567507143669107.jpg"></A></P>
<P align=left>各组件的软、硬件要求如下：</P>
<P align=left><STRONG>SoftGrid Virtual Application Server：</STRONG></P>
<P align=left>Intel Pentium III，1 GHz及 以上 CPU；512M及以上内存；WINDOWS 2003 SP1及以上或WINDOWS XP SP2及以上版本操作系统；MDAC 2.7及以上版本。</P>
<P align=left><STRONG>SoftGrid Management Console：</STRONG></P>
<P align=left>256M及以上内存；WINDOWS 2003 SP1及以上或WINDOWS XP SP2及以上版本操作系统；Microsoft Management Console 3.0及以上版本；.NET Framework 2.0及以上版本。</P>
<P align=left><STRONG>SoftGrid Management Web Service：</STRONG></P>
<P align=left>256M及以上内存；WINDOWS SERVER 2000及以上服务器版本操作系统；Internet Information Server 5.0及以上版本；.NET Framework 2.0及以上版本。</P>
<P align=left><STRONG>附件组件－MSDE或SQL SERVER：</STRONG></P>
<P align=left>SoftGrid Server 需要附加一个Data Store，可以使用软件里面提供的MSDE，也可以使用SQL SERVER。同时需要域环境（我想可能是客户端、服务器通信需要加密及认证要求吧）。</P>
<P align=left><STRONG>二、软件的安装过程</STRONG></P>
<P align=left>1、运行程序到组件选择界面：</P>
<P align=center><A href="http://img.blog.163.com/photo/e7QU0XJpO0Nx1osMcIHCag==/1726567507143669107.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/e7QU0XJpO0Nx1osMcIHCag==/1726567507143669107.jpg"></A></P>
<P align=left>选择要安装的组件，单击“Next”。</P>
<P align=left>2、软件提醒需要安装启用“ASP.NET WEB 服务扩展”：</P>
<P align=center><A href="http://img.blog.163.com/photo/3MjIQkDE2Q8o9rj4TPV2eA==/2006916583947473269.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/3MjIQkDE2Q8o9rj4TPV2eA==/2006916583947473269.jpg"></A></P>
<P align=left>3、参照上面的提示，应先安装IIS、.NET 2，并在Internet信息管理器里面启用ASP.NET扩展</P>
<P align=center><A href="http://img.blog.163.com/photo/OuP_naKo-hRGnIQriy0XBg==/1208090600042670729.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/OuP_naKo-hRGnIQriy0XBg==/1208090600042670729.jpg"></A></P>
<P align=left>4、安装Data Store，可以选择软件自带的MSDE或SQL SERVER。我选择的是MSDE</P>
<P align=center><A href="http://img.blog.163.com/photo/ZLI9EymO98PNgmKWWjAb-Q==/3994974344454785940.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/ZLI9EymO98PNgmKWWjAb-Q==/3994974344454785940.jpg"></A></P>
<P align=left>5、给MSDE创建Administrator Password和User Password</P>
<P align=center><A href="http://img.blog.163.com/photo/WvhrurLVKQb0kh-2YIHuRA==/2563674087881059414.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/WvhrurLVKQb0kh-2YIHuRA==/2563674087881059414.jpg"></A></P>
<P align=left>6、提供访问目录服务的凭据</P>
<P align=center><A href="http://img.blog.163.com/photo/9c7uLhfJVobwdBOE967g-w==/1733322906585016185.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/9c7uLhfJVobwdBOE967g-w==/1733322906585016185.jpg"></A></P>
<P align=left>7、需要提供做为SoftGrid Server管理组的域用户组，因此此时需要在AD中创建SoftGrid Server管理员组，然后在下图中输入管理员组。此组用来登录域后管理SoftGrid Server。</P>
<P align=center><A href="http://img.blog.163.com/photo/DYCIZzoocFQWlKktCaqOXw==/2295991385029557654.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/DYCIZzoocFQWlKktCaqOXw==/2295991385029557654.jpg"></A></P>
<P align=left>8、需要提供做为SoftGrid Server普通用户组的域用户组，因此此时需要在AD中创建SoftGrid Server普通用户组，然后在下图中输入。</P>
<P align=center><A href="http://img.blog.163.com/photo/k5dY1hCTpWntPIT0rUM1Mw==/325666548054967196.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/k5dY1hCTpWntPIT0rUM1Mw==/325666548054967196.jpg"></A></P>
<P align=left>9、创建一个服务器组名</P>
<P align=center><A href="http://img.blog.163.com/photo/PUKKubM96NUpBdkpuLP-RA==/5376172055173814943.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/PUKKubM96NUpBdkpuLP-RA==/5376172055173814943.jpg"></A></P>
<P align=left>10、选择Content文件夹位置，<FONT color=#ff0000>此文件夹要设置为共享，用来放置序列化后的应用程序文件。</FONT></P>
<P align=center><A href="http://img.blog.163.com/photo/TQXlBc_d-ZryRf7USYjoLw==/4566650022153975239.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/TQXlBc_d-ZryRf7USYjoLw==/4566650022153975239.jpg"></A></P>
<P align=left>至此，SoftGrid Server安装完毕。</P>
<P align=left><STRONG>三、软件的配置使用</STRONG></P>
<P align=left>1、在 管理工具－SoftGrid Management Console打开软件。</P>
<P align=left>2、在管理控制台左侧右击“Softgrid Systems”，在弹出的菜单中选择“Connect to SoftGrid System”，将弹出如下窗口，输入要登录到的服务器名及凭据。</P>
<P align=center><A href="http://img.blog.163.com/photo/VL1_-DdKnySFsAUmzyJnLQ==/853713604364058566.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/VL1_-DdKnySFsAUmzyJnLQ==/853713604364058566.jpg"></A></P>
<P align=left>3、连接上服务器后，在服务器名上右击，在弹出的菜单中选择“System Options”，在弹出窗口中设置Content Path。使用UNC或URL方式，我选择的是UNC。如下图：</P>
<P align=center><A href="http://img.blog.163.com/photo/5b8kCyRGz7Gpu-4JlDkJoQ==/2827979091012722478.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/5b8kCyRGz7Gpu-4JlDkJoQ==/2827979091012722478.jpg"></A></P>
<P align=left><STRONG>四、添加序列化后的软件包</STRONG></P>
<P align=left>1、把用SoftGrid Sequncer序列化后的文件拷贝到content根目录或指定目录，<FONT color=#ff0000>具体应该是根目录还是指定目录，要根据使用SoftGrid Sequencer 序列化时选择，</FONT><FONT color=black>建议选择指定目录，便于查看和管理。</FONT>如下图：</P>
<P align=center><A href="http://img.blog.163.com/photo/3Y5yfXlmR8iOwF5FloWRCA==/4531465650065549757.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/3Y5yfXlmR8iOwF5FloWRCA==/4531465650065549757.jpg"></A></P>
<P align=left>如果序列化时做如上配置，那么在SoftGrid Server中就要将autoruns序列化后的文件夹拷贝到content中。<FONT color=#ff0000>如果只在指定一个服务器中使用序列化包，可以将上图中Hostname改为IP地址或可以解析为IP地址的计算机名。如果使用默认的变量名，那么需要手工在客户端上注册变量名，变量的值为SoftGrid Server的IP地址或计算机名。如果在Hostname中指定的是具体的IP地址或计算机名，但又想在让此序列化程序在别的服务器上使用，可以手工更改OSD文件中的服务器IP地址为新服务器IP。</FONT></P>
<P align=left>2、导入应用程序序列化数据到服务器。在服务器管理器里找到“Applications”，右键单击，在弹出菜单中选择“Import Applications...”，然后选择要导入的“SPRJ”文件。将弹出如下窗口：</P>
<P align=center><A href="http://img.blog.163.com/photo/F1slOsup_OqkmqREBsCOWQ==/2294584010146004491.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/F1slOsup_OqkmqREBsCOWQ==/2294584010146004491.jpg"></A></P>
<P align=left>在上述窗口中，<FONT color=#ff0000>要注意OSD路径、ICON路径是否正确</FONT>，然后选择Server Group，单击“NEXT”。</P>
<P align=left>3、下一个窗口是设置程序的快捷方式存放位置</P>
<P align=center><A href="http://img.blog.163.com/photo/DW8EZhV_p00d_LjI3f89OQ==/618681998810467244.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/DW8EZhV_p00d_LjI3f89OQ==/618681998810467244.jpg"></A></P>
<P align=left>4、下一个窗口是注册文件类型，以便可以双击打开文件。</P>
<P align=center><A href="http://img.blog.163.com/photo/w828XMrbBKu3kPQ5N3AOLQ==/1772729403324413546.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/w828XMrbBKu3kPQ5N3AOLQ==/1772729403324413546.jpg"></A></P>
<P align=left>5、下一个窗口是设置可以使用此程序的组。</P>
<P align=center><A href="http://img.blog.163.com/photo/QWwedfkGGJUFzWScoFx8cQ==/916763999147380289.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/QWwedfkGGJUFzWScoFx8cQ==/916763999147380289.jpg"></A></P>
<P align=left>至此，SoftGrid Server导入一个序列化后的文件过程结束。</P>
<P align=center>&nbsp;</P></div>]]></description>
	    <author><![CDATA[大河§晕王]]></author>
	    <comments>http://ewangsoft.blog.163.com/blog/static/772155822008523113312875</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://ewangsoft.blog.163.com/blog/static/772155822008523113312875</guid>
    <pubDate>Mon, 23 Jun 2008 23:33:12 +0800</pubDate>
    <dcterms:modified>2008-06-27T07:46:54+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[【原创】使用虚拟机、Dynamips做ISA内网多网段部署实验]]></title>	
    <link>http://ewangsoft.blog.163.com/blog/static/77215582200852232617420</link>
    <description><![CDATA[<div><P>当ISA的内部网络为多网段时，需要在ISA的内部网络添加所有网段的IP范围；需要在ISA的主机上手工添加到各网段的静态路由。原因说明如下：</P>
<P><STRONG>当内部网络与外部网络的“网络规则”为“路由”时：<BR></STRONG>从内部网络到外部网络的数据能顺利出去。但是，返回数据可能不能正确传回，因为返回到达ISA的数据包的目标地址可能是内部别的和ISA不在一个网段的地址，此时ISA不知道怎样来转发此数据包。因此，需要给ISA明确指出，数据包需转发到内部交换机，也就是需要在ISA上添加静态路由： <BR><BR>route add 172.10.10.0 mask 255.255.255.0 内部交换机的IP<BR><BR>这样返回的数据才可到达内部网络。<BR><BR><B>当内部网络与外部网络的“网络规则”为“NAT”时：</B><BR>从内部网络到外部网络的数据能顺利到达，返回的数据，目标地址将<B>是ISA的外网卡IP。</B><BR><BR>由于是NAT，在ISA中将有一张NAT表，数据到达ISA时，ISA要查看NAT表，以便确定数据要送达内部的哪个IP。<BR><BR>经过查看NAT表，确定数据是返回给非ISA网络所在的网段的，此时ISA将不知怎样转发此数据。所以此时仍要添加静态路由：<BR><BR>route add 172.10.10.0 mask 255.255.255.0 内部交换机的IP<BR></P>
<P>因此，不管是哪种情况，均需要在ISA上手工添加静态路由才可跨网段。</P>
<P>实际应用环境的网络拓扑如下图：</P>
<P align=center><A href="http://img.blog.163.com/photo/rVFXtXwsXnUAEQWg4W-stQ==/2885118511284973111.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/rVFXtXwsXnUAEQWg4W-stQ==/2885118511284973111.jpg"></A><A href="http://img.blog.163.com/photo/_Zm_xOvN6UcI8WnBM7c53g==/5364631581128912750.jpg" target=_blank></A></P>
<P align=left>模拟实验中，简化为如下图（让路由器R担当客户端）：</P>
<P align=left><A href="http://img.blog.163.com/photo/t4bsT7Id52wcRQTqTSQLNA==/1981583836043807545.jpg" target=_blank></A>&nbsp;</P>
<P align=center><A href="http://img.blog.163.com/photo/NnmUdsBTwTnQePVNSb6ywQ==/1763440729093050542.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/NnmUdsBTwTnQePVNSb6ywQ==/1763440729093050542.jpg"></A></P>
<P align=left><STRONG>虚拟实验环境搭建：</STRONG></P>
<P align=left>&nbsp;&nbsp;&nbsp; ISA SERVER－－由虚拟机VM_ISA（WINDOWS SERVER 2003 R2 + ISA Server 2006）实现；</P>
<P align=left>&nbsp;&nbsp;&nbsp; 三层交换机－－由虚拟机VM_3S_R（WINDOWS XP SP2 + Dynamips + CISCO 3640 IOS）实现；</P>
<P align=left>&nbsp;&nbsp;&nbsp; 路由器－－在虚拟机VM_3S_R中，通过Dynamips模拟器加载CISCO 2600 IOS实现；</P>
<P align=left>&nbsp;&nbsp;&nbsp; ISA SERVER和三层交换机的连接：通过Dynamips桥接到VM_3S_R的一个网卡，进而和VM_ISA内网卡连接；</P>
<P align=left>&nbsp;&nbsp;&nbsp; 路由器和三层交换机的连接：通过Dynamips直接连接。</P>
<P align=left>具体配置：</P>
<P align=left>&nbsp;&nbsp; 虚拟机VM_ISA中：</P>
<P align=left>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ISA的“内部网络”范围为：</P>
<P align=left>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 192.168.0.0－192.168.0.255 ＋ 192.168.1.0－192.168.1.255 ＋ 192.168.2.0－192.168.2.255</P>
<P align=center><A href="http://img.blog.163.com/photo/FPIHadU7UeH4aGzJnK4h-g==/1181350477255180971.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/FPIHadU7UeH4aGzJnK4h-g==/1181350477255180971.jpg"></A></P>
<P align=left>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VM_ISA虚拟机中的路由信息为：</P>
<P align=center><A href="http://img.blog.163.com/photo/urNF4uzh4tY8tXvBHULFVw==/3165186113111628939.jpg" target=_blank><IMG src="http://img.blog.163.com/photo/urNF4uzh4tY8tXvBHULFVw==/3165186113111628939.jpg"></A></P>
<P align=center>其中，红框内的两条路由为手工添加，添加方法为</P>
<P align=center>route add 192.168.1.0&nbsp; mask&nbsp; 255.255.255.0&nbsp; 192.168.0.1</P>
<P align=center>route add 192.168.2.0&nbsp; mask &nbsp;255.255.255.0&nbsp; 192.168.0.1</P>
<P align=left>&nbsp; 虚拟机VM_3S_R中：</P>
<P align=left>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 路由器配置：</P>
<P align=left>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; R(config)# int f0/0</P>
<P align=left>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R(config-if)# ip add 192.168.1.11 255.255.255.0</P>
<P align=left>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; R(config-if)#exit</P>
<P align=left>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; R(config)# ip route 0.0.0.0 0.0.0.0 192.168.1.1</P>
<P align=left>&nbsp;&nbsp;&nbsp; 三层交换机配置：</P>
<P align=left>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; interface FastEthernet0/0<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; switchport access vlan 2</P>
<P align=left>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; interface Vlan1<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ip address 192.168.0.1 255.255.255.0<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; !<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; interface Vlan2<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ip address 192.168.1.1 255.255.255.0<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; !<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; interface Vlan3<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ip address 192.168.2.1 255.255.255.0<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; !<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ip route 0.0.0.0 0.0.0.0 192.168.0.53<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ip route 192.168.2.0 255.255.255.0 192.168.2.1<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ip route 192.168.2.0 255.255.255.0 192.168.1.2</P>
<P align=left>实验成功。</P>
<P align=left>&nbsp;</P>
<P align=left>&nbsp;</P>
<P align=left>&nbsp;&nbsp;&nbsp;</P></div>]]></description>
	    <author><![CDATA[大河§晕王]]></author>
	    <comments>http://ewangsoft.blog.163.com/blog/static/77215582200852232617420</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://ewangsoft.blog.163.com/blog/static/77215582200852232617420</guid>
    <pubDate>Sun, 22 Jun 2008 15:26:17 +0800</pubDate>
    <dcterms:modified>2008-06-24T13:32:22+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[【备忘】ISA Server 2004 does not listen for Web proxy requests after you enable a network adaptor or remove an IP address]]></title>	
    <link>http://ewangsoft.blog.163.com/blog/static/772155822008515628367</link>
    <description><![CDATA[<div><H1 >ISA Server 2004 does not listen for Web proxy requests after you enable a network adaptor or remove an IP address</H1>
<DIV ><A href="http://support.microsoft.com/default.aspx?scid=kb;en-us;891992#appliesto">View products that this article applies to.</A></DIV>


<DIV >
<TABLE>
<TBODY>
<TR>
<TD>Article ID</TD>
<TD>:</TD>
<TD>891992</TD></TR>
<TR>
<TD>Last Review</TD>
<TD>:</TD>
<TD>January 30, 2006</TD></TR>
<TR>
<TD>Revision</TD>
<TD>:</TD>
<TD>3.0</TD></TR></TBODY></TABLE></DIV>
<DIV ><B>Important</B> This article contains information about how to modify the registry. Make sure to back up the registry before you modify it. Make sure that you know how to restore the registry if a problem occurs. For more information about how to back up, restore, and modify the registry, click the following article number to view the article in the Microsoft Knowledge Base: 
<DIV ><A href="http://support.microsoft.com/kb/256986/">256986</A><SPAN > (http://support.microsoft.com/kb/256986/)</SPAN> Description of the Microsoft Windows registry</DIV></DIV>
<DIV >
<H2 >SYMPTOMS</H2>


<DIV >If one of the following conditions is true, Internet Security and Acceleration (ISA) Server may not listen for Web proxy requests on the network adaptor or IP address: 
<TABLE ul">
<TBODY>
<TR>
<TD >?</TD>
<TD >You add or enable a network adaptor in ISA Server 2004 configuration settings.</TD></TR>
<TR>
<TD >?</TD>
<TD >You remove an IP address from a network adaptor and then add the same IP address again.</TD></TR></TBODY></TABLE>
<P ><A href="http://support.microsoft.com/default.aspx?scid=kb;en-us;891992#top"><IMG alt="" src="http://support.microsoft.com/library/images/support/kbgraphics/public/en-us/uparrow.gif">Back to the top</A></P></DIV>
<H2 >WORKAROUND</H2>


<DIV >To work around this issue, restart the Microsoft Firewall service after you modify the network adaptor or IP address. To do this, follow these steps: 
<TABLE ol">
<TBODY>
<TR>
<TD >1.</TD>
<TD >Click <STRONG >Start</STRONG>, point to <STRONG >All Programs</STRONG>, point to <STRONG >Administrative Tools</STRONG>, and then click <STRONG >Services</STRONG>.</TD></TR>
<TR>
<TD >2.</TD>
<TD >In the list of services, right-click <STRONG >Microsoft Firewall</STRONG>, and then click <STRONG >Restart</STRONG>.</TD></TR></TBODY></TABLE>
<P ><A href="http://support.microsoft.com/default.aspx?scid=kb;en-us;891992#top"><IMG alt="" src="http://support.microsoft.com/library/images/support/kbgraphics/public/en-us/uparrow.gif">Back to the top</A></P></DIV>
<H2 >RESOLUTION</H2>


<DIV ><B>Warning</B> Serious problems might occur if you modify the registry incorrectly by using Registry Editor or by using another method. These problems might require that you reinstall your operating system. Microsoft cannot guarantee that these problems can be solved. Modify the registry at your own risk.<BR><BR>To resolve this issue, edit the SocketsInAcceptReuseList registry value to prevent this issue from occurring when you modify network adaptor settings or IP addresses in ISA Server 2004. To do this, follow these steps: 
<TABLE ol">
<TBODY>
<TR>
<TD >1.</TD>
<TD >Click <STRONG >Start</STRONG>, click <STRONG >Run</STRONG>, type <SPAN >regedit</SPAN>, and then click <STRONG >OK</STRONG>.</TD></TR>
<TR>
<TD >2.</TD>
<TD >Locate and then click the following registry subkey: 
<DIV ><STRONG >HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\FwSrv\Parameters\SocketsInAcceptReuseList</STRONG></DIV><B>Note</B> If this registry subkey does not exist, you must create it. To do this, follow these steps: 
<TABLE al">
<TBODY>
<TR>
<TD >a. </TD>
<TD >Locate the following registry subkey: 
<DIV >HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\FwSrv\Parameters</DIV></TD></TR>
<TR>
<TD >b. </TD>
<TD >Right-click this registry subkey, point to <STRONG >New</STRONG>, and then click <STRONG >DWORD Value</STRONG>.</TD></TR>
<TR>
<TD >c. </TD>
<TD >In the <STRONG >Name</STRONG> box, type <SPAN >SocketsInAcceptReuseList</SPAN>. </TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD >3.</TD>
<TD >Right-click <STRONG >SocketsInAcceptReuseList</STRONG>, and then click <STRONG >Modify</STRONG>.</TD></TR>
<TR>
<TD >4.</TD>
<TD >In the <STRONG >Value data</STRONG> box, type <SPAN >0</SPAN>, and then click <STRONG >OK</STRONG>.</TD></TR>
<TR>
<TD >5.</TD>
<TD >Restart the Microsoft Firewall service. To do this, follow these steps: 
<TABLE al">
<TBODY>
<TR>
<TD >a. </TD>
<TD >Click <STRONG >Start</STRONG>, point to <STRONG >All Programs</STRONG>, point to <STRONG >Administrative Tools</STRONG>, and then click <STRONG >Services</STRONG>.</TD></TR>
<TR>
<TD >b. </TD>
<TD >In the list of services, right-click <STRONG >Microsoft Firewall</STRONG>, and then click <STRONG >Restart</STRONG>.</TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></DIV></DIV></div>]]></description>
	    <author><![CDATA[大河§晕王]]></author>
	    <comments>http://ewangsoft.blog.163.com/blog/static/772155822008515628367</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://ewangsoft.blog.163.com/blog/static/772155822008515628367</guid>
    <pubDate>Sun, 15 Jun 2008 18:28:36 +0800</pubDate>
    <dcterms:modified>2008-06-15T18:28:36+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[【原创】将ISA日志中格式为bigint类型的IP数据转换为“点分十进制”IP]]></title>	
    <link>http://ewangsoft.blog.163.com/blog/static/77215582200851521519382</link>
    <description><![CDATA[<div><P>ISA日志信息可以存放到"MSDE”、"SQL SERVER"、"文本文件"中，但是，日志中客户端IP是以"bigint"数据格式存放的，很不方面我们来查看客户端IP。在.NET中可以使用以下方法将bigint格式的IP转换为点分十进制格式IP。代码如下：</P>
<P>private string numbertoipstr(Int64 number)<BR>&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //IP十进制最大值和最小值<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ((number &gt; 4294967295) || (number &lt; 16777217))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return "Inviable Data." ;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string ipstr=null ;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.Collections.ArrayList al = new System.Collections.ArrayList();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Int64 remainder;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //十进制转换为二进制，存入数组<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while(number&gt;0)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; number = Math.DivRem(number, 2, out remainder);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; al.Add(remainder);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //不够32位的高位补零<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (al.Count &lt; 32)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int c = al.Count;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int n = 0; n &lt; 32 - c; n++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; al.Add(0);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //转换为点分十进制形式<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int n = 0; n &lt; 4; n++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Int64 ipnum=0 ;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int m = 7;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int i = al.Count -1; i &gt;(al.Count-9); i--)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ipnum+=(Convert.ToInt64(al[i])) * (Convert.ToInt64(Math.Pow(2, m)));<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m--;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; al.RemoveRange(al.Count-8,8);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ipstr+=ipnum.ToString() + ".";<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return ipstr.Substring(0,ipstr.Length-1);<BR>&nbsp;&nbsp;&nbsp; }</P>
<P>&nbsp;</P></div>]]></description>
	    <author><![CDATA[大河§晕王]]></author>
	    <comments>http://ewangsoft.blog.163.com/blog/static/77215582200851521519382</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://ewangsoft.blog.163.com/blog/static/77215582200851521519382</guid>
    <pubDate>Sun, 15 Jun 2008 17:22:47 +0800</pubDate>
    <dcterms:modified>2008-06-15T18:03:22+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[【备忘】ISA相关脚本]]></title>	
    <link>http://ewangsoft.blog.163.com/blog/static/77215582200851463423240</link>
    <description><![CDATA[<div><P><STRONG>'断开"所有"或者"指定IP地址"的当前会话：</STRONG></P>
<P>'*************************************************************************************<BR>' Script Name: ISA_Manage_Sessions.vbs<BR>'&nbsp;&nbsp;&nbsp;&nbsp; Version: 1.0<BR>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Author: Jason Fossen (<A href="http://www.ISAscripts.org">www.ISAscripts.org</A>)<BR>'Last Updated: 16.Aug.2005<BR>'&nbsp;&nbsp;&nbsp;&nbsp; Purpose目标: Some functions for viewing and disconnecting Web Proxy, Firewall and<BR>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VPN sessions to ISA Server 2004 and later.&nbsp; You can disconnect<BR>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sessions by IP address, username or process name (or all sessions).<BR>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Notes注意: You should download the free ISA Server SDK from Microsoft's web site<BR>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; to understand the objects and collections referenced below: 你需要下载微软的开发资料,然后弄懂资料上的内容.<BR>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <A href="http://www.microsoft.com/isaserver/downloads/">http://www.microsoft.com/isaserver/downloads/</A><BR>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Legal合法性: Public Domain.&nbsp; Modify and redistribute freely.&nbsp; No rights reserved.<BR>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SCRIPT PROVIDED "AS IS" WITHOUT WARRANTIES担保 OR GUARANTEES保证 OF ANY KIND.<BR>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; USE AT YOUR OWN RISK风险.&nbsp; Test on non-production servers first.<BR>'*************************************************************************************<BR>'修改者 刘旭靖 20080612<BR>'**************************************************************************************<BR>Option Explicit</P>
<P>'断开"所有"或者"指定IP地址"的当前会话<BR>' sIPaddress is the IP address of the client, all of whose sessions will<BR>' be disconnected.&nbsp; Pass in "all" as the argument to disconnect all sessions.<BR>' Function returns True if no (apparent) problems, False otherwise.<BR>Function DisconnectSessionByIP(sIPaddress)<BR>&nbsp;&nbsp;&nbsp; On Error Resume Next<BR>&nbsp;&nbsp;&nbsp; Const iBufferSize32bitLong = 200000&nbsp;&nbsp; 'Used with ExecuteQuery(), increase if output truncated.<BR>&nbsp;&nbsp;&nbsp; Dim oFPC, oFilterExpressions, cFirewallSessionsMonitor, cWebProxySessionsMonitor, oEntry, sLine<BR>&nbsp;&nbsp;&nbsp; sIPaddress = LCase(Trim(sIPaddress))<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; Set oFPC = CreateObject("FPC.Root")<BR>&nbsp;&nbsp;&nbsp; Set oFilterExpressions = CreateObject("FPC.FPCFilterExpressions") '?<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; If sIPaddress &lt;&gt; "all" Then<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; oFilterExpressions.FilterType = 1 '0=None, 1=Sessions, 2=LogViewer<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; oFilterExpressions.AddIPAddressFilter 1, 1, sIPaddress 'HRESULT AddIPAddressFilter<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '( FpcFilterCriteria Criteria,&nbsp; FpcFilterConditionCondition,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'BSTR Value,IFPCFilterExpression**ppNewFilterExpression);<BR>&nbsp;&nbsp;&nbsp; End If<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; 'gets an FPCSessionsMonitor collection that represents the session monitor for the Microsoft Firewall service sessions<BR>&nbsp;&nbsp;&nbsp; Set cFirewallSessionsMonitor = oFPC.GetContainingArray.SessionsMonitors.SessionsMonitorFirewall<BR>&nbsp;&nbsp;&nbsp; 'The ExecuteQuery method starts a new query using the specified filters on all servers in the<BR>&nbsp;&nbsp;&nbsp; cFirewallSessionsMonitor.ExecuteQuery oFilterExpressions, iBufferSize32bitLong</P>
<P>&nbsp;&nbsp;&nbsp; Set cWebProxySessionsMonitor = oFPC.GetContainingArray.SessionsMonitors.SessionsMonitorWebProxy<BR>&nbsp;&nbsp;&nbsp; cWebProxySessionsMonitor.ExecuteQuery oFilterExpressions, iBufferSize32bitLong</P>
<P>&nbsp;&nbsp;&nbsp; If Err.Number &lt;&gt; 0 Then<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DisconnectSessionByIP = False<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Exit Function<BR>&nbsp;&nbsp;&nbsp; End If<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; WScript.Sleep (1000) 'Not necessary, but these queries don't kick in instantaneously...</P>
<P>&nbsp;&nbsp;&nbsp; For Each oEntry In cFirewallSessionsMonitor&nbsp; '断开当前所有的NAT会话<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If oEntry.Event = 0 Then&nbsp;&nbsp; 'Event=0 simply means it was found and is live.<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '&nbsp; fpcInternalNetworkfpcInternalNetworkThe predefined Internal network. = 4,仅断开源网络为内部的会话(sesstion)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If ((oEntry.ClientIP = sIPaddress) Or (sIPaddress = "all")) And oEntry.SourceNetworkType = 4 Then<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'The DisconnectSession method disconnects the session with the specified session ID.<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cFirewallSessionsMonitor.DisconnectSession oEntry.ServerName, oEntry.SessionID<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<BR>&nbsp;&nbsp;&nbsp; Next<BR>&nbsp;&nbsp;&nbsp; cFirewallSessionsMonitor.EndQuery<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; 'And now do it for Web Proxy sessions...&nbsp; 断开当前所有的Web会话<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; For Each oEntry In cWebProxySessionsMonitor<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If oEntry.Event = 0 Then&nbsp;&nbsp; 'Event=0 simply means it was found and is live.<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If ((oEntry.ClientIP = sIPaddress) Or (sIPaddress = "all")) And oEntry.SourceNetworkType = 4 Then<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cWebProxySessionsMonitor.DisconnectSession oEntry.ServerName, oEntry.SessionID<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<BR>&nbsp;&nbsp;&nbsp; Next<BR>&nbsp;&nbsp;&nbsp; cWebProxySessionsMonitor.EndQuery<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; If Err.Number = 0 Then DisconnectSessionByIP = True Else DisconnectSessionByIP = False<BR>End Function</P>
<P>'开始断开所有IP<BR>If DisconnectSessionByIP("all") Then WScript.Echo "Good all IP disconnect!" Else WScript.Echo "IP disconnect problems."</P>
<P><STRONG>重启防火墙服务：</STRONG></P>
<P>Set root = CreateObject("FPC.Root")<BR>Set server = root.GetContainingServer()<BR>server.StopFirewallService()<BR>server.StartFirewallService()<BR>WScript.Echo "防火墙重新启动成功!"</P>
<P><STRONG>导入QQ服务器IP地址的脚本：</STRONG></P>
<P>'*************************************************************************************<BR>' Script Name: ISA_Fill_Computer_Set_Computers.vbs<BR>'&nbsp;&nbsp;&nbsp;&nbsp; Version: 1.1<BR>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Author: Jason Fossen ( <A href="http://www.ISAscripts.org">www.ISAscripts.org</A> )<BR>'Last Updated: 1.Sep.2005<BR>'&nbsp;&nbsp;&nbsp;&nbsp; Purpose: Create or update an ISA Server Computer Set with computer objects.<BR>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The current computer objects in the Set are all deleted before the<BR>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new ones from the file are added, but only computer objects are deleted.<BR>'&nbsp;&nbsp; Arguments: First arg is the name of Computer Set, in double-quotes if necessary.&nbsp;&nbsp; <BR>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The second arg is the local full path or file name (if in <BR>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; same folder as script) of a text file containing the computers and IP<BR>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; addresses.&nbsp; Each line should consist of a computer host name or FQDN<BR>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; followed by a delimeter and then the IP address.&nbsp; The delimeter can<BR>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; be a space, comma, tab, semicolon, colon, forwardslash or backslash.&nbsp; <BR>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Any comments must begin with a "#" or ";" or "&lt;".&nbsp; Blank lines are<BR>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ignored and will not cause problems.&nbsp; Previously existing Computer<BR>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Sets will be updated, not completely deleted.<BR>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Notes: Works on both ISA Standard and Enterprise.<BR>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Legal: Public Domain.&nbsp; Modify and redistribute freely.&nbsp; No rights reserved.<BR>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SCRIPT PROVIDED "AS IS" WITHOUT WARRANTIES OR GUARANTEES OF ANY KIND.<BR>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; USE AT YOUR OWN RISK.&nbsp; Test on non-production servers first.<BR>'*************************************************************************************</P>
<P>Option Explicit<BR>'On Error Resume Next</P>
<P>ReDim aComputersArray(0)&nbsp;&nbsp;&nbsp; 'Array of computers to be added to the Computer Set.<BR>Dim sComputerSetName&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'Name of Computer Set to be created and/or updated.<BR>Dim sComputersFilePath&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'A local filesystem path to a file of computers.<BR>Dim oFPC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'See MakeIsaObjects()<BR>Dim oIsaArray&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'See MakeIsaObjects()</P>
<P>Dim oFileSystem :&nbsp; Set oFileSystem = WScript.CreateObject("Scripting.FileSystemObject")<BR>Call CatchAnyErrorsAndQuit("Problems creating the FileSystemObject.")</P>
<P>&nbsp;</P>
<P>'*************************************************************************************<BR>' Main()<BR>'*************************************************************************************<BR>Call ProcessCommandLineArguments()<BR>Call CreateComputerSet()<BR>Call CreateComputers()</P>
<P>&nbsp;</P>
<P><BR>'*************************************************************************************<BR>' Procedures<BR>'*************************************************************************************</P>
<P><BR>Sub ProcessCommandLineArguments()<BR>&nbsp;&nbsp;&nbsp; On Error Resume Next<BR>&nbsp;&nbsp;&nbsp; 'Get command line arguments, show Help if necessary.<BR>&nbsp;&nbsp;&nbsp; If WScript.Arguments.Count &lt;&gt; 2 Then Call ShowHelpAndQuit()<BR>&nbsp;&nbsp;&nbsp; sComputerSetName = WScript.Arguments.Item(0)<BR>&nbsp;&nbsp;&nbsp; sComputersFilePath = WScript.Arguments.Item(1)<BR>&nbsp;&nbsp;&nbsp; Call CatchAnyErrorsAndQuit("Problems processing command line arguments.")<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; 'Create global ISA objects and puke on any errors.<BR>&nbsp;&nbsp;&nbsp; Set oFPC = CreateObject("FPC.Root")<BR>&nbsp;&nbsp;&nbsp; Set oIsaArray = oFPC.GetContainingArray<BR>&nbsp;&nbsp;&nbsp; Call CatchAnyErrorsAndQuit("Problems connecting to ISA Server array.")</P>
<P>&nbsp;&nbsp;&nbsp; 'Now parse the text file into an array or puke.<BR>&nbsp;&nbsp;&nbsp; If Not ParseInputFile(sComputersFilePath, aComputersArray) Then<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Err.Raise -1<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Call CatchAnyErrorsAndQuit("Problems reading the file: " &amp; sComputersFilePath)<BR>&nbsp;&nbsp;&nbsp; End If<BR>End Sub</P>
<P>&nbsp;</P>
<P>Sub CreateComputerSet()<BR>&nbsp;&nbsp;&nbsp; On Error Resume Next <BR>&nbsp;&nbsp;&nbsp; Dim cComputerSets&nbsp;&nbsp;&nbsp; 'FPCComputerSets collection.<BR>&nbsp;&nbsp;&nbsp; Dim cComputerSet&nbsp;&nbsp;&nbsp;&nbsp; 'FPCComputerSet collection.</P>
<P>&nbsp;&nbsp;&nbsp; Set cComputerSets = oIsaArray.RuleElements.ComputerSets<BR>&nbsp;&nbsp;&nbsp; Set cComputerSet = cComputerSets.Add(sComputerSetName)<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; If Err.Number = 0 Then<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cComputerSet.Description = "Only add computers to this Computer Set with the script. Items added by hand will be removed the next time the script is run."<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cComputerSet.Save<BR>&nbsp;&nbsp;&nbsp; Else<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If Err.Number = -2147024713 Then Err.Clear&nbsp; 'The Computer Set already exists, so ignore error.<BR>&nbsp;&nbsp;&nbsp; End If<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; Call CatchAnyErrorsAndQuit("Problems creating the Computer Set named " &amp; sComputerSetName)<BR>End Sub</P>
<P>&nbsp;</P>
<P>Sub CreateComputers()<BR>&nbsp;&nbsp;&nbsp; On Error Resume Next<BR>&nbsp;&nbsp;&nbsp; Dim cComputers&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'FPCURLSets collection.<BR>&nbsp;&nbsp;&nbsp; Dim oComputer&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'FPCComputer object.<BR>&nbsp;&nbsp;&nbsp; Dim cComputerSet&nbsp;&nbsp;&nbsp; 'FPCComputerSet collection.<BR>&nbsp;&nbsp;&nbsp; Dim cComputerSets&nbsp;&nbsp; 'FPCComputerSets collection.<BR>&nbsp;&nbsp;&nbsp; Dim sLine, sDelimeter, sComputerName, sIPaddress<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; Set cComputerSets = oIsaArray.RuleElements.ComputerSets<BR>&nbsp;&nbsp;&nbsp; Set cComputerSet = cComputerSets.Item(sComputerSetName)<BR>&nbsp;&nbsp;&nbsp; Set cComputers = cComputerSet.Computers<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; 'Delete any computer objects in the set.&nbsp; Notice that only computer objects are deleted, <BR>&nbsp;&nbsp;&nbsp; 'hence, you can fill the set with other types of objects with other scripts.<BR>&nbsp;&nbsp;&nbsp; For Each oComputer In cComputers<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cComputers.Remove(oComputer.Name)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; Next<BR>&nbsp;&nbsp;&nbsp; Call CatchAnyErrorsAndQuit("Problems deleting current computers in " &amp; sComputerSetName)</P>
<P>&nbsp;&nbsp;&nbsp; 'Parse the array of lines from text file and create new computer objects.<BR>&nbsp;&nbsp;&nbsp; For Each sLine In aComputersArray<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If ((Left(sLine, 1) &lt;&gt; "#") And (Left(sLine, 1) &lt;&gt; ";") And (Left(sLine, 1) &lt;&gt; "&lt;")) Then <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'Assume delimeter is a single space character, but check for other common delimeters.<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sDelimeter = " "&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If InStr(sLine, vbTab) &lt;&gt; 0 Then sDelimeter = vbTab<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If InStr(sLine, ",") &lt;&gt; 0&nbsp;&nbsp; Then sDelimeter = ","<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If InStr(sLine, ";") &lt;&gt; 0&nbsp;&nbsp; Then sDelimeter = ";"<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If InStr(sLine, ":") &lt;&gt; 0&nbsp;&nbsp; Then sDelimeter = ":" <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If InStr(sLine, "/") &lt;&gt; 0&nbsp;&nbsp; Then sDelimeter = "/" <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If InStr(sLine, "\") &lt;&gt; 0&nbsp;&nbsp; Then sDelimeter = "\" <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'Extract the two elements of each line, given the delimeter.<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sComputerName&nbsp; = Trim( Left(sLine, InStrRev(sLine, sDelimeter) - 1))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sIPaddress = Trim(Right(sLine, Len(sLine) - InStrRev(sLine, sDelimeter)))</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set oComputer = cComputers.Add(sComputerName, sIPaddress)</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If Err.Number = -1073478910 Then <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WScript.Echo sIPaddress &amp; " is not a valid IP address (entered with " &amp; sComputerName &amp; ")."<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Err.Clear<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If Err.Number = -2147024713 Then <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WScript.Echo sComputerName &amp; " already exists, not added again (entered with " &amp; sIPaddress &amp; ")." <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Err.Clear <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<BR>&nbsp;&nbsp;&nbsp; Next<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; cComputers.Save</P>
<P>&nbsp;&nbsp;&nbsp; Call CatchAnyErrorsAndQuit("Problems creating new computer objects in " &amp; sComputerSetName)<BR>End Sub</P>
<P>&nbsp;</P>
<P>Sub CatchAnyErrorsAndQuit(sMessage)<BR>&nbsp;&nbsp;&nbsp; Dim oStdErr<BR>&nbsp;&nbsp;&nbsp; If Err.Number &lt;&gt; 0 Then<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set oStdErr&nbsp; = WScript.StdErr&nbsp; 'Write to standard error stream.<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; oStdErr.WriteLine vbCrLf<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; oStdErr.WriteLine "&gt;&gt;&gt;&gt;&gt;&gt; ERROR: " &amp; sMessage <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; oStdErr.WriteLine "Error Number: " &amp; Err.Number <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; oStdErr.WriteLine " Description: " &amp; Err.Description <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; oStdErr.WriteLine "Error Source: " &amp; Err.Source&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; oStdErr.WriteLine " Script Name: " &amp; WScript.ScriptName <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; oStdErr.WriteLine vbCrLf<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WScript.Quit Err.Number<BR>&nbsp;&nbsp;&nbsp; End If <BR>End Sub </P>
<P>&nbsp;</P>
<P>Sub ShowHelpAndQuit()<BR>&nbsp;&nbsp;&nbsp; Dim sUsage : sUsage = vbCrLf<BR>&nbsp;&nbsp;&nbsp; sUsage = sUsage &amp; vbCrLf<BR>&nbsp;&nbsp;&nbsp; sUsage = sUsage &amp; "ISA_FILL_COMPUTER_SET_COMPUTERS.VBS setname file.txt [/?]" &amp; vbCrLf<BR>&nbsp;&nbsp;&nbsp; sUsage = sUsage &amp; vbCrLf<BR>&nbsp;&nbsp;&nbsp; sUsage = sUsage &amp; "Purpose: Create or update a Computer Set in ISA Server with hostnames and" &amp; vbCrLf<BR>&nbsp;&nbsp;&nbsp; sUsage = sUsage &amp; "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IP addresses from a text file. Clears current computers in the" &amp; vbCrLf<BR>&nbsp;&nbsp;&nbsp; sUsage = sUsage &amp; "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Computer Set before the new ones are added." &amp; vbCrLf<BR>&nbsp;&nbsp;&nbsp; sUsage = sUsage &amp; vbCrLf<BR>&nbsp;&nbsp;&nbsp; sUsage = sUsage &amp; "&nbsp;&nbsp; Args: setname&nbsp; -- Name of the Computer Set to be created or updated." &amp; vbCrLf<BR>&nbsp;&nbsp;&nbsp; sUsage = sUsage &amp; vbCrLf<BR>&nbsp;&nbsp;&nbsp; sUsage = sUsage &amp; "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; file.txt -- Text file of computernames or FQDNs along with their" &amp; vbCrLf<BR>&nbsp;&nbsp;&nbsp; sUsage = sUsage &amp; "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IP addresses.&nbsp; Each line must be a hostname, a" &amp; vbCrLf<BR>&nbsp;&nbsp;&nbsp; sUsage = sUsage &amp; "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; delimeter, then an IP address.&nbsp; The delimeter can be" &amp; vbCrLf<BR>&nbsp;&nbsp;&nbsp; sUsage = sUsage &amp; "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a space, comma, semicolon, colon, tab, backslash," &amp; vbCrLf<BR>&nbsp;&nbsp;&nbsp; sUsage = sUsage &amp; "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; or forwardslash. Comment lines must begin with ""#""," &amp; vbCrLf<BR>&nbsp;&nbsp;&nbsp; sUsage = sUsage &amp; "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "";"" or ""&lt;"".&nbsp; Blank lines are ignored.&nbsp; The hostname" &amp; vbCrLf<BR>&nbsp;&nbsp;&nbsp; sUsage = sUsage &amp; "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; can be a simple computername or a fully qualified" &amp; vbCrLf<BR>&nbsp;&nbsp;&nbsp; sUsage = sUsage &amp; "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; domain name." &amp; vbCrLf<BR>&nbsp;&nbsp;&nbsp; sUsage = sUsage &amp; vbCrLf<BR>&nbsp;&nbsp;&nbsp; sUsage = sUsage &amp; "&nbsp; Legal: Public domain. No rights reserved. SCRIPT PROVIDED ""AS IS"" WITH- " &amp; vbCrLf<BR>&nbsp;&nbsp;&nbsp; sUsage = sUsage &amp; "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OUT WARRANTIES OR GUARANTEES OF ANY KIND. USE AT YOUR OWN RISK." &amp; vbCrLf<BR>&nbsp;&nbsp;&nbsp; sUsage = sUsage &amp; "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ( <A href="http://www.ISAscripts.org">www.ISAscripts.org</A> )" &amp; vbCrLf<BR>&nbsp;&nbsp;&nbsp; sUsage = sUsage &amp; vbCrLf<BR>&nbsp;&nbsp;&nbsp; sUsage = sUsage &amp; " " &amp; vbCrLf<BR>&nbsp;&nbsp;&nbsp; sUsage = sUsage &amp; vbCrLf<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; WScript.Echo sUsage<BR>&nbsp;&nbsp;&nbsp; WScript.Quit<BR>End Sub</P>
<P>&nbsp;</P>
<P><BR>'*********************************************************************************<BR>' Script Name: Parse_Input_File.vbs<BR>'&nbsp;&nbsp;&nbsp;&nbsp; Version: 1.1<BR>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Author: Jason Fossen<BR>'Last Updated: 29.Mar.2004<BR>'&nbsp;&nbsp;&nbsp;&nbsp; Purpose: Sorts lines of a text file into an array.<BR>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Usage: Function returns true if no problems, false otherwise.&nbsp; Pass global<BR>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; variable of an array into second argument of function; this will be<BR>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; resized and populated with lines from text file.&nbsp; Blank and empty<BR>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; trailing lines from file, if any, are excluded from the array.&nbsp; The<BR>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; array global variable must be declared with "ReDim", not just "Dim".<BR>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The file can be passed in with full path or just the file name if<BR>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; the file is in the same folder as the script.<BR>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Note: You must declare the global array variable with "ReDim" before <BR>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; passing it into the function; make it of size one because it<BR>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; will be ReDim-ed without preservation again anyway.<BR>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Legal: Public Domain.&nbsp; Modify and redistribute freely.&nbsp; No rights reserved.<BR>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Use at your own risk.&nbsp; Do not run on networks for which you do not <BR>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; have prior written permission to do so.&nbsp; Script provided "AS IS".<BR>'*********************************************************************************</P>
<P><BR>Function ParseInputFile(ByVal sFile, ByRef aArray)<BR>&nbsp;&nbsp;&nbsp; On Error Resume Next<BR>&nbsp;&nbsp;&nbsp; Const ForReading = 1<BR>&nbsp;&nbsp;&nbsp; Const OpenUsingDefault = -2<BR>&nbsp;&nbsp;&nbsp; Dim sCurrentFolder, oFileSystem, oInputFile, i, iCurrentSize<BR>&nbsp;&nbsp;&nbsp; Dim iPreserveCounter, oFile, oTextStream, iLineCount, sLine</P>
<P><BR>&nbsp;&nbsp;&nbsp; 'Expand environmental variables, if any.<BR>&nbsp;&nbsp;&nbsp; If InStr(sFile, "%") &lt;&gt; 0 Then<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If Not IsObject(oWshShell) Then Set oWshShell = WScript.CreateObject("WScript.Shell")<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sFile = oWshShell.ExpandEnvironmentStrings(sFile)<BR>&nbsp;&nbsp;&nbsp; End If </P>
<P><BR>&nbsp;&nbsp;&nbsp; 'Assume input file is in current folder if a full path is not given.<BR>&nbsp;&nbsp;&nbsp; If InStr(sFile, "\") = 0 Then<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sCurrentFolder = WScript.ScriptFullName <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sCurrentFolder = Left(sCurrentFolder, InstrRev(sCurrentFolder, "\"))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sFile = sCurrentFolder &amp; sFile<BR>&nbsp;&nbsp;&nbsp; End If&nbsp;&nbsp;&nbsp; </P>
<P><BR>&nbsp;&nbsp;&nbsp; 'Verify that file exists and is readable, return false if not.<BR>&nbsp;&nbsp;&nbsp; If Not IsObject(oFileSystem) Then Set oFileSystem = WScript.CreateObject("Scripting.FileSystemObject")<BR>&nbsp;&nbsp;&nbsp; Set oFile = oFileSystem.GetFile(sFile)<BR>&nbsp;&nbsp;&nbsp; Set oTextStream = oFile.OpenAsTextStream(ForReading, OpenUsingDefault)&nbsp; <BR>&nbsp;&nbsp;&nbsp; If Err.Number &lt;&gt; 0 Then<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'WScript.Echo "Problem opening " &amp; sFile &amp; " (" &amp; Err.Description &amp; ")"<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ParseInputFile = False<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Exit Function<BR>&nbsp;&nbsp;&nbsp; End If</P>
<P><BR>&nbsp;&nbsp;&nbsp; 'Count the number of lines in file, not including an empty line at the very end (if present).<BR>&nbsp;&nbsp;&nbsp; iLineCount = 0<BR>&nbsp;&nbsp;&nbsp; Do While Not oTextStream.AtEndOfStream<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; oTextStream.SkipLine<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; iLineCount = iLineCount + 1<BR>&nbsp;&nbsp;&nbsp; Loop</P>
<P><BR>&nbsp;&nbsp;&nbsp; 'ReDim the array to be equal to expected size of the input from file.<BR>&nbsp;&nbsp;&nbsp; If iLineCount &lt;&gt; 0 Then<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ReDim aArray(iLineCount - 1)&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; oTextStream.Close<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set oTextStream = Nothing<BR>&nbsp;&nbsp;&nbsp; Else 'The input file was empty!<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ReDim aArray(0)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'aArray(0) = ""&nbsp;&nbsp;&nbsp; 'Assign default here if desired.<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; oTextStream.Close<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set oTextStream = Nothing<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set oFile = Nothing<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set oFileSystem = Nothing<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If Err.Number = 0 Then <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ParseInputFile = True<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Else<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ParseInputFile = False<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Exit Function<BR>&nbsp;&nbsp;&nbsp; End If</P>
<P><BR>&nbsp;&nbsp;&nbsp; 'Read each line of file into an element of the array, excluding blank lines.<BR>&nbsp;&nbsp;&nbsp; Set oTextStream = oFile.OpenAsTextStream(ForReading, OpenUsingDefault)&nbsp; <BR>&nbsp;&nbsp;&nbsp; i = 0<BR>&nbsp;&nbsp;&nbsp; iPreserveCounter = 0<BR>&nbsp;&nbsp;&nbsp; Do While Not oTextStream.AtEndOfStream<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sLine = Trim(oTextStream.ReadLine)&nbsp;&nbsp;&nbsp; 'Note the trimming here.&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If Len(sLine) &lt;&gt; 0 Then <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; aArray(i) = sLine<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; i = i + 1<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Else<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; iPreserveCounter = iPreserveCounter + 1&nbsp;&nbsp; 'Keep track of blank lines.<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<BR>&nbsp;&nbsp;&nbsp; Loop<BR>&nbsp;&nbsp;&nbsp; oTextStream.Close<BR>&nbsp;&nbsp;&nbsp; Set oTextStream = Nothing<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; 'If there were blank lines in the file, trim the array of empty elements.<BR>&nbsp;&nbsp;&nbsp; If iPreserveCounter &lt;&gt; 0 Then<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; iCurrentSize = UBound(aArray)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ReDim Preserve aArray(iCurrentSize - iPreserveCounter)<BR>&nbsp;&nbsp;&nbsp; End If</P>
<P>&nbsp;&nbsp;&nbsp; Set oFile = Nothing<BR>&nbsp;&nbsp;&nbsp; Set oFileSystem = Nothing<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; If Err.Number = 0 Then<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ParseInputFile = True<BR>&nbsp;&nbsp;&nbsp; Else<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ParseInputFile = False<BR>&nbsp;&nbsp;&nbsp; End If<BR>End Function</P>
<P><BR>'END OF SCRIPT</P>
<P>************************************************************************</P>
<P>在“开始菜单”-“运行”输入<BR>如：D:\Auto\ISA_Fill_Computer_Set_Computers.vbs "QQSeverAutoIn" "computer.txt"<BR>“D:\Auto\”为脚本文件存放的位置<BR>参数"QQSeverAutoIn"为要在ISA中新建的计算机集的名称；参数"computer.txt"里的是IP地址。</P>
<P><BR>&nbsp;</P></div>]]></description>
	    <author><![CDATA[大河§晕王]]></author>
	    <comments>http://ewangsoft.blog.163.com/blog/static/77215582200851463423240</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://ewangsoft.blog.163.com/blog/static/77215582200851463423240</guid>
    <pubDate>Sat, 14 Jun 2008 18:34:23 +0800</pubDate>
    <dcterms:modified>2008-06-14T18:34:23+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[【备忘】Multipart Internet Mail Extensions (MIME) ]]></title>	
    <link>http://ewangsoft.blog.163.com/blog/static/77215582200851095213300</link>
    <description><![CDATA[<div><CENTER>
<TABLE cellPadding=2 bgColor=#dddddd border=1>
<TBODY>
<TR>
<TD><BR>
<CENTER><B>Description of Data Content</B></CENTER></TD>
<TD>
<CENTER><B>Typical Filename Extensions</B></CENTER></TD>
<TD><BR><B></B></TD>
<TD><BR>
<CENTER><B>MIME type/subtype</B></CENTER></TD></TR>
<TR>
<TD></TD>
<TD></TD>
<TD></TD>
<TD></TD></TR>
<TR>
<TD><B><FONT size=4><A >Text</A> and Text-Related Types</FONT></B> </TD>
<TD></TD>
<TD></TD>
<TD></TD></TR>
<TR>
<TD>HTML text data (RFC 1866)</TD>
<TD>html htm </TD>
<TD></TD>
<TD>text/html</TD></TR>
<TR>
<TD>Plain text: documents; program listings</TD>
<TD>txt c c++ pl cc h</TD>
<TD></TD>
<TD>text/plain </TD></TR>
<TR>
<TD>Richtext (obsolete - replaced by text/enriched) </TD>
<TD></TD>
<TD></TD>
<TD>text/richtext </TD></TR>
<TR>
<TD>Structure enhanced text </TD>
<TD>(etx?) </TD>
<TD></TD>
<TD>text/x-setext</TD></TR>
<TR>
<TD>Enriched text markup (RFC 1896)</TD>
<TD></TD>
<TD></TD>
<TD>text/enriched</TD></TR>
<TR>
<TD>Tab-separated values (tabular)</TD>
<TD>(tsv?) </TD>
<TD></TD>
<TD>text/tab-separated-values </TD></TR>
<TR>
<TD>SGML documents (RFC 1874)</TD>
<TD></TD>
<TD></TD>
<TD>text/sgml</TD></TR>
<TR>
<TD>Speech synthesis data (<I>MVP Solutions</I>) </TD>
<TD>talk</TD>
<TD></TD>
<TD>text/x-speech </TD></TR>
<TR>
<TD></TD>
<TD></TD>
<TD></TD>
<TD></TD></TR>
<TR>
<TD><B><FONT size=4>Document <A >Stylesheet</A> Types</FONT></B> </TD>
<TD></TD>
<TD></TD>
<TD></TD></TR>
<TR>
<TD>Cascading Stylesheets </TD>
<TD>css </TD>
<TD></TD>
<TD>text/css</TD></TR>
<TR>
<TD>DSSSL-online stylesheets</TD>
<TD></TD>
<TD></TD>
<TD>application/dsssl <I>(proposed)</I> </TD></TR>
<TR>
<TD></TD>
<TD></TD>
<TD></TD>
<TD></TD></TR>
<TR>
<TD><B><FONT size=4><A >Image</A> Types</FONT></B></TD>
<TD></TD>
<TD></TD>
<TD></TD></TR>
<TR>
<TD>GIF </TD>
<TD>gif</TD>
<TD></TD>
<TD>image/gif</TD></TR>
<TR>
<TD>X-Windows bitmap (b/w) </TD>
<TD>xbm </TD>
<TD></TD>
<TD>image/x-xbitmap</TD></TR>
<TR>
<TD>X-Windows pixelmap (8-bit color) </TD>
<TD>xpm </TD>
<TD></TD>
<TD>image/x-xpixmap</TD></TR>
<TR>
<TD>Portable Network Graphics</TD>
<TD>png </TD>
<TD></TD>
<TD>image/x-png</TD></TR>
<TR>
<TD>Image Exchange Format (RFC 1314)</TD>
<TD>ief </TD>
<TD></TD>
<TD>image/ief</TD></TR>
<TR>
<TD>JPEG </TD>
<TD>jpeg jpg jpe</TD>
<TD></TD>
<TD>image/jpeg</TD></TR>
<TR>
<TD>TIFF </TD>
<TD>tiff tif</TD>
<TD></TD>
<TD>image/tiff</TD></TR>
<TR>
<TD>RGB </TD>
<TD>rgb</TD>
<TD></TD>
<TD>image/rgb</TD></TR>
<TR>
<TD></TD>
<TD></TD>
<TD></TD>
<TD>image/x-rgb <B></B></TD></TR>
<TR>
<TD>Group III Fax (RFC 1494)</TD>
<TD>g3f </TD>
<TD></TD>
<TD>image/g3fax</TD></TR>
<TR>
<TD>X Windowdump format</TD>
<TD>xwd</TD>
<TD></TD>
<TD>image/x-xwindowdump</TD></TR>
<TR>
<TD>Macintosh PICT format</TD>
<TD>pict </TD>
<TD></TD>
<TD>image/x-pict</TD></TR>
<TR>
<TD>PPM (UNIX PPM package)</TD>
<TD>ppm </TD>
<TD></TD>
<TD>image/x-portable-pixmap</TD></TR>
<TR>
<TD>PGM (UNIX PPM package)</TD>
<TD>pgm </TD>
<TD></TD>
<TD>image/x-portable-graymap </TD></TR>
<TR>
<TD>PBM (UNIX PPM package)</TD>
<TD>pbm </TD>
<TD></TD>
<TD>image/x-portable-bitmap</TD></TR>
<TR>
<TD>PNM (UNIX PPM package)</TD>
<TD>pnm </TD>
<TD></TD>
<TD>image/x-portable-anymap</TD></TR>
<TR>
<TD>Microsoft Windows bitmap </TD>
<TD>bmp </TD>
<TD></TD>
<TD>image/x-ms-bmp</TD></TR>
<TR>
<TD>CMU raster </TD>
<TD>ras</TD>
<TD></TD>
<TD>image/x-cmu-raster</TD></TR>
<TR>
<TD>Kodak Photo-CD </TD>
<TD>pcd</TD>
<TD></TD>
<TD>image/x-photo-cd</TD></TR>
<TR>
<TD>Computer Graphics Metafile </TD>
<TD>cgm </TD>
<TD></TD>
<TD>image/cgm</TD></TR>
<TR>
<TD>North Am. Presentation Layer Protocol</TD>
<TD></TD>
<TD></TD>
<TD>image/naplps</TD></TR>
<TR>
<TD>CALS Type 1 or 2</TD>
<TD>mil cal </TD>
<TD></TD>
<TD>image/x-cals</TD></TR>
<TR>
<TD>Fractal Image Format (<I>Iterated Systems</I>) </TD>
<TD>fif</TD>
<TD></TD>
<TD>image/fif </TD></TR>
<TR>
<TD>QuickSilver active image (<I>Micrografx</I>) </TD>
<TD>dsf</TD>
<TD></TD>
<TD>image/x-mgx-dsf </TD></TR>
<TR>
<TD>CMX vector image (<I>Corel</I>)</TD>
<TD>cmx </TD>
<TD></TD>
<TD>image/x-cmx</TD></TR>
<TR>
<TD>Wavelet-compressed (<I>Summus</I>)</TD>
<TD>wi </TD>
<TD></TD>
<TD>image/wavelet</TD></TR>
<TR>
<TD>AutoCad Drawing (<I>SoftSource</I>)</TD>
<TD>dwg </TD>
<TD></TD>
<TD>image/vnd.dwg</TD></TR>
<TR>
<TD></TD>
<TD></TD>
<TD></TD>
<TD>image/x-dwg </TD></TR>
<TR>
<TD>AutoCad DXF file (<I>SoftSource</I>)</TD>
<TD>dxf </TD>
<TD></TD>
<TD>image/vnd.dxf</TD></TR>
<TR>
<TD></TD>
<TD></TD>
<TD></TD>
<TD>image/x-dxf </TD></TR>
<TR>
<TD>Simple Vector Format (<I>SoftSource</I>)</TD>
<TD>svf</TD>
<TD></TD>
<TD>image/vnd.svf </TD></TR>
<TR>
<TD></TD>
<TD></TD>
<TD></TD>
<TD><I>also</I> vector/x-svf </TD></TR>
<TR>
<TD></TD>
<TD></TD>
<TD></TD>
<TD></TD></TR>
<TR>
<TD><B><FONT size=4><A >Audio/Voice/Music</A> Related Types</FONT></B> </TD>
<TD></TD>
<TD></TD>
<TD></TD></TR>
<TR>
<TD>"basic"audio - 8-bit u-law PCM</TD>
<TD>au snd</TD>
<TD></TD>
<TD>audio/basic </TD></TR>
<TR>
<TD>Macintosh audio format (AIpple)</TD>
<TD>aif aiff aifc </TD>
<TD></TD>
<TD>audio/x-aiff</TD></TR>
<TR>
<TD><I>Microsoft</I> audio </TD>
<TD>wav </TD>
<TD></TD>
<TD>audio/x-wav</TD></TR>
<TR>
<TD>MPEG audio </TD>
<TD>mpa abs mpega </TD>
<TD></TD>
<TD>audio/x-mpeg</TD></TR>
<TR>
<TD>MPEG-2 audio</TD>
<TD>mp2a mpa2 </TD>
<TD></TD>
<TD>audio/x-mpeg-2</TD></TR>
<TR>
<TD>compressed speech (<I>Echo Speech</I> <I>Corp.</I>) </TD>
<TD>es</TD>
<TD></TD>
<TD>audio/echospeech </TD></TR>
<TR>
<TD>Toolvox speech audio (<I>Voxware</I>)</TD>
<TD>vox </TD>
<TD></TD>
<TD>audio/voxware </TD></TR>
<TR>
<TD>RapidTransit compressed audio (<I>Fast Man</I>) </TD>
<TD>lcc</TD>
<TD></TD>
<TD>application/fastman </TD></TR>
<TR>
<TD>Realaudio (<I>Progressive Networks</I>)</TD>
<TD>ra ram</TD>
<TD></TD>
<TD>application/x-pn-realaudio </TD></TR>
<TR>
<TD>NIFF music notation data format</TD>
<TD></TD>
<TD></TD>
<TD>application/vnd.music-niff </TD></TR>
<TR>
<TD>MIDI music data </TD>
<TD>mmid</TD>
<TD></TD>
<TD>x-music/x-midi</TD></TR>
<TR>
<TD>Koan music data (<I>SSeyo</I>)</TD>
<TD>skp </TD>
<TD></TD>
<TD>application/vnd.koan</TD></TR>
<TR>
<TD></TD>
<TD></TD>
<TD></TD>
<TD>application/x-koan </TD></TR>
<TR>
<TD>Speech synthesis data (<I>MVP Solutions</I>) </TD>
<TD>talk</TD>
<TD></TD>
<TD>text/x-speech </TD></TR>
<TR>
<TD></TD>
<TD></TD>
<TD></TD>
<TD></TD></TR>
<TR>
<TD><B><FONT size=4><A >Video</A> Types</FONT></B></TD>
<TD></TD>
<TD></TD>
<TD></TD></TR>
<TR>
<TD>MPEG video</TD>
<TD>mpeg mpg mpe</TD>
<TD></TD>
<TD>video/mpeg</TD></TR>
<TR>
<TD>MPEG-2 video</TD>
<TD>mpv2 mp2v</TD>
<TD></TD>
<TD>video/mpeg-2</TD></TR>
<TR>
<TD>Macintosh Quicktime</TD>
<TD>qt mov </TD>
<TD></TD>
<TD>video/quicktime</TD></TR>
<TR>
<TD>Microsoft video </TD>
<TD>avi</TD>
<TD></TD>
<TD>video/x-msvideo</TD></TR>
<TR>
<TD>SGI Movie format</TD>
<TD>movie</TD>
<TD></TD>
<TD>video/x-sgi-movie</TD></TR>
<TR>
<TD>VDOlive streaming video (<I>VDOnet)</I></TD>
<TD>vdo</TD>
<TD></TD>
<TD>video/vdo </TD></TR>
<TR>
<TD>Vivo streaming video (<I>Vivo software</I>) </TD>
<TD>viv</TD>
<TD></TD>
<TD>video/vnd.vivo </TD></TR>
<TR>
<TD></TD>
<TD></TD>
<TD></TD>
<TD>video/vivo </TD></TR>
<TR>
<TD><B><FONT size=4><A >Special</A> HTTP/Web Application Types</FONT></B> </TD>
<TD></TD>
<TD></TD>
<TD></TD></TR>
<TR>
<TD>Proxy autoconfiguration (<I>Netscape</I> browsers) </TD>
<TD>pac</TD>
<TD></TD>
<TD>application/x-ns-proxy-autoconfig </TD></TR>
<TR>
<TD>See Chapter 6</TD>
<TD></TD>
<TD></TD>
<TD>application/x-www-form-urlencoded</TD></TR>
<TR>
<TD>See Chapter 9</TD>
<TD></TD>
<TD></TD>
<TD>application/x-www-local-exec</TD></TR>
<TR>
<TD>See Chapter 9 (<I>Netscape</I> extension)</TD>
<TD></TD>
<TD></TD>
<TD>multipart/x-mixed-replace </TD></TR>
<TR>
<TD>See Chapter 9 and Appendix B</TD>
<TD></TD>
<TD></TD>
<TD>multipart/form-data</TD></TR>
<TR>
<TD>Netscape Cooltalk chat data (<I>Netscape</I>) </TD>
<TD>ice</TD>
<TD></TD>
<TD>x-conference/x-cooltalk </TD></TR>
<TR>
<TD>Interactive chat (<I>Ichat</I>)</TD>
<TD></TD>
<TD></TD>
<TD>application/x-chat </TD></TR>
<TR>
<TD></TD>
<TD></TD>
<TD></TD>
<TD></TD></TR>
<TR>
<TD><B><FONT size=4>Application Types</FONT></B> </TD>
<TD></TD>
<TD></TD>
<TD></TD></TR>
<TR>
<TD></TD>
<TD></TD>
<TD></TD>
<TD></TD></TR>
<TR>
<TD><B><A >Text-Related</A></B></TD>
<TD></TD>
<TD></TD>
<TD></TD></TR>
<TR>
<TD>PostScript </TD>
<TD>ai eps ps</TD>
<TD></TD>
<TD>application/postscript</TD></TR>
<TR>
<TD><I>Microsoft</I> Rich Text Format</TD>
<TD>rtf </TD>
<TD></TD>
<TD>application/rtf</TD></TR>
<TR>
<TD><I>Adobe</I> Acrobat PDF </TD>
<TD>pdf </TD>
<TD></TD>
<TD>application/pdf</TD></TR>
<TR>
<TD></TD>
<TD></TD>
<TD></TD>
<TD>application/x-pdf </TD></TR>
<TR>
<TD>Maker Interchange Format (<I>FrameMaker</I>) </TD>
<TD>mif</TD>
<TD></TD>
<TD>application/vnd.mif </TD></TR>
<TR>
<TD></TD>
<TD></TD>
<TD></TD>
<TD>application/x-mif </TD></TR>
<TR>
<TD>Troff document</TD>
<TD>t tr roff</TD>
<TD></TD>
<TD>application/x-troff</TD></TR>
<TR>
<TD>Troff document with MAN macros</TD>
<TD>man </TD>
<TD></TD>
<TD>application/x-troff-man</TD></TR>
<TR>
<TD>Troff document with ME macros</TD>
<TD>me </TD>
<TD></TD>
<TD>application/x-troff-me</TD></TR>
<TR>
<TD>Troff document with MS macros</TD>
<TD>ms </TD>
<TD></TD>
<TD>application/x-troff-ms</TD></TR>
<TR>
<TD>LaTeX document </TD>
<TD>latex</TD>
<TD></TD>
<TD>application/x-latex</TD></TR>
<TR>
<TD>Tex/LateX document</TD>
<TD>tex</TD>
<TD></TD>
<TD>application/x-tex</TD></TR>
<TR>
<TD>GNU TexInfo document</TD>
<TD>texinfo texi </TD>
<TD></TD>
<TD>application/x-texinfo</TD></TR>
<TR>
<TD>TeX dvi format </TD>
<TD>dvi</TD>
<TD></TD>
<TD>application/x-dvi</TD></TR>
<TR>
<TD>MacWrite document</TD>
<TD>??</TD>
<TD></TD>
<TD>application/macwriteii</TD></TR>
<TR>
<TD>MS word document</TD>
<TD>??</TD>
<TD></TD>
<TD>application/msword</TD></TR>
<TR>
<TD>WordPerfect 5.1 document</TD>
<TD>?? </TD>
<TD></TD>
<TD>application/wordperfect5.1 </TD></TR>
<TR>
<TD>SGML application (RFC 1874)</TD>
<TD></TD>
<TD></TD>
<TD>application/sgml</TD></TR>
<TR>
<TD>Office Document Architecture</TD>
<TD>oda </TD>
<TD></TD>
<TD>application/oda </TD></TR>
<TR>
<TD>Envoy Document</TD>
<TD>evy</TD>
<TD></TD>
<TD>application/envoy</TD></TR>
<TR>
<TD>Wang Info. Tranfer Format (<I>Wang</I>)</TD>
<TD></TD>
<TD></TD>
<TD>application/wita </TD></TR>
<TR>
<TD>DEC Document Transfer Format (<I>DEC</I>)</TD>
<TD></TD>
<TD></TD>
<TD>application/dec-dx </TD></TR>
<TR>
<TD>IBM Document Content Architecture (<I>IBM</I>) </TD>
<TD></TD>
<TD></TD>
<TD>application/dca-rft </TD></TR>
<TR>
<TD></TD>
<TD></TD>
<TD></TD>
<TD></TD></TR>
<TR>
<TD>CommonGround Digital Paper (<I>No Hands Software</I>) </TD>
<TD></TD>
<TD></TD>
<TD>application/commonground </TD></TR>
<TR>
<TD>FrameMaker Documents (<I>Frame</I>)</TD>
<TD>doc fm frm frame </TD>
<TD></TD>
<TD>application/vnd.framemaker </TD></TR>
<TR>
<TD></TD>
<TD></TD>
<TD></TD>
<TD>application/x-framemaker </TD></TR>
<TR>
<TD>Remote printing at arbitrary printers (RFC 1486) </TD>
<TD></TD>
<TD></TD>
<TD>application/remote-printing </TD></TR>
<TR>
<TD></TD>
<TD></TD>
<TD></TD>
<TD></TD></TR>
<TR>
<TD><B><A >Archive/Compressed</A> Archives</B></TD>
<TD></TD>
<TD></TD>
<TD></TD></TR>
<TR>
<TD>Gnu tar format</TD>
<TD>gtar</TD>
<TD></TD>
<TD>application/x-gtar</TD></TR>
<TR>
<TD>4.3BSD tar format</TD>
<TD>tar</TD>
<TD></TD>
<TD>application/x-tar</TD></TR>
<TR>
<TD>POSIX tar format</TD>
<TD>ustar</TD>
<TD></TD>
<TD>application/x-ustar</TD></TR>
<TR>
<TD>Old CPIO format</TD>
<TD>bcpio</TD>
<TD></TD>
<TD>application/x-bcpio</TD></TR>
<TR>
<TD>POSIX CPIO format</TD>
<TD>cpio</TD>
<TD></TD>
<TD>application/x-cpio</TD></TR>
<TR>
<TD>UNIX sh shell archive</TD>
<TD>shar </TD>
<TD></TD>
<TD>application/x-shar</TD></TR>
<TR>
<TD>DOS/PC - Pkzipped archive</TD>
<TD>zip </TD>
<TD></TD>
<TD>application/zip</TD></TR>
<TR>
<TD>Macintosh Binhexed archive </TD>
<TD>hqx </TD>
<TD></TD>
<TD>application/mac-binhex40 </TD></TR>
<TR>
<TD>Macintosh Stuffit Archive</TD>
<TD>sit sea </TD>
<TD></TD>
<TD>application/x-stuffit</TD></TR>
<TR>
<TD>Fractal Image Format </TD>
<TD>fif </TD>
<TD></TD>
<TD>application/fractals</TD></TR>
<TR>
<TD>Binary, UUencoded</TD>
<TD>bin uu</TD>
<TD></TD>
<TD>application/octet-stream</TD></TR>
<TR>
<TD>PC executable</TD>
<TD>exe</TD>
<TD></TD>
<TD>application/octet-stream</TD></TR>
<TR>
<TD>WAIS "sources"</TD>
<TD>src wsrc </TD>
<TD></TD>
<TD>application/x-wais-source </TD></TR>
<TR>
<TD>NCSA HDF data format</TD>
<TD>hdf</TD>
<TD></TD>
<TD>application/hdf</TD></TR>
<TR>
<TD></TD>
<TD></TD>
<TD></TD>
<TD></TD></TR>
<TR>
<TD><B><A >Downloadable</A> Program/Scripts</B></TD>
<TD></TD>
<TD></TD>
<TD></TD></TR>
<TR>
<TD>Javascript program </TD>
<TD>js ls mocha </TD>
<TD></TD>
<TD>text/javascript </TD></TR>
<TR>
<TD></TD>
<TD></TD>
<TD></TD>
<TD>application/x-javascript </TD></TR>
<TR>
<TD>VBScript program </TD>
<TD></TD>
<TD></TD>
<TD>text/vbscript</TD></TR>
<TR>
<TD>UNIX bourne shell program</TD>
<TD>sh </TD>
<TD></TD>
<TD>application/x-sh</TD></TR>
<TR>
<TD>UNIX c-shell program</TD>
<TD>csh</TD>
<TD></TD>
<TD>application/x-csh</TD></TR>
<TR>
<TD>Perl program</TD>
<TD>pl</TD>
<TD></TD>
<TD>application/x-perl</TD></TR>
<TR>
<TD>Tcl (Tool Control Language) program</TD>
<TD>tcl </TD>
<TD></TD>
<TD>application/x-tcl</TD></TR>
<TR>
<TD>Atomicmail program scripts (obsolete) </TD>
<TD></TD>
<TD></TD>
<TD>application/atomicmail </TD></TR>
<TR>
<TD>Slate documents - executable enclosures (<I>BBN</I>) </TD>
<TD></TD>
<TD></TD>
<TD>application/slate </TD></TR>
<TR>
<TD>Undefined binary data (often executable progs) </TD>
<TD></TD>
<TD></TD>
<TD>application/octet-stream </TD></TR>
<TR>
<TD>RISC OS Executable programs (<I>ANT Limited</I>) </TD>
<TD></TD>
<TD></TD>
<TD>application/riscos </TD></TR>
<TR>
<TD></TD>
<TD></TD>
<TD></TD>
<TD></TD></TR>
<TR>
<TD><B><A >Animation/Multimedia</A></B></TD>
<TD></TD>
<TD></TD>
<TD></TD></TR>
<TR>
<TD>Andrew Toolkit inset</TD>
<TD></TD>
<TD></TD>
<TD>application/andrew-inset</TD></TR>
<TR>
<TD>FutureSplash vector animation (<I>FutureWave</I>) </TD>
<TD>spl</TD>
<TD></TD>
<TD>application/futuresplash </TD></TR>
<TR>
<TD>mBED multimedia data (<I>mBED</I>)</TD>
<TD>mbd </TD>
<TD></TD>
<TD>application/mbedlet </TD></TR>
<TR>
<TD>Macromedia Shockwave (<I>Macromedia</I>)</TD>
<TD></TD>
<TD></TD>
<TD>application/x-director </TD></TR>
<TR>
<TD><I>Sizzler</I> real-time video/animation</TD>
<TD></TD>
<TD></TD>
<TD>application/x-sprite </TD></TR>
<TR>
<TD>PowerMedia multimedia (<I>RadMedia</I>)</TD>
<TD>rad</TD>
<TD></TD>
<TD>application/x-rad-powermedia </TD></TR>
<TR>
<TD></TD>
<TD></TD>
<TD></TD>
<TD></TD></TR>
<TR>
<TD><B><A >Presentation</A> </B></TD>
<TD></TD>
<TD></TD>
<TD></TD></TR>
<TR>
<TD>PowerPoint presentation (<I>Microsoft</I>)</TD>
<TD>ppz</TD>
<TD></TD>
<TD>application/mspowerpoint </TD></TR>
<TR>
<TD>PointPlus presentation data (<I>Net Scene</I>) </TD>
<TD>css</TD>
<TD></TD>
<TD>application/x-pointplus </TD></TR>
<TR>
<TD>ASAP WordPower (<I>Software Publishing Corp.</I>) </TD>
<TD>asp</TD>
<TD></TD>
<TD>application/x-asap </TD></TR>
<TR>
<TD>Astound Web Player multimedia data (<I>GoldDisk</I>) </TD>
<TD>asn</TD>
<TD></TD>
<TD>application/astound </TD></TR>
<TR>
<TD><B><A >Special</A> Embedded Object </B></TD>
<TD></TD>
<TD></TD>
<TD></TD></TR>
<TR>
<TD>OLE script e.g. Visual Basic (<I>Ncompass</I>) </TD>
<TD>axs</TD>
<TD></TD>
<TD>application/x-olescript </TD></TR>
<TR>
<TD>OLE Object (<I>Microsoft/NCompass</I>)</TD>
<TD>ods</TD>
<TD></TD>
<TD>application/x-oleobject </TD></TR>
<TR>
<TD>OpenScape OLE/OCX objects (<I>Business@Web</I>) </TD>
<TD>opp</TD>
<TD></TD>
<TD>x-form/x-openscape </TD></TR>
<TR>
<TD>Visual Basic objects (<I>Amara</I>)</TD>
<TD>wba </TD>
<TD></TD>
<TD>application/x-webbasic </TD></TR>
<TR>
<TD>Specialized data entry forms (<I>Alpha Software</I>) </TD>
<TD>frm</TD>
<TD></TD>
<TD>application/x-alpha-form </TD></TR>
<TR>
<TD>client-server objects (<I>Wayfarer Communications</I>) </TD>
<TD>wfx</TD>
<TD></TD>
<TD>x-script/x-wfxclient </TD></TR>
<TR>
<TD><B><A >General</A> Applications</B></TD>
<TD></TD>
<TD></TD>
<TD></TD></TR>
<TR>
<TD>Undefined binary data (often executable progs) </TD>
<TD></TD>
<TD></TD>
<TD>application/octet-stream </TD></TR>
<TR>
<TD>CALS (U.S. D.O.D data format - RFC 1895)</TD>
<TD></TD>
<TD></TD>
<TD>application/cals-1840 </TD></TR>
<TR>
<TD>Pointcast news data (<I>Pointcast</I>)</TD>
<TD>pcn</TD>
<TD></TD>
<TD>application/x-pcn </TD></TR>
<TR>
<TD>Excel spreadsheet (<I>Microsoft</I>)</TD>
<TD></TD>
<TD></TD>
<TD>application/vnd.ms-excel </TD></TR>
<TR>
<TD></TD>
<TD></TD>
<TD></TD>
<TD>application/x-msexcel </TD></TR>
<TR>
<TD></TD>
<TD></TD>
<TD></TD>
<TD>application/ms-excel</TD></TR>
<TR>
<TD>PowerPoint (<I>Microsoft</I>)</TD>
<TD>ppt </TD>
<TD></TD>
<TD>application/vnd.ms-powerpoint </TD></TR>
<TR>
<TD></TD>
<TD></TD>
<TD></TD>
<TD>application/ms-powerpoint </TD></TR>
<TR>
<TD>Microsoft Project (<I>Microsoft</I>)</TD>
<TD></TD>
<TD></TD>
<TD>application/vnd.ms-project </TD></TR>
<TR>
<TD>Works data (<I>Microsoft</I>)</TD>
<TD></TD>
<TD></TD>
<TD>application/vnd.ms-works </TD></TR>
<TR>
<TD>MAPI data (<I>Microsoft</I>)</TD>
<TD></TD>
<TD></TD>
<TD>application/vnd.ms-tnef</TD></TR>
<TR>
<TD>Artgallery data (Microsoft)</TD>
<TD></TD>
<TD></TD>
<TD>application/vnd.artgalry </TD></TR>
<TR>
<TD>SourceView document (<I>Dataware Electronics</I>) </TD>
<TD>svd</TD>
<TD></TD>
<TD>application/vnd.svd </TD></TR>
<TR>
<TD>Truedoc (<I>Bitstream</I>)</TD>
<TD></TD>
<TD></TD>
<TD>application/vnd.truedoc</TD></TR>
<TR>
<TD>Net Install - software install (<I>20/20 Software</I>) </TD>
<TD>ins</TD>
<TD></TD>
<TD>application/x-net-install </TD></TR>
<TR>
<TD>Carbon Copy - remote control/access (<I>Microcom</I>) </TD>
<TD>ccv</TD>
<TD></TD>
<TD>application/ccv </TD></TR>
<TR>
<TD>Spreadsheets (<I>Visual Components</I>)</TD>
<TD>vts</TD>
<TD></TD>
<TD>workbook/formulaone </TD></TR>
<TR>
<TD>Cybercash digital money (<I>Cybercash</I>)</TD>
<TD></TD>
<TD></TD>
<TD>application/cybercash </TD></TR>
<TR>
<TD>Format for sending generic Macintosh files</TD>
<TD></TD>
<TD></TD>
<TD>application/applefile </TD></TR>
<TR>
<TD>Active message -- connect to active mail app. </TD>
<TD></TD>
<TD></TD>
<TD>application/activemessage </TD></TR>
<TR>
<TD>X.400 mail message body part (RFC 1494)</TD>
<TD></TD>
<TD></TD>
<TD>application/x400-bp </TD></TR>
<TR>
<TD>USENET news message id (RFC 1036)</TD>
<TD></TD>
<TD></TD>
<TD>application/news-message-id </TD></TR>
<TR>
<TD>USENET news message (RFC 1036)</TD>
<TD></TD>
<TD></TD>
<TD>application/news-transmission </TD></TR>
<TR>
<TD></TD>
<TD></TD>
<TD></TD>
<TD></TD></TR>
<TR>
<TD><B><FONT size=4><A >Multipart</A> Types (mostly email)</FONT></B> </TD>
<TD></TD>
<TD></TD>
<TD></TD></TR>
<TR>
<TD>Messages with multiple parts</TD>
<TD></TD>
<TD></TD>
<TD>multipart/mixed</TD></TR>
<TR>
<TD>Messages with multiple, alternative parts</TD>
<TD></TD>
<TD></TD>
<TD>multipart/alternative </TD></TR>
<TR>
<TD>Message with multiple, related parts </TD>
<TD></TD>
<TD></TD>
<TD>multipart/related</TD></TR>
<TR>
<TD>Multiple parts are digests</TD>
<TD></TD>
<TD></TD>
<TD>multipart/digest</TD></TR>
<TR>
<TD>For reporting of email status (admin.)</TD>
<TD></TD>
<TD></TD>
<TD>multipart/report </TD></TR>
<TR>
<TD>Order of parts does not matter</TD>
<TD></TD>
<TD></TD>
<TD>multipart/parallel</TD></TR>
<TR>
<TD>Macintosh file data</TD>
<TD></TD>
<TD></TD>
<TD>multipart/appledouble</TD></TR>
<TR>
<TD>Aggregate messages; descriptor as header</TD>
<TD></TD>
<TD></TD>
<TD>multipart/header-set </TD></TR>
<TR>
<TD>Container for voice-mail </TD>
<TD></TD>
<TD></TD>
<TD>multipart/voice-message</TD></TR>
<TR>
<TD>HTML FORM data (see Ch. 9 and App. B)</TD>
<TD></TD>
<TD></TD>
<TD>multipart/form-data</TD></TR>
<TR>
<TD>Infinite multiparts - See Chapter 9 (<I>Netscape</I>) </TD>
<TD></TD>
<TD></TD>
<TD>multipart/x-mixed-replace </TD></TR>
<TR>
<TD></TD>
<TD></TD>
<TD></TD>
<TD></TD></TR>
<TR>
<TD><B><FONT size=4><A >Message</A> Types (mostly email)</FONT></B> </TD>
<TD></TD>
<TD></TD>
<TD></TD></TR>
<TR>
<TD>MIME message</TD>
<TD></TD>
<TD></TD>
<TD>message/rfc822</TD></TR>
<TR>
<TD>Partial message</TD>
<TD></TD>
<TD></TD>
<TD>message/partial</TD></TR>
<TR>
<TD>Message containing external references</TD>
<TD></TD>
<TD></TD>
<TD>message/external-body </TD></TR>
<TR>
<TD>Message containing USENET news</TD>
<TD></TD>
<TD></TD>
<TD>message/news</TD></TR>
<TR>
<TD>HTTP message </TD>
<TD></TD>
<TD></TD>
<TD>message/http</TD></TR>
<TR>
<TD></TD>
<TD></TD>
<TD></TD>
<TD></TD></TR>
<TR>
<TD><B><FONT size=4><A >2D/3D</A> Data/Virtual Reality Types</FONT></B> </TD>
<TD></TD>
<TD></TD>
<TD></TD></TR>
<TR>
<TD>VRML data file</TD>
<TD>wrl vrml</TD>
<TD></TD>
<TD>x-world/x-vrml 
<P>(changing to model/vrml) </P></TD></TR>
<TR>
<TD>WIRL - VRML data (<I>VREAM</I>)</TD>
<TD>vrw </TD>
<TD></TD>
<TD>x-world/x-vream</TD></TR>
<TR>
<TD>Play3D 3d scene data (<I>Play3D</I>)</TD>
<TD>p3d </TD>
<TD></TD>
<TD>application/x-p3d </TD></TR>
<TR>
<TD>Viscape Interactive 3d world data (<I>Superscape</I>) </TD>
<TD>svr</TD>
<TD></TD>
<TD>x-world/x-svr </TD></TR>
<TR>
<TD>WebActive 3d data (<I>Plastic</I> <I>Thought</I>) </TD>
<TD>wvr</TD>
<TD></TD>
<TD>x-world/x-wvr </TD></TR>
<TR>
<TD>QuickDraw3D scene data (<I>Apple</I>)</TD>
<TD>3dmf</TD>
<TD></TD>
<TD>x-world/x-3dmf </TD></TR>
<TR>
<TD></TD>
<TD></TD>