﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-nighTuner &amp; Yuyu's Space-文章分类-Microsoft Windows</title><link>http://www.blogjava.net/nighTuner/category/1027.html</link><description /><language>zh-cn</language><lastBuildDate>Fri, 02 Mar 2007 05:05:22 GMT</lastBuildDate><pubDate>Fri, 02 Mar 2007 05:05:22 GMT</pubDate><ttl>60</ttl><item><title>Step-by-Step Guide to Remote OS Installation</title><link>http://www.blogjava.net/nighTuner/articles/3674.html</link><dc:creator>nighTuner</dc:creator><author>nighTuner</author><pubDate>Sat, 23 Apr 2005 23:35:00 GMT</pubDate><guid>http://www.blogjava.net/nighTuner/articles/3674.html</guid><wfw:comment>http://www.blogjava.net/nighTuner/comments/3674.html</wfw:comment><comments>http://www.blogjava.net/nighTuner/articles/3674.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/nighTuner/comments/commentRss/3674.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/nighTuner/services/trackbacks/3674.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: IntroductionOne of the most challenging and costly functions performed by IT staff today is deploying a new operating system to client computers on a network. Remote OS Installation was created to e...&nbsp;&nbsp;<a href='http://www.blogjava.net/nighTuner/articles/3674.html'>阅读全文</a><img src ="http://www.blogjava.net/nighTuner/aggbug/3674.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nighTuner/" target="_blank">nighTuner</a> 2005-04-24 07:35 <a href="http://www.blogjava.net/nighTuner/articles/3674.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>安装群集服务的渐进指南（转载）</title><link>http://www.blogjava.net/nighTuner/articles/3453.html</link><dc:creator>nighTuner</dc:creator><author>nighTuner</author><pubDate>Tue, 19 Apr 2005 04:01:00 GMT</pubDate><guid>http://www.blogjava.net/nighTuner/articles/3453.html</guid><wfw:comment>http://www.blogjava.net/nighTuner/comments/3453.html</wfw:comment><comments>http://www.blogjava.net/nighTuner/articles/3453.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/nighTuner/comments/commentRss/3453.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/nighTuner/services/trackbacks/3453.html</trackback:ping><description><![CDATA[<SPAN class=f14>　　该渐进指南提供了，在运行着Windows 2000 Advanced Server和Windows 2000 DataCenter Server操作系统的服务器上，安装群集服务的说明。该指南描述了在群集节点上，安装群集服务的过程。它的作用不是解释如何安装群集应用程序。而是指导如何安装典型的、两节点的群集本身。 <BR><BR><B>内容导读： <BR></B><BR>　　· 介绍 <BR><BR>　　· 群集服务安装的核对表 <BR><BR>　　· 群集安装 <BR><BR>　　· 安装群集服务软件 <BR><BR>　　· 检验安装 <BR><BR>　　· 附录：SCSI驱动器的安装 <BR><BR><B>介绍 </B><BR><BR>　　群集服务器是一组独立的服务器，运行群集服务，并象单个系统一样运作。通过将运行着Windows 2000 Advanced Server或Windows 2000 DataCenter Server的服务器编组，可组成群集服务器，从而对资源和应用程序提供了高可靠性的、可扩展性和可管理性。 <BR><BR>　　群集服务器的目的是，在出故障或断电的情况下，保证客户对应用程序和资源的访问。如果群集里的某服务器由于故障或维护的缘故，不可用，资源和应用程序将移到其它可用的群集节点上。 <BR><BR>　　对于群集系统，常使用高可用性，而不是容错性，这是由于容错技术提供了高度的恢复能力。容错服务器通常使用高度的硬件冗余，加上特定的软件，对任意单个的硬件或软件故障，提供了近于即时的恢复功能。这些解决方案的成本大大高于群集解决方案。这是因为前者要提供多余的硬件，并处于空闲状态，等待故障的出现。容错服务器主要用于支持高品质、高速处理的场合，如票据交换所、自动柜员机（ATM）或股票交易。 <BR><BR>　　群集服务不保证不停顿的操作，它为大多数执行关键任务应用程序提供了足够的可靠性。群集服务可监视应用程序和资源，并自动将多数故障状态识别和恢复出来。使用群集，可以为管理工作负荷提供更大的柔性，并提高整个系统的可用性。 <BR><BR><B>群集服务的好处有：</B> <BR><BR>　　· 高可用性：使用群集服务，资源的所有权，如磁盘驱动器和IP地址将自动地从有故障的服务器上，转到可用的服务器上。当群集中的系统或应用程序出现故障时，群集软件将在可用的服务器上，重启失效的应用程序，或将失效节点上的工作，分配到剩余的节点上。结果是，用户只是觉得服务暂时停顿了一下。 <BR><BR>　　· 修复返回：当失效的服务器连回来时，群集服务将自动在群集中平衡负荷。 <BR><BR>　　· 易管理性：可以使用群集管理器来管理群集，（如同在同一个群集中），并管理应用程序（就象它们运行在同一个服务器上）。可以通过拖放群集对象，在群集里的不同服务器移动应用程序。也可以通过同样的方式移动数据。可以通过这种方式来手工地平衡服务器负荷，卸载服务器，从而方便地进行维护。可以从网络的任意地方的节点和资源处，监视群集的状态。 <BR><BR>　　· 可扩展性：群集服务可进行调整，以满足不断增长的需求。当群集的整体负荷超过群集的实际能力时，可以添加额外的节点。 <BR><BR>　　针对在运行着Windows 2000 Advanced Server，和Windows 2000 DataCenter Server的服务器的情况，本文提供了安装群集服务的说明。该指南描述了在群集节点上，安装群集服务的过程。它的作用不是解释如何安装群集应用程序。而是指导如何安装典型的、两节点的群集本身。 <BR><BR>群集服务器安装核对表 <BR><BR>　　该核对表帮助你做好安装的准备。在核对表之后是渐进指南。 <BR><BR><B>软件要求 </B><BR><BR>　　· 在群集里的所有计算机上，都安装了Microsoft Windows 2000 Advanced Server或Windows 2000 DataCenter Server。 <BR><BR>　　· 有某种名称解析手段，如域名系统（DNS），Windows互连网命名系统（WINS），HOSTS，等。 <BR><BR>　　· 建议安装允许进行远程的群集管理的终端服务器。 <BR><STRONG>硬件要求 <BR><BR></STRONG>　　· 群集服务节点的硬件，必须满足Windows 2000 Advanced Server或Windows 2000 DataCenter Server的硬件要求。这些要求可在产品兼容性查找页面找到。 <BR><BR>　　· 群集硬件必须是在群集服务硬件兼容性列表里的（HCL）。到Windows 硬件兼容性列表中，查询群集，就可以找到最新的群集服务HCL。 <BR><BR>　　· 两台满足HCL的计算机，分别具有如下配置： <BR><BR>　　· 有所安装的Windows 2000 Advanced Server或Windows 2000 DataCenter Server的启动盘。该启动盘不能位于下面所描述的共享存储总线上。 <BR><BR>　　· 共享的磁盘有独立的PCI存储适配器（SCSI或光纤）。启动盘适配器除外。 <BR><BR>　　· 群集里的每台计算机有两块PCI网络适配器。 <BR><BR>　　· 有HCL兼容的外部存储单元，它跟所有的计算机相连。它被作为群集磁盘使用。建议使用独立磁盘冗余阵列（RAID）。 <BR><BR>　　· 用存储线缆，将共享设备连接到所有的计算机。可参考制造商的指南，配置存储设备。如果使用了SCSI总线，参见附录，查看额外的信息。 <BR><BR>　　· 对于所有节点的所有硬件，每个插槽，每个卡，都应该是一样的。这将简化配置，消除潜在的兼容性问题。 <BR><BR><B>网络要求 </B><BR><BR>　　· 唯一的NetBIOS群集名。 <BR><BR>　　· 五个独立的、静态的IP地址：两个用于内部网的网络适配器，两个用于外接公众网的网络适配器，一个用于群集本身。 <BR><BR>　　· 一个群集服务的域名用户帐号（所有节点必须是同一个域的成员）。 <BR><BR>　　· 每个节点应该有两个网络适配器，一个用于外接公众网，另一个用于点对点的群集内部网。如果只使用一块网络适配器完成这两种连接，这种配置是不被支持的。任何独立的内部网适配器都要求是HCL兼容的。 <BR><BR><B>共享磁盘要求：</B> <BR><BR>　　· 所有的共享磁盘，包括定额磁盘，都必须跟共享总线保持物理连接。 <BR><BR>　　· 可以从所有的节点上，检查磁盘是否接到了共享总线上。可在主机适配器安装层次上，对此进行检测。请参考制造商的文档，了解具体适配器的用法。 <BR><BR>　　· 必须对SCSI设备指定独立的SISC识别号，并按照相应的制造商的使用说明，完成相应的步骤。参见附录，了解关于安装和配置SCSI设备的信息。 <BR><BR>　　· 将所有的共享磁盘都设置为基本（不是动态的）。 <BR><BR>　　· 将所有的磁盘分区都格式化为NTFS。 <BR><BR>　　· 建议对所有的磁盘，都使用容错的RAID配置（这不是强制要求）。这里的关键是容错RAID配置-不能是无奇偶校验的阵列集。 <BR><BR><B>安装群集</B> <BR><BR><B>安装概要 </B><BR><BR>　　在安装过程中，一些节点将要关机，而另一些节点将会重启。这些步骤是必要的，保证连接到共享总线上的磁盘里的数据，不会丢失或被破坏。这样，可以保证在某个磁盘没有被群集软件所保护时，不会同时有多个节点对它进行写操作。 <BR><BR>　　使用下面的表一，确定每步应该对哪个节点或存储设备授权。 <BR><BR>　　该指南中的步骤是针对两节点的群集的。然而，如果要安装超过两个节点的群集，使用节点2所在列里的信息，确定其它节点的必要的状态。 <BR><BR>表 1. 群集安装的上电顺序 
<P></P>
<P align=center><IMG height=464 src="http://soft.yesky.com/imagesnew/hardware/1028/Capture2.jpg" width=420 border=0></P>
<P><BR>　　在安装群集服务软件前，必须采取一些步骤。这些步骤是： <BR><BR>　　· 在每个节点上安装Windows 2000 Advanced Server或Windows 2000 DataCenter Server。 <BR><BR>　　· 设置网络。 <BR><BR>　　· 设置磁盘。<BR><BR>　　在对首节点安装群集服务前，在每个群集节点上进行这些步骤。 <BR><BR>　　为在基于Windows 2000的服务器上配置群集服务，你的帐号在每个节点上，都必须具有管理员权限。所有节点都必须是成员服务器，或者所有的节点是同一个域里的域控制器。在群集中，不允许一部分是域成员，一部分是域控制器。<BR><STRONG>安装Windows 2000操作系统 <BR><BR></STRONG>　　请参考Windows 2000操作系统包里附带的文档，在群集里的每个节点上安装操作系统。 <BR><BR>　　该渐进指南使用了特定的命名结构，它源于"serversteps.asp"中的Windows 2000服务器的通用基础结构配置的渐进指南。当然，读者可以使用任意命名。 <BR><BR>　　在安装群集服务之前，必须以管理员身份登录。 <BR><BR><B>安装网络 </B><BR><BR>　　注：在这一部分，要对所有共享存储设备断电，然后对所有节点上电。在至少有一个节点安装好群集服务，并保持在线之前，不要同时让多个节点同时访问共享存储设备。 <BR><BR>　　每个群集节点都至少需要两个网络适配器-一个连接公众网，一个连接内部网（它只包含了群集节点）。 <BR><BR>　　内部网适配器建立点对点的通信、群集状态信号和群集管理。每个节点的公众网适配器连接该群集到公众网上，并在此驻留客户。 <BR><BR>　　检查所有的网络连接是否正确，看内部网适配器是否只跟内部网适配器建立连接，公众网适配器是否连接到公众网上。这些连接如下面图1所示。在执行共享文件安装前，在每个群集节点上执行这些步骤。 </P>
<P></P>
<P align=center><IMG height=249 src="http://soft.yesky.com/imagesnew/hardware/1028/image003.gif" width=270 border=0></P>
<P><BR><B>配置内部网络适配器 </B><BR><BR>　　在群集里的首节点上执行这些步骤 <BR><BR>　　· 右键单击我的网络位置，并单击属性。 <BR><BR>　　· 右键单击本地连接2图标。 <BR><BR>注：哪个网络适配器是内部的，哪个是外部的，取决于布线。在本文中，第一个网络适配器（局域连接）是连接到公众网上的，第二个连接（局域连接2）是连接到内部网上的。在你的网络中，可能不是这样。 <BR><BR>　　· 单击状态。局域连接2状态窗口将显示该连接状态，以及连接速度。如果窗口显示网络连接断开，检查线缆和连接，在继续进行前，解决该问题。单击关闭。 <BR><BR>　　· 右键单击局域连接2，单击属性，单击配置。 <BR><BR>　　· 单击高级。将显示如下面图2所示窗口。 <BR><BR>　　· 应该将内部网网络适配器的速度设置为网络的实际速度，而不是缺省选择的速度。从下拉列表中选择网络速度。不要使用速度的自动选择设置。一些适配器在确定网速时要掉包。为设定网络适配器的速度，单击适当的选项，如媒体类型或速度。 </P>
<P align=center><IMG height=212 src="http://soft.yesky.com/imagesnew/hardware/1028/image004.gif" width=325 border=0></P>
<P><BR>　　· 群集里的所有网络适配器都连接到同一个网上，应该具有同样的配置，使用同样的双工模式、流量控制、媒体类型等。即使硬件不同，这些设置也要保持一致。 <BR><BR>　　注：我们强烈建议在整个群集网络里，使用同样的网络适配器。 <BR><BR>　　· 单击传输控制协议/互连协议（TCP/IP）。 <BR><BR>　　· 单击属性。单击使用下列IP地址单选按钮，并键入下列地址：10.1.1.1。（第二个节点使用10.1.1.2）。 <BR><BR>　　· 键入子网掩码255.0.0.0。 <BR><BR>　　· 单击高级单选按钮，并选择WINS标签。选择禁止通过TCP/IP使用NetBIOS。单击确定，返回上一个菜单。这个步骤只用于内部网的网络适配器。 <BR><BR>窗口外观应该如下面图3所示。 </P>
<P align=center><IMG height=277 src="http://soft.yesky.com/imagesnew/hardware/1028/image005.gif" width=270 border=0></P>
<P align=left><STRONG>配置公众网网络适配器 <BR><BR></STRONG>　　注：如果有DHCP服务器，那么，公众网的网络适配器的IP地址可自动获得，这不是群集节点的推荐使用方式。我们强烈建议，为群集节点里的所有的网络适配器配置静态的IP地址（对内部网和公众网的适配器都是如此）。如果IP地址时通过DHCP得到的，那么，如果DHCP服务器关机时，就无法访问群集节点。如果一定要对公众网适配器使用DHCP，就要使用长租期，保证即使DHCP暂时失效，动态分配的地址还会保持有效。在任何情况下，要为内部网络连接分配静态的IP地址。记住，对于一个子网，群集服务只能识别一个网络接口。 <BR><BR><B>重命名局域网络图标 </B><BR><BR>　　为明确起见，我们建议改变网络连接的名称。例如，可以将局域连接（2）改为内部群集连接。这个名称有助于区分网络，并正确地指定其角色。 <BR><BR>　　1. 右键单击局域连接2图标 <BR><BR>　　2. 单击重命名。 <BR><BR>　　3. 在文本框中键入内部群集连接并按回车。 <BR><BR>　　4. 重复1-3步，并将公众网适配器重命名为公众群集连接。 </P>
<P></P>
<P align=center><IMG height=167 src="http://soft.yesky.com/imagesnew/hardware/1028/image006.gif" width=300 border=0></P>
<P><BR>　　5. 重命名图标应该如上面图4所示。关闭网络和拨号连接窗口。当其它群集服务器在线时，该新连接名将自动复制到这些群集服务器上。 <BR><BR><B>检查连接和名字解析 </B><BR><BR>　　为检查内部网和公众网是否通信正常，对每个节点处的每个网络适配器执行下面的步骤。首先需要知道群集里的每个网络适配器的IP地址。如果不知道该信息，可使用在每个节点里的ipconfig命令，获取该信息。 <BR><BR>　　1. 单击开始，单击运行，并在文本框中键入cmd。单击确定。 <BR><BR>　　2. 键入ipconfig /all并按回车。将会在该机器上，显示所有的网络适配器的IP信息。 <BR><BR>　　3. 如果在屏幕上没有命令行提示，那么，单击开始，单击运行，并在文本框中键入cmd。单击确定。 <BR><BR>　　4. 键入ping ipaddress，这里的ipaddress时在其它节点里的相应的网络适配器的IP地址。例如，假设IP地址如下所示： </P>
<P align=center><IMG height=133 src="http://soft.yesky.com/imagesnew/hardware/1028/Capture.jpg" width=326 border=0></P>
<P><BR>　　在这个例子里，需要并从节点1键入ping 172.16.12.14和 ping 10.1.1.2，并且在节点2键入ping 172.16.12.12和ping 10.1.1.1。 <BR><BR>　　为检验名字解析，使用节点的机器名而不是IP号，从客户端ping每个节点。例如，为检验群集首节点的名字解析，可从任意客户端键入ping hq-res-dc01。 <BR><BR>　　群集里的所有节点都必须是同一个域里的成员，并能够访问域控制器和DNS服务器。可以将它们配置为域控制器或成员服务器。如果决定将某节点配置为域控制器，那么，需要把同一个域里的其它所有节点也配置为域控制器。在本文档中，所有节点都配置为域控制器。 <BR><BR>　　注：参看本文档后面的相关链接，链接到额外的Windows 2000文档，它将有助于理解和配置域控制器、DNS、DHCP。 <BR><BR>　　1. 右键单击我的电脑，并单击属性。 <BR><BR>　　2. 单击网络标识。系统属性对话框将显示完整的计算机名称和域。在我们的例子中，域名是reskit.com。 <BR><BR>　　3. 如果使用成员服务器，并将它加入到一个域中。这时，可以这样做：单击属性，并按屏幕上显示的（关于如何加入到一个域中）说明去做。 <BR><BR>　　4. 关闭系统属性和我的电脑窗口。<BR><STRONG>设置群集用户帐号 <BR><BR></STRONG>　　群集服务要求有域用户帐号，群集服务可以在在它下面运行。在安装群集服务前，必须先生成该用户帐号，这是由于安装需要用户名和口令。该用户帐号不应该属于该域里的用户。 <BR><BR>　　1. 单击开始，指向程序，指向管理工具，并单击活动目录用户和计算机。 <BR><BR>　　2. 单击+号，展开Reskit.com（如果此前它没有被展开的话）。 <BR><BR>　　3. 单击用户。 <BR><BR>　　4. 右键单击用户，指向新建，并单击用户。 <BR><BR>　　5. 键入群集名称，如下面图5所示，并单击下一步。 </P>
<P></P>
<P align=center><IMG height=244 src="http://soft.yesky.com/imagesnew/hardware/1028/image007.gif" width=268 border=0></P>
<P><BR>　　6. 将口令设置设为，用户不能修改口令并且口令永远不过期。单击下一步，然后单击确定，创建该用户。 <BR><BR>　　注：如果你的管理安全策略，不允许口令永远不过期。那么，在口令过期前，必须更改口令，并刷新组服务设置。 <BR><BR>　　7. 右键单击活动目录用户和计算机插件的左边窗格里的群集。在上下文菜单中，选择属性。 <BR><BR>　　8. 单击添加成员到群集。 <BR><BR>　　9. 单击管理员并单击确定。这将使新用户在该计算机上，有管理员权限。 <BR><BR>　　10. 关闭活动目录用户和计算机插件。 <BR><BR><B>设置共享磁盘 </B><BR><BR>　　<B>警告：</B>在其它节点启动操作系统前，要确保在一个节点上安装并运行了Windows 2000 Advanced Server或Windows 2000 DataCenter Server，以及群集服务。如果在至少有一个节点，安装、配置和运行了群集服务前，启动了其它节点上的操作系统，那么，群集磁盘将可能受到破坏。 <BR><BR>　　为继续进行，对所有的节点断电。对共享存储设备上电，然后对节点一上电。 <BR><BR><B>关于定额磁盘 </B><BR><BR>　　定额磁盘是用来存储群集配置数据库的检测点和日志文件，以帮管理群集。对于定额磁盘，有如下建议： <BR><BR>　　· 创建一个小分区[至少有50兆用于定额磁盘。建议定额磁盘为500兆]。 <BR><BR>　　· 将一独立的磁盘作为定额资源。由于定额磁盘的故障，将导致整个群集失效，强烈建议使用RAID磁盘阵列。 <BR><BR>　　在群集服务安装过程中，必须为定额磁盘提供驱动器标号。在我们例子里，使用的是Q。 <BR><BR><B>配置共享磁盘 </B><BR><BR>　　1. 右键单击我的电脑，单击管理，并单击存储。 <BR><BR>　　2. 双击磁盘管理。 <BR><BR>　　3. 检验所有的共享磁盘是否都格式化为NTFS，并指定为基本。如果连接新的驱动器，签名和升级磁盘向导将自动启动。如果是这样，单击下一步，完成该向导。该向导将磁盘设置为动态。为将磁盘重新设置为基本，右键单击磁盘#（这里的#代表所使用的磁盘），并单击还原为基本磁盘。 <BR><BR>　　4. 右键单击未分配的磁盘空间。 <BR><BR>　　5. 单击创建分区。 <BR><BR>　　6. 启动创建分区向导。单击下一步两次。 <BR><BR>　　7. 以MB为单位，输入期望的分区大小。单击下一步。 <BR><BR>　　8. 单击下一步，接受指定的缺省驱动器字母标号。 <BR><BR>　　9. 单击下一步，格式化并创建分区。 <BR><STRONG>指定驱动器字母标号 <BR><BR></STRONG>　　在设置了总线、磁盘和分区后，必须给每个群集磁盘的每个分区，指定驱动器字母标号。 <BR><BR>　　注：安装位置是文件系统的一个特性，它允许使用现有的目录，来安装文件系统，而不需要指定驱动器字母标识。在群集中，不支持安装位置。任意作为群集资源的外部磁盘，都必须以NTFS进行分区，并必须为其指定驱动器字母标识。 <BR><BR>　　1. 右键单击期望的分区，并选择改变驱动器字母标识和路径。 <BR><BR>　　2. 选择新驱动器字母标识。 <BR><BR>　　3. 对每个共享驱动器，重复步骤1和2。 </P>
<P></P>
<P align=center><IMG height=263 src="http://soft.yesky.com/imagesnew/hardware/1028/image008.gif" width=350 border=0></P>
<P><BR>　　4. 在完成后，计算机管理窗口外观应该如图6所示。现在，关闭计算机管理窗口。 <BR><BR><B>检验磁盘访问和功能 </B><BR><BR>　　1. 单击开始，单击程序，单击附件，并选择记事本。 <BR><BR>　　2. 在记事本中输入一些词，并使用文件/保存为命令，将它保存为名为test.txt的测试文件。关闭记事本。 <BR><BR>　　3. 双击我的文档图标。 <BR><BR>　　4. 右键单击test.txt，并单击拷贝。 <BR><BR>　　5. 关闭窗口。 <BR><BR>　　6. 双击我的电脑。 <BR><BR>　　7. 双击共享驱动器分区。 <BR><BR>　　8. 单击编辑并单击粘贴。 <BR><BR>　　9. 现在，在共享磁盘中有一个该文件的拷贝。 <BR><BR>　　10. 在共享磁盘中，双击test.txt。关闭该文件。 <BR><BR>　　11. 加亮显示该文件，并按删除键，将它从群集磁盘中删除。 <BR><BR>　　对所有的群集磁盘重复该过程，检验是否可以从首节点处访问它们。 <BR><BR>　　这时，对首节点断电，对第二个节点上电，重复上面的检验磁盘访问和功能的步骤。对其它节点作再次重复。当完成检验过程，确定所有节点都可对磁盘读写，则关闭除首节点外的所有节点，并继续该指南。<BR><STRONG>安装群集服务软件 <BR><BR>配置首节点 </STRONG><BR><BR>　　注：在首节点上进行群集服务的安装过程中，所有的其它节点都应关闭，或在Windows 2000重启前关闭。应该对所有的共享存储设备加电。 <BR><BR>　　在安装的第一个阶段，必须提供所有的初始配置信息，以创建群集。这可以通过群集服务配置向导来完成。 <BR><BR>　　1. 单击开始，单击设置，并单击控制面板。 <BR><BR>　　2. 双击添加/删除程序。 <BR><BR>　　3. 双击添加/删除Windows组件。 <BR><BR>　　4. 选择群集服务。单击下一步。 <BR><BR>　　5. 群集服务文件位于Windows 2000 Advanced Server或Windows 2000 DataCenter ServerCD-ROM里。输入：x:\i386（这里的x是你的CD-ROM的驱动器字母标识）。如果Windows 2000是从网络上安装的，则输入适当的网络路径。（如果显示Windows 2000安装屏幕，关闭它。）单击确定。 <BR><BR>　　6. 单击下一步。 <BR><BR>　　7. 将显示下面图7所示窗口。单击我理解，接受安装条件-所用硬件在硬件兼容列表中都可找到，它们都支持群集服务。 </P>
<P></P>
<P align=center><IMG height=177 src="http://soft.yesky.com/imagesnew/hardware/1028/image009.gif" width=345 border=0></P>
<P><BR>　　8. 由于这是该群集中的首节点，所以必须创建群集本身。选择群集中的首节点，如下面图8所示，然后单击下一步。 </P>
<P align=center><IMG height=177 src="http://soft.yesky.com/imagesnew/hardware/1028/image010.gif" width=345 border=0></P>
<P><BR>　　9. 输入群集名称（最多15个字符），并单击下一步。（在我们的例子里，该群集被命名为MyCluster。） <BR><BR>　　键入群集服务帐号的用户名，它是在安装前创建的。（在我们的例子里，该用户名是cluster。）不输入口令，键入域名，并单击下一步。 <BR><BR>　　注：通常要为该用户帐号提供安全口令。 <BR><BR>　　在这里，群集服务配置向导将会使用户帐号和口令生效。 <BR><BR>　　10. 单击下一步。 <BR><BR>　　配置群集磁盘。 <BR><BR>　　注：缺省情况下，所有的SCSI磁盘都不是位于同一总线，系统磁盘将会出现在被管理磁盘列表中。因此，如果有某节点有多个SCSI总线，被列出的一些磁盘将不是被用于共享存储（如，作为内部SCSI驱动器）。这些磁盘应该从被管理磁盘列表中删除。 <BR><BR>　　11. 添加/删除被管理的磁盘列表对话框如图9所示，它指定了哪个共享SCSI总线可用于群集服务。根据需要添加/删除磁盘，然后单击下一步。 </P>
<P align=center><IMG height=220 src="http://soft.yesky.com/imagesnew/hardware/1028/image011.gif" width=325 border=0></P>
<P><BR>　　请注意，由于逻辑驱动器F：和G：都位于一个硬盘上，群集服务将它们看作是一个资源。缺省情况下，第一个磁盘的第一个分区是作为定额资源。改变它，将先前所创建的小分区作为定额磁盘（在我们的例子里，是驱动器Q）。单击下一步。 <BR><BR>　　<B>注：</B>在生成群集场景时，必须为群集通信使用两个以上（含两个）的内部网，避免单点故障。群集服务可在群集状态信号和群集管理方面，使用内部网。跟使用公众网相比，这有更高的安全性。也可以使用公众网进行群集管理，或者可以同时使用内部和公众通信。在任何情况下，确保至少有两个网络用于群集通信，因为使用单个网络进行点对点的通信，可能会存在着单点失效的故障。我们建议：使用多个网络，在节点间配置至少一个内部网，其它连接通过公众网。如果使用两个以上（含两个）的内部网，确保它们分别使用不同的子网，这是因为群集服务对于每个子网，只能识别一个网络接口。<BR>　　本文档是基于这样的假设：只使用了两个网络。这将向你说明如何配置这些网络为一个混合的、内部的网络。 <BR><BR>　　群集服务配置向导里给出的网络顺序是可变的。在本例里，首先给出公众网。 <BR><BR>　　12. 在配置群集网络对话框中，单击下一步。 <BR><BR>　　13. 确保网络名称和IP地址跟公众网里的网络接口一致。 <BR><BR>　　14. 选中该网络可用于群集复选框。 <BR><BR>　　15. 选中所有的通信（混合网络）选项，如下面图10所示。 <BR><BR>　　16. 单击下一步。 </P>
<P></P>
<P align=center><IMG height=221 src="http://soft.yesky.com/imagesnew/hardware/1028/image012.gif" width=300 border=0></P>
<P><BR>　　17. 下一个对话框如图11中所示，是用来配置内部网。确保网络名称和IP地址跟内部网的网络接口一致。 <BR><BR>　　18. 选中该网络可用于群集服务复选框。 <BR><BR>　　19. 选择只用于内部群集通信选项。 </P>
<P align=center><IMG height=250 src="http://soft.yesky.com/imagesnew/hardware/1028/image013.gif" width=320 border=0></P>
<P><BR>　　20. 单击下一步 <BR><BR>　　21. 在本例子中，两个网络都以这样的方式设置：它们都可以用于内部群集通信。在下一步对话框中，可修改使用网络的顺序。由于内部群集连接是节点间的直接连接，它位于列表的顶部。在正常的操作中，该连接将用于群集通信。如果内部网络连接失效，群集服务将自动切换到表里的下一个网络，在本例里，是公众群集连接。确保表里的第一个连接是内部群集连接，并单击下一步。重要提示：设置连接的顺序，把内部群集连接排在表中的第一位。 <BR><BR>　　22. 输入唯一的群集IP地址（172.16.12.20）和子网掩码（255.255.252.0），并单击下一步。 </P>
<P align=center><IMG height=218 src="http://soft.yesky.com/imagesnew/hardware/1028/image014.gif" width=320 border=0></P>
<P><BR>　　23. 单击完成，完成首节点的群集配置。 <BR><BR>　　通过拷贝所需要的文件，群集服务安装向导将完成首节点的安装过程，从而完成群集服务的安装。当完成文件拷贝后，将生成群集服务注册入口，在定额资源上创建日志文件，并在首节点上启动群集服务。 <BR><BR>　　将出现一对话框，告诉你群集服务已成功启动。 <BR><BR>　　24. 单击确定。 <BR><BR>　　25. 关闭添加/删除程序窗口。 <BR><BR><B>使群集安装生效 </B><BR><BR>　　使用群集管理插件，使首节点上的群集服务安装生效。 <BR><BR>　　单击开始，单击程序，单击管理工具，并单击群集管理器。 </P>
<P align=center><IMG height=217 src="http://soft.yesky.com/imagesnew/hardware/1028/image015.gif" width=340 border=0></P>
<P><BR>　　如果你的插件窗口跟上面图13类似，那么，已经在首节点上成功地安装了群集服务。现在准备在第二个节点上安装群集服务。 <BR><STRONG>配置第二个节点 <BR><BR></STRONG>　　<B>注：</B>在这一部分，当对第二个节点上电的时候，让首节点和所有的共享磁盘都保持在上电状态。 <BR><BR>　　在第二个节点上安装群集服务，所花时间要比在首节点上安装少。基于首节点的配置，在第二个节点上，安装配置群集服务网络设置。 <BR><BR>　　象在首节点上安装群集服务一样，对第二个节点开始进行安装。在安装第二个节点时，必须运行着首节点。 <BR><BR>　　接下来的过程跟在首节点上在安装群集服务大体相同，只有下列的不同之处： <BR><BR>　　1. 在创建或添加群集对话框中，在群集中选择第二个或下一个节点，并单击下一步。 <BR><BR>　　2. 输入前面所创建的群集名称（在本例中，是MyCluster），并单击下一步。 <BR><BR>　　3. 将连接到群集设为未选中。群集服务配置向导将自动提供，在安装首节点时选定 的用户帐号名称。 <BR><BR>　　4. 输入该帐号的口令（如果有的话），并单击下一步。 <BR><BR>　　5. 在下一个对话框中，单击完成，结束配置。 <BR><BR>　　6. 将启动群集服务。单击确定。 <BR><BR>　　7. 关闭添加/删除程序<BR><BR>　　如果要安装额外的节点，重复这些步骤，以便在其它节点上安装群集服务。 <BR><BR><B>检验安装 </B><BR><BR>　　有几种方法，可以用来检验群集安装是否成功。下面给出一个简单方法： <BR><BR>　　1. 单击开始，单击程序，单击管理工具，并单击群集管理器。 <BR><BR>显示的两个节点（图中的HQ-RES-DC01和HQ-RES-DC02）表明，存在群集，而且它在运行。 <BR><BR>　　2. 右键单击对磁盘组1编组，并选中移动选项。该组及其所有的资源将被移到另一个节点。在一小会时间后，磁盘F：和G：都移到了第二个节点上了。如果查看屏幕，将会看到这个移位。关闭群集管理器插件。 <BR><BR>　　恭喜。你已经在所有的节点上完成了群集服务的安装。该群集服务器是完全起作用的。现在，准备安装群集资源，诸如：文件共享、打印机后台打印程序、以及群集觉察服务，如：IIS、消息队列、分布式事务协同、DHCP、WINS，或者群集觉察应用程序，如Exchange或SQL Server。 <BR><BR><B>附录：SCSI驱动器的安装 </B><BR><BR>　　该附录为SCSI驱动器的安装，提供了一个基本的使用说明。如果SCSI硬盘供应商的使用说明，跟这里介绍的相冲突，那么，使用供应商提供的说明。 <BR><BR>　　在硬件要求中列出的SCSI总线，必须在群集服务安装之前配置，这包括： <BR><BR>　　1. 配置SCSI设备。 <BR><BR>　　2. 配置SCSI控制器和硬盘，以便在共享的SCSI总线里正常地工作。 <BR><BR>　　3. 正常地端接总线。对于共享SCSI总线来说，每个总线的末端都必须有一个终端适配器。可以在群集的节点之间，有多个共享的SCSI总线。 <BR><BR>　　除了后续页面的信息外，请参考SCSI设备制造商的文档或SCSI说明，可以向美国国家标准署（ANSI）订购这些资料。ANSI的网站上有一个分类，可在那里找到SCSI的说明。 <BR><BR><B>配置SCSI设备 </B><BR><BR>　　每个在SCSI总线上的设备，都必须有一个唯一的SCSI ID。由于大多数SCSI控制器的缺省值为SCSI ID 7，在配置共享SCSI总线部分时，将会把其中一个控制器的SCSI ID修改为另一个SCSI ID，如SCSI ID 6。如果在该共享总线上有多个磁盘，每个磁盘也都必须要有一个唯一的SCSI ID。 <BR><BR>　　在启动执行初始化时，一些SCSI控制器将会把SCSI总线复位。如果是这样，该总线复位将中断在共享总线上的，其它节点和磁盘之间的，任意数据传输。因此，如果可能的话，要禁止SCSI总线复位。 <BR><BR><B>端接共享SCSI总线 </B><BR><BR>　　如果在SCSI总线的末端有设备的话，就可以将Y线缆连接到该设备上。然后可以将终端适配器接到Y线缆的一个分支上，端接SCSI总线。这种端接方法要求禁止或删除设备的（可能有的）内部终端适配器。 <BR><BR>　　可以将三头连接器连接到特定的设备上。如果该设备位于总线末端，可以用三头连接器来端接总线。这种方法也要求禁止或删除设备的（可能有的）内部终端适配器。 <BR><BR>　　Y线缆和三头连接器都是推荐的端接手段，这是因为，即使在线上没有节点，它们也可以提供端接。 <BR><BR>　　注：任意没有位于共享总线末端的设备，都必须禁止其内部的终端适配器。</P></SPAN><img src ="http://www.blogjava.net/nighTuner/aggbug/3453.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nighTuner/" target="_blank">nighTuner</a> 2005-04-19 12:01 <a href="http://www.blogjava.net/nighTuner/articles/3453.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>内部服务器错误,HTTP 500的一个比较详细的解释</title><link>http://www.blogjava.net/nighTuner/articles/3324.html</link><dc:creator>nighTuner</dc:creator><author>nighTuner</author><pubDate>Fri, 15 Apr 2005 10:24:00 GMT</pubDate><guid>http://www.blogjava.net/nighTuner/articles/3324.html</guid><wfw:comment>http://www.blogjava.net/nighTuner/comments/3324.html</wfw:comment><comments>http://www.blogjava.net/nighTuner/articles/3324.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/nighTuner/comments/commentRss/3324.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/nighTuner/services/trackbacks/3324.html</trackback:ping><description><![CDATA[主要是由于IWAM账号（在我的计算机即是IWAM_MYSERVER账号）的密码错误造成了HTTP 500内部错误。 
<P>在详细分析HTTP500内部错误产生的原因之前，先对IWAM账号进行一下简要的介绍：IWAM账号是安装IIS5时系统自动建立的一个内置账号，主要用于启动进程之外的应用程序的I nternet信息服务。IWAM账号的名字会根据每台计算机NETBIOS名字的不同而有所不同，通用的格式是IWAM_MACHINE，即由“IWAM”前缀、连接线“_ ”加上计算机的NETBIOS名字组成。我的计算机的NETBIOS名字是MYSERVER，因此我的计算机上IWAM账号的名字就是IWAM_MYSERVER，这一点与I IS匿名账号ISUR_MACHINE的命名方式非常相似。 </P>
<P><BR>IWAM账号建立后被Active Directory、IIS metabase数据库和COM+应用程序三方共同使用，账号密码被三方分别保存，并由操作系统负责这三方保存的IWAM密码的同步工作。按常理说，由操作系统负责的工作我们大可放心，不必担心出错，但不知是B UG还是其它什么原因，系统的对IWAM账号的密码同步工作有时会失败，使三方IWAM账号所用密码不统一。当IIS或COM+应用程序使用错误I WAM的密码登录系统，启动IIS Out-Of-Process Pooled Applications时，系统会因密码错误而拒绝这一请求，导致IIS Out-Of-Process Pooled Applications启动失败，也就是我们在ID10004错误事件中看到的“不能运行服务器{3D14228D-FBE1-11D0-995D-00C04FD919C1} ”（这里{3D14228D-FBE1-11D0-995D-00C04FD919C1} 是IIS Out-Of-Process Pooled Applications的KEY），不能转入IIS5应用程序，HTTP 500内部错误就这样产生了。 </P>
<P>知道了导致HTTP 500内部错误的原因，解决起来就比较简单了，那就是人工同步IWAM账号在Active Directory、IIS metabase数据库和COM+应用程序中的密码。 </P>
<P>具体操作分三步,均需要以管理员身份登录计算机以提供足够的操作权限（IWAM账号以IWAM_MYSERVER为例）。 </P>
<P><BR>（一）更改Active Directory中IWAM_MYSERVER账号的密码 </P>
<P>因IWAM账号的密码由系统控制，随机产生，我们并不知道是什么，为完成下面两步的密码同步工作，我们必须将IWAM账号的密码设置为一个我们知道的值。 </P>
<P>1、选择“开始”-&gt;“程序”-&gt;“管理工具”-&gt;"Active Directory用户和计算机"，启动“Active Directory用户和计算机”管理单元。 </P>
<P>2、单击“user”，选中右面的“IWAM_MYSERVER”，右击选择“重设密码(T)...”，在跳出的重设密码对方框中给IWAM_MYSERVER设置新的密码，这儿我们设置成“A boutnt2001”（没有引号的），确定，等待密码修改成功。 </P>
<P><BR>（二）同步IIS metabase中IWAM_MYSERVER账号的密码 </P>
<P>可能因为这项改动太敏感和重要，微软并没有为我们修改IIS metabase中IWAM_MYSERVER账号密码提供一个显式的用户接口，只随IIS5提供了一个管理脚本adsutil.vbs，这个脚本位于C:\inetpub\adm inscripts子目录下（位置可能会因你安装IIS5时设置的不同而有所变动）。 </P>
<P>adsutil.vbs脚本功能强大，参数非常多且用法复杂，这里只提供使用这个脚本修改IWAM_MYSERVER账号密码的方法: </P>
<P>adsutil SET w3svc/WAMUserPass Password </P>
<P>"Password"参数就是要设置的IWAM账号的新的密码。因此我们将IIS metabase中IWAM_MYSERVER账号的密码修改为“Aboutnt2001”的命令就是： </P>
<P>c:\Inetpub\AdminScripts&gt;adsutil SET w3svc/WAMUserPass "Aboutnt2001" </P>
<P>修改成功后，系统会有如下提示： </P>
<P>WAMUserPass: (String) "Aboutnt2001" </P>
<P><BR>（三）同步COM+应用程序所用的IWAM_MYSERVER的密码 </P>
<P>同步COM+应用程序所用的IWAM_MYSERVER的密码，我们有两种方式可以选择:一种是使用组件服务MMC管理单元，另一种是使用IWAM账号同步脚本s ynciwam.vbs。 </P>
<P><BR>1、使用组件服务MMC管理单元 </P>
<P>（1）启动组件服务管理单元：选择“开始”-&gt;“运行”-&gt;“MMC”，启动管理控制台,打开“添加/删除管理单元”对话框,将“组件服务”管理单元添加上。 </P>
<P>（2）找到“组件服务”-&gt;“计算机”-&gt;“我的电脑”-&gt;“COM+应用程序”-&gt;“Out-Of-Process Pooled Applications”，右击“Out-Of-Process Pooled Applications”-&gt;“属性”。 </P>
<P>（3）切换到“Out-Of-Process Pooled Applications”属性对话框的“标志”选项卡。“此应用程序在下列账户下运行”选择中“此用户”会被选中，用户名是“IWAM_MYSERVE R”。这些都是缺省的，不必改动。在下面的“密码”和“确认密码”文本框内输入正确的密码“Aboutnt2001”，确定退出。 </P>
<P>（4）系统如果提示“应用程序被一个以上的外部产品创建。你确定要被这些产品支持吗？”时确定即可。 </P>
<P>（5）如果我们在IIS中将其它一些Web的“应用程序保护”设置为“高（独立的）”,那么这个WEB所使用的COM+应用程序的IWAM账号密码也需要同步。重复（1 ）-（4）步，同步其它相应Out of process application的IWAM账号密码。 </P>
<P><BR>2、使用IWAM账号同步脚本synciwam.vbs </P>
<P>实际上微软已经发现IWAM账号在密码同步方面存在问题，因此在IIS5的管理脚本中单独为IWAM账号密码同步编写了一个脚本synciwam.vbs ，这个脚本位于C:\inetpub\adminscripts子目录下（位置可能会因你安装IIS5时设置的不同而有所变动）。 </P>
<P>synciwam.vbs脚本用法比较简单： </P>
<P>cscript synciwam.vbs [-v|-h] </P>
<P>“-v”参数表示详细显示脚本执行的整个过程(建议使用)，“-h”参数用于显示简单的帮助信息。 </P>
<P><BR>我们要同步IWAM_MYSERVER账号在COM+应用程序中的密码，只需要执行“cscript synciwam.vbs -v”即可，如下： </P>
<P>cscript c:\inetpub\adminscripts\synciwam.vbs -v </P>
<P>Microsoft (R) Windows Script Host Version 5.6 </P>
<P>版权所有(C) Microsoft Corporation 1996-2000。保留所有权利。 </P>
<P><BR>WamUserName:IWAM_MYSERVER </P>
<P>WamUserPass:Aboutnt2001 </P>
<P>IIS Applications Defined: </P>
<P>Name, AppIsolated, Package ID </P>
<P>w3svc, 0, {3D14228C-FBE1-11d0-995D-00C04FD919C1} </P>
<P>Root, 2, </P>
<P>IISHelp, 2, </P>
<P>IISAdmin, 2, </P>
<P>IISSamples, 2, </P>
<P>MSADC, 2, </P>
<P>ROOT, 2, </P>
<P>IISAdmin, 2, </P>
<P>IISHelp, 2, </P>
<P>Root, 2, </P>
<P>Root, 2, </P>
<P><BR>Out of process applications defined: </P>
<P>Count: 1 </P>
<P>{3D14228D-FBE1-11d0-995D-00C04FD919C1} </P>
<P><BR>Updating Applications: </P>
<P>Name: IIS Out-Of-Process Pooled Applications Key: {3D14228D-FBE1-11D0-995D-00C04FD919C1} </P>
<P><BR>从上面脚本的执行情况可以看出，使用synciwam.vbs脚本要比使用组件服务的方法更全面和快捷。它首先从IIS的metabase数据库找到IWA M账号"IWAM_MYSERVER"并取出对应的密码“Aboutnt2001”，然后查找所有已定义的IIS Applications和Out of process applications，并逐一同步每一个Out of process applications应用程序的IWAM账号密码。 </P>
<P>使用synciwam.vbs脚本时，要注意一个问题，那就是在你运行synciwam.vbs之前，必须保证IIS metabase数据库与Active Directory中的IWAM密码已经一致。因为synciwam.vbs脚本是从IIS metabase数据库而不是从Active Directory取得IWAM账号的密码，如果IIS metabase中的密码不正确，那synciwam.vbs取得的密码也会不正确，同步操作执行到“Updating Applications”系统就会报80110414错误，即“找不到应用程序{3D14228D-FBE1-11D0-995D-00C04FD919C1}”。 </P>
<P>好了，到现在为止，IWAM账号在Active Directory、IIS metabase数据库和COM+应用程序三处的密码已经同步成功，你的ASP程序又可以运行了！ </P><img src ="http://www.blogjava.net/nighTuner/aggbug/3324.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nighTuner/" target="_blank">nighTuner</a> 2005-04-15 18:24 <a href="http://www.blogjava.net/nighTuner/articles/3324.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在Word中创建宏来处理格式样式</title><link>http://www.blogjava.net/nighTuner/articles/3256.html</link><dc:creator>nighTuner</dc:creator><author>nighTuner</author><pubDate>Wed, 13 Apr 2005 18:02:00 GMT</pubDate><guid>http://www.blogjava.net/nighTuner/articles/3256.html</guid><wfw:comment>http://www.blogjava.net/nighTuner/comments/3256.html</wfw:comment><comments>http://www.blogjava.net/nighTuner/articles/3256.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/nighTuner/comments/commentRss/3256.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/nighTuner/services/trackbacks/3256.html</trackback:ping><description><![CDATA[<P>您是否对在 Word 文档中同时处理多种不同的格式样式感到厌烦？那么就来了解一下如何创建三个宏以帮助您管理 Word 文档样式。 </P>
<P>我既是作者也是编辑，每个月同事都会发给我几篇具有特殊格式样式的 Microsoft Word 文档，而且似乎每篇文档都有不同的格式样式。“样式”是一种格式类型，用于 Word 文档中的特定内容部分。例如，同事一周内发给我 18 篇需要以某种方式进行样式处理的 Word 文档。这项工作很适合由宏来完成！</P>
<P>本专栏中，我将向您介绍如何创建三个宏以帮助您管理 Word 文档样式。</P>
<P>列出文档样式<BR>要处理文档样式，先要了解文档中存在哪些样式。Word 2002 中的“样式和格式”任务窗格很有用，它列出了一些可用的样式，但有时在单独的文档中列出打开文档的所有样式会更方便。在下面第一个示例中，我将介绍如何创建并运行宏，以列出打开的 Word 文档中所有可用的样式： </P>
<P>启动 Microsoft Word 2002 并打开要列出其样式的文档。 <BR>在“工具”菜单上，指向“宏”，然后单击“宏”。 <BR>在“宏的位置”下拉框中，单击“Normal.dot（共用模板）”。 <BR>在“宏名”框中，键入“ListStyles”，然后单击“创建”。将显示 Microsoft Visual Basic? 编辑器。 <BR>找到以下代码： </P>
<P>Sub ListStyles()<BR>'<BR>' ListStyles Macro<BR>' 宏在 {日期} 由 {姓名} 创建<BR>'</P>
<P>End Sub<BR>&nbsp; <BR>如下所示编辑该代码： </P>
<P>Sub ListStyles()<BR>'<BR>' ListStyles Macro<BR>' 宏在 {日期} 由 {姓名} 创建<BR>'<BR>&nbsp;&nbsp;&nbsp; ' 用途：将活动文档中的所有样式<BR>&nbsp;&nbsp;&nbsp; ' 打印到新 Word 文档中。</P>
<P>&nbsp;&nbsp;&nbsp; Dim strTitle As String<BR>&nbsp;&nbsp;&nbsp; Dim astrStyles() As String<BR>&nbsp;&nbsp;&nbsp; Dim objStyle As Style<BR>&nbsp;&nbsp;&nbsp; Dim objDocument As Word.Document<BR>&nbsp;&nbsp;&nbsp; Dim intCount As Integer<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; ' 获取活动 Word 文档的标题。<BR>&nbsp;&nbsp;&nbsp; strTitle = _<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ActiveDocument.BuiltInDocumentProperties(wdPropertyTitle)<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; intCount = 1<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; ' 将活动文档中的所有样式存储到内存中，<BR>&nbsp;&nbsp;&nbsp; ' 无论样式是否在使用。<BR>&nbsp;&nbsp;&nbsp; For Each objStyle In ActiveDocument.Styles<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ReDim Preserve astrStyles(intCount)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If objStyle.InUse Then<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; astrStyles(intCount) = objStyle &amp; " (使用的样式)"<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Else<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; astrStyles(intCount) = objStyle &amp; " (未使用的样式)"<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; intCount = intCount + 1<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; Next objStyle<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; ' 创建新的 Word 文档报告结果。<BR>&nbsp;&nbsp;&nbsp; Set objDocument = Word.Documents.Add<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; With objDocument.Range<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ' 报告结果。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .InsertAfter "Styles in " &amp; strTitle &amp; ":"<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .InsertParagraphAfter<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .Collapse Direction:=wdCollapseEnd<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; For intCount = 1 To UBound(astrStyles)<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .InsertAfter astrStyles(intCount)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .InsertParagraphAfter<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .Collapse Direction:=wdCollapseEnd<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Next intCount<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; End With<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; MsgBox Prompt:="完成！"<BR>&nbsp;&nbsp;&nbsp; <BR>End Sub<BR>&nbsp; <BR>在“文件”菜单上，单击“保存 Normal”。 <BR>在“文件”菜单上，单击“关闭并返回到 Microsoft Word”。 <BR>确保文档仍然处于打开状态。如果已关闭，请重新打开文档。 <BR>在“工具”菜单上，指向“宏”，然后单击“宏”。 <BR>在宏列表中单击“ListStyles”，然后单击“运行”。将创建一个新的 Word 文档，列出该文档中的所有可用样式。 <BR>注意：如果在尝试运行宏时，系统显示消息说该项目中的宏被禁用，请参阅文章更改宏安全性设置，以获取如何解决这一问题的详细信息。</P>
<P>更改文档样式<BR>我们已经知道了有哪些文档样式可用，现在可以将其中一些样式更改为其他文档样式。在下一个示例中，我将介绍如何创建并运行宏，以更改打开的 Word 文档中的多个文档样式。 </P>
<P>启动 Microsoft Word 2002 并打开要在其中更改样式的文档。 <BR>启动 Microsoft Excel 2002 并创建一个新的 Excel 工作簿。 <BR>在单元格 A1 中，键入要在打开的 Word 文档中更改的样式的名称。然后在单元格 B1 中，键入要更改成的新样式的名称。对每个要更改的样式重复此操作：在 A 列中键入现有样式名称，在 B 列中键入新样式名称。以下是一个示例：</P>
<P><BR>&nbsp; <BR>完成后，保存并关闭 Excel 工作簿。 <BR>返回到 Word。在“工具”菜单上，指向“宏”，然后单击“宏”。&nbsp;&nbsp; <BR>在“宏的位置”列表中，单击“Normal.dot (共用模板)”。 <BR>在“宏名”列表中，键入“ChangeDocumentStyles”，然后单击“创建”。将显示 Visual Basic 编辑器。 <BR>找到以下代码：<BR>&nbsp; <BR>Sub ChangeDocumentStyles()<BR>'<BR>' 更改文档形式的宏<BR>' 宏在 {日期} 由 {姓名} 创建<BR>'</P>
<P>End Sub<BR>&nbsp; <BR>如下所示编辑该代码： </P>
<P>Sub ChangeDocumentStyles()<BR>'<BR>' 更改文档形式的宏<BR>' 宏在 {日期} 由 {姓名} 创建<BR>'<BR>&nbsp;&nbsp;&nbsp; ' 用途：根据在 Microsoft Excel 中创建的样式更改文件<BR>&nbsp;&nbsp;&nbsp; ' 提供的数据更改所有文档样式。 <BR>&nbsp;&nbsp;&nbsp; Dim objFileDlg As Office.FileDialog<BR>&nbsp;&nbsp;&nbsp; Dim xlApp As Excel.Application<BR>&nbsp;&nbsp;&nbsp; Dim objWB As Excel.Workbook<BR>&nbsp;&nbsp;&nbsp; Dim objWS As Excel.Worksheet<BR>&nbsp;&nbsp;&nbsp; Dim objRngOld As Excel.Range<BR>&nbsp;&nbsp;&nbsp; Dim objRngNew As Excel.Range<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; On Error GoTo ChangeDocumentStyles_Err<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; ' 用户指示宏 Excel 样式更改文件所在的位置。<BR>&nbsp;&nbsp;&nbsp; Set objFileDlg = Application.FileDialog(FileDialogType:=msoFileDialogOpen)<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; With objFileDlg<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .AllowMultiSelect = False<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .Title = "选择样式更改文件"<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .Filters.Clear<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .Filters.Add _<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Description:="样式更改文件 (*.xls)", Extensions:="*.xls"<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ' “-1”表明用户在文件对话框中单击了“打开”按钮。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If .Show = -1 Then<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ' 在 Excel 工作簿中打开第一个工作表，并从单元格 A1 开始。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set xlApp = New Excel.Application<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set objWB = xlApp.Workbooks.Open(FileName:=objFileDlg.SelectedItems(1))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set objWS = objWB.Worksheets.Item(1)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set objRngOld = objWS.Range(Cell1:="A1")<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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; Do While Not objRngOld.Value = ""<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; ' 使用活动的 Word 文档。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; With ActiveDocument.Content.Find<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ' 在 A 列中查找样式。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .Style = ActiveDocument.Styles(objRngOld.Value)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ' 替换为 B 列中的样式。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set objRngNew = objRngOld.Offset(ColumnOffset:=1)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .Replacement.Style = ActiveDocument.Styles(objRngNew.Value)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .Execute Replace:=wdReplaceAll<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ' 转到 A 列下一行。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set objRngOld = objRngNew.Offset(RowOffset:=1, ColumnOffset:=-1)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End With<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Loop<BR>&nbsp;&nbsp;&nbsp;&nbsp;&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;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; End With<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>ChangeDocumentStyles_Exit:</P>
<P>&nbsp;&nbsp;&nbsp; ' 任务已完成。<BR>&nbsp;&nbsp;&nbsp; MsgBox Prompt:="完成！"<BR>&nbsp;&nbsp;&nbsp; Exit Sub<BR>&nbsp;&nbsp;&nbsp; <BR>' 如果出现错误，则转到这里。<BR>ChangeDocumentStyles_Err:<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; Select Case Err.Number<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Case 5941 ' 未知样式。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MsgBox Prompt:="找不到要替换的一个或多个样式。" &amp; _<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "检查样式更改工作表 B 列中的样式。" &amp; _<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "程序执行停止。"<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Case 62<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Resume Next<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Case Else ' 未知错误。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MsgBox Prompt:="错误 " &amp; Err.Number &amp; _<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "在 ChangeDocumentStyles 宏中:" &amp; Err.Description<BR>&nbsp;&nbsp;&nbsp; End Select<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; GoTo ChangeDocumentStyles_Exit<BR>&nbsp;&nbsp;&nbsp; <BR>End Sub<BR>&nbsp; <BR>在“工具”菜单上，单击“引用”。将显示“引用 - Normal”对话框。 <BR>在“可使用的引用”列表中，选中“Microsoft Excel 10.0 Object Library”，然后单击“确定”。 <BR>在“文件”菜单上，单击“保存 Normal”。 <BR>在“文件”菜单上，单击“关闭并返回到 Microsoft Word”。 <BR>确保 Word 文档仍处于打开状态。如果已关闭，请重新打开文档。 <BR>在 Word 的“工具”菜单中，指向“宏”，然后单击“宏”。将显示“宏”对话框。 <BR>在宏列表中单击“ChangeDocumentStyles”，然后单击“运行”。将显示“选择样式更改文件”对话框。 <BR>单击在上述步骤 2 中创建的文件，然后单击“打开”。 <BR>删除未使用的自定义样式<BR>除了内置 Word 文档样式（例如标题 1 和正文）外，用户还可以创建自定义文档样式。但是，如果用户创建自定义样式后却忘记在文档中使用，则反而成为累赘！未使用的自定义文档样式只能徒增最终文档的大小。在最后一个示例中，我将介绍如何创建并运行宏，以删除打开的 Word 文档中的所有未使用的自定义样式。 </P>
<P>注意：不能删除内置文档样式。 </P>
<P>启动 Microsoft Word 2002 并打开要列出其样式的文档。 <BR>在“工具”菜单上，指向“宏”，然后单击“宏”。&nbsp;&nbsp; <BR>在“宏的位置”列表中，单击“Normal.dot (共用模板)”。 <BR>在“宏名”列表中，键入“DeleteUnusedCustomStyles”，然后单击“创建”。将显示 Visual Basic 编辑器。 <BR>找到以下代码： </P>
<P>Sub DeleteUnusedCustomStyles()<BR>'<BR>' ChangeDocumentStyles Macro<BR>' 宏在 {日期} 由 {姓名} 创建<BR>'</P>
<P>End Sub<BR>&nbsp; <BR>如下所示编辑该代码：<BR>&nbsp;<BR>Sub DeleteUnusedCustomStyles()<BR>'<BR>' ChangeDocumentStyles Macro<BR>' 宏在 {日期} 由 {姓名} 创建<BR>'<BR>&nbsp;&nbsp;&nbsp; ' 用途：删除活动 Word 文档中<BR>&nbsp;&nbsp;&nbsp; ' 所有未使用的自定义样式。不能删除<BR>&nbsp;&nbsp;&nbsp; ' 内置样式。</P>
<P>&nbsp;&nbsp;&nbsp; Dim objStyle As Word.Style<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; For Each objStyle In ActiveDocument.Styles<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ' 如果自定义样式未在使用，则将其删除。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If objStyle.BuiltIn = False And _<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; objStyle.InUse = False Then<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; objStyle.Delete<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; intCount = intCount + 1<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; Next objStyle<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; MsgBox "活动文档中未使用的自定义样式被删除。"</P>
<P>End Sub<BR>&nbsp; <BR>在“文件”菜单上，单击“保存 Normal”。 <BR>在“文件”菜单上，单击“关闭并返回到 Microsoft Word”。 <BR>确保文档仍然处于打开状态。如果已关闭，请重新打开文档。 <BR>在“工具”菜单上，指向“宏”，然后单击“宏”。&nbsp;&nbsp; <BR>在宏列表中单击“DeleteUnusedCustomStyles”，然后单击“运行”。活动 Word 文档中所有未使用的自定义样式均被删除。 </P><img src ="http://www.blogjava.net/nighTuner/aggbug/3256.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nighTuner/" target="_blank">nighTuner</a> 2005-04-14 02:02 <a href="http://www.blogjava.net/nighTuner/articles/3256.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>恢复Windows2000/XP 管理员密码</title><link>http://www.blogjava.net/nighTuner/articles/3250.html</link><dc:creator>nighTuner</dc:creator><author>nighTuner</author><pubDate>Wed, 13 Apr 2005 17:52:00 GMT</pubDate><guid>http://www.blogjava.net/nighTuner/articles/3250.html</guid><wfw:comment>http://www.blogjava.net/nighTuner/comments/3250.html</wfw:comment><comments>http://www.blogjava.net/nighTuner/articles/3250.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/nighTuner/comments/commentRss/3250.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/nighTuner/services/trackbacks/3250.html</trackback:ping><description><![CDATA[<P>一、删除SAM文件，清除Administrator账号密码<BR>Windows 2000所在的Winnt\System32\Config下有个SAM文件(即账号密<BR>码数据库文件)，它保存了Windows 2000中所有的用户名和密码。当你<BR>登录的时候系统就会把你键入的用户名和密码。与SAM文件中的加密数<BR>据进行校对，如果两者完全符合，则会顺利进入系统，否则将无法登<BR>录，因此我们可以使用删除SAM文件的方法来恢复管理员密码。<BR>用Windows PE、Bart PE、NTFSDOS等启动，删除SAM文件后重新启动，<BR>此时管理员Administrator账号已经没有密码了，这时你可以用<BR>Administrator帐户登录系统，<BR>不用输入任何密码，进入系统后再重新设置你的管理员账户密码即<BR>可。 <BR>1.这方法不能在Windows XP/2003上使用，如果删除SAM文件，会引起<BR>系统崩溃。 <BR>2.WindowsNT/2000/XP中对用户账户的安全管理使用了安全账号管理器<BR>（Security AccountManager，SAM）的机制，安全账号管理器对账号<BR>的管理是通过安全标识进行的，安全标识在账号创建时就同时创建，<BR>一旦账号被删除，安全标识也同时被删除。安全标识是惟一的，即使<BR>是相同的用户名，在每次创建时获得的安全标识都是完全不同的。因<BR>此，一旦某个账号被删除，它的安全标识就不再存在了，即使用相<BR>同的用户名重建账号，也会被赋予不同的安全标识，不会保留原未的<BR>权限。 <BR>安全账号管理器的具体表现就是%SystemRoot%\system32\config\sam<BR>文件。SAM文件是WindowsNT/2000/XP的用户账户数据库，所有用户的<BR>登录名及口令等相关信息都会保存在这个文件中。<BR>3.另外，在Windows XP中，将\WINDOWS\repair\sam文件复制到<BR>\WINDOWS\system32\config\目录下覆盖掉原有的文件（如果不放心可<BR>以先备份一下原有的SAM文件），Administrator帐号的密码即为空的<BR>了 。 <BR>4.如有可能，建议使用其它方法。<BR>优点：使用简单 <BR>缺点：破坏安全标识，不能在Windows XP、Windows 2003 使用，如果<BR>用EFS加密，加密破坏，数据丢失。<BR>二、从SAM文件中 查找密码<BR>著名的美国计算机安全公司@Stake出品的Window/Unix密码查找软件<BR>LC4/LC5，最新版是LC5 v5.02，可以到其网站下载，地址是：<BR><A href="http://www.atstake.com">http://www.atstake.com</A>，这是商业软件，未注册有功能限制。运行<BR>LC4，打开并新建一个任务，然后依次点击“IMPORT－&gt;Import from <BR>SAM file”，打开已待破解的SAM文件，此时LC4会自动分析此文件，<BR>并显示出文件中的用户名；之后点击“Session-&gt;Begin Audit”，即<BR>可开始破解密码。如果密码不是很复杂的话，很短的时间内就会得到<BR>结果。 不过，如果密码比较复杂的话，需要时间会很长。<BR>优点：不破坏原系统密码，对于用EFS加密数据很重要。 <BR>缺点：速度慢可能需要几天甚至几个年。<BR>三、用密码重设盘设新密码 <BR>在没有使用“欢迎屏幕”登录方式的情况下登录到Windows XP后。按<BR>下“Ctrl+Alt+Del”组合键，出现“Windows 安全”窗口，点击选项<BR>中“更改密码”按钮，出现更改密码窗口(图1)。这个窗口中，将当前<BR>用户的密码备份，点击左下角“备份”按钮激活“忘记密码向导”，<BR>按照提示创建密码重设盘。 <BR>如果在Windows XP的登录窗口输入了错误的密码，就会弹出“登录失<BR>败”窗口，如果你的确想不起来自己的密码是什么时，可点击“重<BR>设”按钮，启动密码重设向导，通过刚才所创建的密码重设盘，重新<BR>设定密码，登陆Windows XP。 <BR>优点：安全，对于用EFS加密数据很重要。<BR>缺点：需要软盘，并且要求在设密码时建立密码重设盘，对于没有软<BR>驱的机器就没办法。</P>
<P>四、修改屏保文件法<BR>原理：Windows 2000、XP启动时，如果不进系统，会自动启动屏保，<BR>如果用CMD.EXE或EXPLORER.EXE代替logon.scr，启动启动时实际启动<BR>的是CMD命令。 <BR>步骤<BR>1.拷贝系统安装目录system32\logon.scr文件备份；<BR>2.改cmd.exe或explorer.exe名为logon.scr文件，替换掉需要破解的<BR>系统的system32目录下logon.scr；<BR>3启动系统，按下CTRL+ALT+DEL，不做任何动作，等一会儿系统会自动<BR>运行logon.scr屏保，事实上，这个确是cmd.exe，并且当前身份为<BR>local system <BR>4、在命令行方式下改密码<BR>net user administrator your-new-password<BR>如果这是域控制器，那么输入net user administrator your-new-<BR>password/domain<BR>5、登陆系统，将第一步中备份的logon.scr恢复回去即可。 <BR>优点：简单，安全。<BR>缺点：等待时间长，原来没有启动屏保者不一定有效，不能找回其它<BR>有管理员身份的帐户密码，只能修改，如果用EFS加密，加密破坏，数<BR>据丢失。 <BR>五、使用软件修改密码<BR>1.Windows.XP.2000.NT.Password.Recovery.Key<BR>Passware公司的Windows.XP.2000.NT.Password.Recovery.Key软件可<BR>以自动把Administrator密码修改为12345，重启系统后用此账号登<BR>录。然后在“控制面板”<BR>用户中，再重新修改管理员密码即可。<BR>软件名：Windows.XP.2000.NT.Password.Recovery.Key 6.3 <BR>下载做好了的软盘映像文件 <BR>使用方法：<BR>安装软件，运行出现界面：<BR>按其中“floppy driver disk”，将准备好的软盘插入软驱，点<BR>Next，Windows XP-2000-NT Key 会自动将此盘制作为一张特殊的驱动<BR>盘。驱动盘做好后，就可进行下步工作了。用windows2000/XP的安装<BR>盘，或用此启动盘的Bart PE启动待恢复密码的计算机，当提示 <BR>Press F6 if you need install party SCSI or RAID driver...时，<BR>按F6，等待加载过程结束后，看到提示：To specify addition al <BR>SCSI adapters,CD-ROM drivers.or special disk controllers for <BR>use with windows 2000,including those for which you have a <BR>device support disk from mass storage device <BR>manufacturer,press S，立刻按S键，然后系统会接着提示：Please <BR>insert the disk labeled maufacturer-supplied hardwaresupport <BR>disk into driver A: * Press ENTER when ready。这时插入软盘加<BR>载上面做好的Windows XP-2000-NT Key驱动。稍等片刻，系统便会自<BR>动进入Windows XP-2000-NT Key环境。这时系统会提示：Set <BR>Administrator'Password to '12345'？(Y/N)：，键入Y，待显示：<BR>Password has been reset.<BR>User name is 'Administrator'. <BR>New password is '12345' <BR>此时，系统管理员帐号administrator的密码已被改为12345了。取出<BR>安装光盘及软盘，重新启运系统即可用此帐号登陆。<BR>优点：使用简单，安全<BR>缺点：需要软盘，对于没有软驱的机器就没办法，当然可以创建启动<BR>光盘。不能找回其它有管理员身份的帐户密码，只能修改，如果用EFS<BR>加密，加密破坏，数据丢失 。<BR>2.CleanPwd <BR>用一个修改密码的小程序来替换系统启动的必要程序，然后系统启动<BR>时就会替换密码，随后把被替换的程序在还原就行了。当然首先你还<BR>是要能够访问系统分区，来替换随系统启动的程序。 <BR>替换系统启动的必要程序的一种方法是我写的一个清除administrator<BR>密码的小程序CleanPwd（按此下载），你可以<A href="http://www.BingleSite.net">www.BingleSite.net</A>下<BR>载，他所作的就是把administrator密码清空。使用方法如下： 用法 <BR>1) 用双系统或者启动盘或者挂到别的系统上，如果是NTFS分区其他系<BR>统或启动盘要能读写NTFS分区，把windows安装目录下的system32<BR>\svchost.exe改名svchost.bak.exe备份,把CleanPwd.exe拷贝成<BR>svchost.exe。 <BR>2) 启动该系统，就把administrator的密码清空了，可以直接登陆。 <BR>3) 把svchost.bak.exe 恢复就行了。 <BR>（你也可以选择替换其他程序，如果你替换的是svchost，最好重新启<BR>动或者启动rpc服务以使系统正常工作） <BR>4) 为什么选用svchost.exe而不是其他程序。 <BR>每个Windows NT/2000系统都有这几个进程， <BR>System(kernel Executive and kernel) <BR>smss(session manager) <BR>csrss(win32 subsystem) <BR>winlogon(logon process) <BR>services(Service control manager) <BR>lsass(local security authentication server ) <BR>如果任何一个被杀掉或者出错，系统将重新启动。不过在lsass启动之<BR>前你不能修改密码，因为lsass是负责密码验证的安全系统，而系统启<BR>动的顺序就是上边列出的顺序，所以不能选用这几个程序。 <BR>另外系统中一般还有以下一些程序： <BR>svchost.exe(Remote Procedure Call (RPC) 还有其他一些服务) <BR>WBEM\WinMgmt.exe(Windows Management Instrumentation) <BR>mstask.exe(Task Scheduler) <BR>regsvc.exe(Remote Registry Service) <BR>可能还有其他服务程序，你可能禁止了除RPC之外的其他服务，但不会<BR>禁止RPC，否则系统工作就不正常了。所以我选择了svchost，如果你<BR>知道其他服务会自动启动，你也可以选择它。 当然如果系统安装了杀<BR>毒软件的话，你替换杀毒软件也可以，因为一般杀毒软件都会在系统<BR>启动时启动杀毒防火墙来杀毒的。程序运行会在c:\CleanPwd.txt记一<BR>个简单的日志，我也附了源码，你可以任意修改它以满足自己的要<BR>求，比如添加一个用户而不是修改管理员的密码（或者你把管理员改<BR>名了）。 <BR>优点：使用简单，安全。 <BR>缺点：不能找回其它有管理员身份的帐户密码，只能修改，如果用EFS<BR>加密，加密破坏，数据丢失。 <BR>3.The Offline NT Password Editor <BR>Windows管理员密码丢失还有一个解决方法是使用Petter Nordahl-<BR>Hagen的The Offline NT Password Editor,这个工具是离线修改注册<BR>表文件sam来设置密码的。需要用他的映像文件制作启动盘来引导，进<BR>而访问ntfs分区重新设置密码；虽然作者经常更新他的程序，不过还<BR>是会担心他直接操作sam文件的安全性，可能有时会导致系统出错。<BR>（注：在网上听说有人使用这个工具导致系统崩溃，之后不能在使用<BR>其他方法恢复了，因此使用这类工具之前先要备份SAM相关文件） <BR>用软盘启动后，我们可以看到很多Linux启动的输出信息，看到了吧，<BR>这个“精简的Linux系统”的名字是SysLinux。 <BR>然后就是软件的版权声明，并指出软件在NT3.51,NT4.0,Windows2000 <BR>Professional &amp; Advanced Server RC2下测试通过，而使用了Active <BR>Directory的Windows2000系统没有测试。 <BR>接下来，系统提示“Do you have your NT disks on a SCSI <BR>controllers?”,问你NT系统是否安装在SCSI硬盘上，看你的具体情<BR>况，一般这里输入“n”。系统就开始检测硬盘以及硬盘分区，并把检<BR>测结果以Linux下的方式表示出来，在出现提示字串后敲回车继续。 <BR>系统提示“Select what you want to d1-set passwords[default] <BR>2-Edit registry”，我们的目的是更改管理员的密码，所以，输入数<BR>字“1”，Enter。接着提示“what is the full path to the <BR>registry directory?”,询问注册表存放路径，默认的应该是<BR>“winnt/system32/config”，如果你原来安装系统的时候改变了路<BR>径，那么请按照你的实际情况更改路径后回车继续。 <BR>接着出现“which hids(files) do you want to edit (leave <BR>default for password setting,separate multiple name with <BR>space)”，回车，然后会把所有用户的账号列出，并询问“do you <BR>really wish to disalbe syskey(y/n)”，<BR>输入“n”,回车。提示“Username to change (! to quit,. to <BR>users):”，输入“administrator”（假设你的管理员账号是 <BR>administrator），回车后“Please enter new password”按提示，<BR>你可以输入“Administrator”账号的新密码，再问一次“Do you <BR>really wish to change it?(y/n)”，输入“y” 确定并回车。系统<BR>最后问你“About to write files back！ Do it?”（有点罗嗦吧，<BR>呵呵），输入“y”确认后，系统提示，按“Cltrl-Alt-del”三键重<BR>新启动系统。启动系统后，已经可以用修改好的密码登录。 <BR>优点：使用简单，安全。 <BR>缺点：不能找回其它有管理员身份的帐户密码，只能修改，如果用EFS<BR>加密，加密破坏，数据丢失。 <BR>4. Winternals Administrator's ERD Commander 2002/2003 <BR>ERD Commander这可以算是Winternals Administrators' Pak工具中最<BR>强大的组件了，其中一个引人注目的功能就是修改密码，Windows <BR>NT/2000/XP/2003 系统中任何一个用户的密码都可以在不知道原先密<BR>码的情况下被ERD修改掉。可以用ERD Commander自己的启动光盘、<BR>Windows PE 或Bart PE启动后启动ERD Commander。 <BR>注意：XP系统用了SYSKEY命令后，ERD Commander不能修改密码，需要<BR>用The Offline NT Password Editor。 <BR>优点：使用简单，安全 <BR>缺点：不能找回其它有管理员身份的帐户密码，只能修改，如果用EFS<BR>加密，加密破坏，数据丢失。 <BR>5.用O&amp;O Bluecon2000强制更改Windows2000本地管理员密码 <BR>文章来源：中文NT资源网[ <A href="http://www.AboutNT.com">http://www.AboutNT.com</A>] <BR>O&amp;O Bluecon 2000是一款德国人开发的工具软件,它可以让你方便的修<BR>复被损坏的Windows NT/2000系统,与Windows 2000的恢复控制台差不<BR>多,唯一不同的是它不需要你输入密码就能够进入系统.这款工具最常<BR>用的功能可能就是修改本地管理员的密码了。 使用O&amp;O Bluecon 2000<BR>修改本地管理员密码的步骤如下: 一.制作工具盘. <BR>(1)制作四张Windows2000安装启动盘,制作方法见本站的Winnt/2000重<BR>要软盘制作小全。 <BR>(2)启动O&amp;O BlueCon 2000软件的"O&amp;O BootWizard"，修改我们刚才制<BR>作的安装软盘(只修改第1张和第4张),共分四步. <BR>(3)第一步Select Boot Device询问你使用哪一种方式引导系统,是<BR>Floppy(即四张安装软盘)还是CD-ROM,我们在这儿选Floppy(4 disk <BR>required)这一项,按下一步; <BR>(4)第二步Select Options询问我们是不是创建Windows2000安装启动<BR>盘,因为我们刚才就创建了,因此不选,按下一步; <BR>(5)第三步Patch Disk 1和Patch Disk 4,会提示你依次插入第1张和第<BR>4张进行修改操作.按屏幕提示完成工具盘制作. <BR>二.修改本地管理员密码 <BR>这款工具与我前一款介绍的修改管理员密码的工具相同,只能够修改<BR>SAM中的本地管理员密码. <BR>在使用O&amp;O修改本地管理员的密码前,先介绍一下O&amp;O支持的命令,共28<BR>个,你可以在"A:\&gt;"提示符下使用"?"或"help"命令查看.这28个命令中<BR>比较重要的有: <BR>backup:备份注册表 <BR>device:显示某一操作系统的硬件配置情况 <BR>edlin:一个文本编辑工具 <BR>passwd:修改密码命令 <BR>reboot:重新启动机器命令 <BR>regedit:编辑注册表命令 <BR>service:显示/启动/禁止服务命令 <BR>scopy或scp:文件复制命令,可以复制文件的安全属性 <BR>user:显示某一操作系统的用户 <BR>vmap:显示当前卷的信息 <BR>这些命令的参数与详细用法可以使用"命令 /?"的方式获得. <BR>具体的修改本地用户的操作如下: <BR>(1)将第1张软盘插入软驱中,重新启动机器,以软盘引导系统,按屏幕提<BR>示依次插入<BR>这4张盘,走完安装界面,最后,系统会提示: <BR>O&amp;O Bluecon 2000 V2.0 Build 256 - English Keyboard <BR>(c) 2000 O&amp;O Software GmbH. Allright reserved. <BR>A:\&gt; <BR>(2)使用Passwd命令对SAM数据库账号的密码进行修改,Passwd命令的用<BR>法如下: <BR>Passwd [] <BR>Passwd命令中Password参数是可选的,如果你不输入该账号的密码,那<BR>么该账号的密码将被清空(不建议这样). <BR>如果你要将管理员Administrator的密码修改为123456,就可以这样使<BR>用: A:\&gt;Passwd Administrator 123456 <BR>回车后如果你当前系统中存在多个操作系统,系统会提示你要修改哪个<BR>操作系统的管理员密码.类似提示如下: <BR>Please choose a system to logon <BR>1. "Microsoft Windows 2000 Server" /fastdetect <BR>2. "Microsoft Windows XP Professional" /fastdetect <BR>3. "Microsoft Windows 2000 Recovery Cortrol" /cmdcons <BR>选择一个合适的要修改的操作系统,我们这儿选1,即要修改<BR>Windows2000 server的管理员密码.一会儿如果系统提示"Password <BR>was successfully changed"就表示管理中的密码修改成功.如果你的<BR>O&amp;O软件不是完全版而只是未注册版,那系统会提示管理员的密码是只<BR>读的,不能够进行修改. <BR>(3)从软驱出取出软盘,重新启动系统,进入目录恢复模式,我们就可以<BR>使用新的管理员密码进入系统了. <BR>这款软件最新版的下载地址是 <A href="http://www.oosoft.com">http://www.oosoft.com</A> <BR>优点：较安全。 <BR>缺点：需要软盘，对于没有软驱的机器就没办法，操作较复杂，不能<BR>找回其它有管理员身份的帐户密码，只能修改，如果用EFS加密，加密<BR>破坏，数据丢失。 <BR>6. 不用修改密码登陆Windows 2000/XP---DreamPackPL PE版 <BR>全新思想的软件。 <BR>它允许让你不必知道本地系统的管理员或用户密码登录系统； <BR>它不会改变本地系统用户的密码； <BR>它允许你对本地系统具有完全访问权限； <BR>它允许你访问本地系统用户通过EFS加密系统加密过的文件和文件夹 <BR>（对Windows 2000)；（本人在Windows XP SP1简体中文版上测试，此<BR>功能不成功，仅能浏览文件夹或 文件名，但不能打开文件、Copy、移<BR>动文件。）<BR>DreamPackPL PE版 <BR>v2004.5.12 <BR>This tool give full access to Windows 2000/XP. DreamPackPL <BR>do not <BR>change/overwrite old passwords, therefore EFS encrypted <BR>files <BR>will be still readable (only 2000). <BR>Features : <BR>+ executing programs (from list: e.g. regedit or any other) <BR>at the logon </P>
<P>desktop with system privileges (2000, XP) or in the security <BR>context of </P>
<P>selected user (only XP), <BR>+ loading Explorer shell at new desktop and work as <BR>impersonate user </P>
<P>with system privileges ('Spirit mode'), <BR>+ displaying local accounts list (user names) in logon <BR>desktop, <BR>+ turn off/on logon password check (full access to every <BR>local account <BR>without modifying old passwords), <BR>+ disabling Windows File Protection. <BR>Current version: 2oo4.o5.12 <BR>具有功能： <BR>它允许让你不必知道本地系统的管理员或用户密码登录系统； <BR>它不会改变本地系统用户的密码； <BR>它允许你对本地系统具有完全访问权限； <BR>它允许你访问本地系统用户通过EFS加密系统加密过的文件和文件夹<BR>(对Windows 2000各版本）； <BR>（本人在Windows XP SP1简体中文版上测试，此功能不成功，仅能浏<BR>览文件夹或 文件名，但不能打开文件、Copy、移动文件。） <BR>使用方法： <BR>1.在Bart PE中执行该程序，按程序要求选择Windows系统安装目录，<BR>安装DreamPackPL； <BR>2.退出Bart PE并重新启动计算机到本地系统；启动后出现<BR>DreamPackPL配置界面，<BR>有两种方法可以不用修改系统用户密码直接进入系统； <BR>a)选择“Spirit mode”(幽灵模式)，系统将无密码登陆系统； <BR>b)将"Logon password check"取消选取，并重启，重启后系统将无密<BR>码登陆系统； <BR>另外，可以修改系统用户密码，包括系统管理员的密码，登陆系统，<BR>方法是点击“Details”，选择相应用户，修改其密码，但是用此法登<BR>陆系统后，原来用户密码已经改变，如果本地系统用户通过EFS加密系<BR>统加密文件和文件夹，将不能解密，不推荐用此方法登陆系统。 <BR>3.直接登录到本地系统，密码为空，这样你就基本拥有该系统的控制<BR>权了，当然还是不能拥有通过EFS加密系统加密过的文件和文件夹控制<BR>权； <BR>删除DreamPackPL <BR>1.重新启动到本地系统后，选取"Logon password check"； <BR>2.取消"DreamPack"的选取框并重启计算机，系统恢复，删除<BR>DreamPackPL完成。 <BR>或用本光盘启动，Bart PE中执行DreamPackPL程序，按程序要求选择<BR>Windows <BR>系统安装目录，删除DreamPackPL。 <BR>*************************************************************<BR>请不要使用该工具来获取非法的入侵，该工具仅用于系统管理员对系<BR>统的救护工作。 这个工具是免费的，获得 DreamPackPL 原版请访问 <BR><A href="http://www.d--b.webpark.pl/dreampackpl_en.htm">http://www.d--b.webpark.pl/dreampackpl_en.htm</A> (<A href="http://www.d">http://www.d</A>--<BR>b.webpark.pl/dreampackpl_en.htm) Rock2000 2004.05.22 <BR>优点：使用简单，安全，不用修改系统原来所有用户密码即可登录。 <BR>缺点：不能找回其它有管理员身份的帐户密码，只能修改。对<BR>Windows XP用EFS加密，不起作用。对Windows 2003效果不明。 <BR>六、古老的密技——输入法漏洞篇 <BR>输入法漏洞已久，想来已经为众多朋友熟知。在可行情况下，其不失<BR>为夺取系统管理权限的首选之技。所谓输入法漏洞，即当我们启动<BR>Windows2000（NT）到登录验证的界面时，任何人都可以打开各种输入<BR>法的帮助栏，并可以利用其中的URL跳转功能越权访问系统。 <BR>系统：Windows2000 Professional [Version 5.00.2195]、Windows <BR>XP，未升级漏洞补丁。 <BR>相关情况：系统管理员帐号administrator密码丢失、无其它可登陆用<BR>户帐号、SAM文件无法读取或做其它操作、有输入法漏洞。 <BR>所需工具：无 <BR>操作过程及相关解答： <BR>启运系统到登陆状态，按Ctrl+Shift键切换输入法状态到“全拼”<BR>（或其它输入法，只要可调出输入法帮助即可）状态，依次点选状态<BR>条上的“帮助”、“操作指南”。右击“操作指南”窗体的标题栏，<BR>选择“跳转至URL”，在跳转输入框中输入c:\windnnt\system32,点确<BR>定即可成功进入该文件夹。找到 net.exe文件，并创建快捷方式。然<BR>后右键此快捷方式，选其属性，将“目标”一栏中改为：<BR>C:\WINNT\system32\net.exe user wing 123456 /add，点确定后，点<BR>击执行。这样，便给系统添加了一个用户名为wing，密码为123456的<BR>新用户。之后以同样的步骤再创键一快捷方式，在其属性中将“目<BR>标”改为：D:\WINNT\system32\net.exe localgroup <BR>administrators wing /add，同样双击执行。这一步是将刚刚创建的<BR>新用户wing增加到了本地管理员组。 <BR>优点：安全 <BR>缺点：不能找回其它有管理员身份的帐户密码，只能修改。操作复<BR>杂，升级漏洞补丁后不能使用。对2003效果不明。 <BR>七、不朽的力量——黑客技术篇 <BR>做为文章的最后一部分，这里将向各位演示如何使用黑客技术来取回<BR>自己的权限。 <BR>系统：Windows2000 Professional [Version 5.00.2195]<BR>相关情况：系统管理员帐号administrator密码丢失、无其它可登陆用<BR>户帐号、无输入法漏洞等可利用漏洞，无法取得SAM文件、无输入法漏<BR>洞。提供IIS服务等，并有若干漏洞。 <BR>所需工具：GFI LANguard Network Scanner（或其它同类漏洞扫描软<BR>件） <BR>其它：待破解系统处于局域网中。 <BR>操作过程及相关解答： <BR>将待破解系统启动至登陆状态。在与此机器在同一局域网的另一台机<BR>器上进行如下操作： 首先，下载扫描软件。下载后按提示安装。安装<BR>过程很简单，这里不多缀述。 接下来，使用该软件对目标系统进行扫<BR>描，可以看到扫描结果中的：- Escaped Characters Decoding <BR>Bug /scripts/..%255c..%255c..%255c..%255c..%255c..%<BR>255cwinnt/system32/cmd.exe?/c+dir，这说明目标系统存在UNICODE<BR>及IDQ等数个CGI漏洞，对于不同的漏洞可以使用不同的方法入侵，进<BR>而取得对系统的控制。对于此，本文无法详细介绍，因为黑客技术实<BR>在是如此博大精升，如果要讲的话，恐怕不是一二年能讲完的。这里<BR>只是提及此可行方法，具体情况还请具体分析。网上有很多关于这方<BR>面的资料，有兴趣的朋友可以自行查找。 <BR>优点：安全 <BR>缺点：使用复杂，需要专业知识。不能找回其它有管理员身份的帐户<BR>密码，只能修改。 <BR>注意！WinXP Win2003下不能使用删除SAM的方法，否则系统会被锁<BR>死！！ 2003不用能用啊？？ </P><img src ="http://www.blogjava.net/nighTuner/aggbug/3250.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nighTuner/" target="_blank">nighTuner</a> 2005-04-14 01:52 <a href="http://www.blogjava.net/nighTuner/articles/3250.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>FileSystemOjbect Howto</title><link>http://www.blogjava.net/nighTuner/articles/3249.html</link><dc:creator>nighTuner</dc:creator><author>nighTuner</author><pubDate>Wed, 13 Apr 2005 17:50:00 GMT</pubDate><guid>http://www.blogjava.net/nighTuner/articles/3249.html</guid><wfw:comment>http://www.blogjava.net/nighTuner/comments/3249.html</wfw:comment><comments>http://www.blogjava.net/nighTuner/articles/3249.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/nighTuner/comments/commentRss/3249.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/nighTuner/services/trackbacks/3249.html</trackback:ping><description><![CDATA[<P>创建、添加或删除数据，以及读取文件 <BR>移动、复制和删除文件 <BR>创建文件 <BR>创建空文本文件（有时被叫做“文本流”）有三种方法。 <BR>第一种方法是用 CreateTextFile 方法。 下面的示例示范了在 VBScript 中如何用这种方法来创建文本文件： </P>
<P><BR>Dim fso, f1 <BR>Set fso = CreateObject("Scripting.FileSystemObject") <BR>Set f1 = fso.CreateTextFile("c:\testfile.txt", True) </P>
<P>要在 JScript 中用这种方法，则使用下面的代码： </P>
<P>var fso, f1; <BR>fso = new ActiveXObject("Scripting.FileSystemObject"); <BR>f1 = fso.CreateTextFile("c:\\testfile.txt", true); </P>
<P>请考察示例代码，来领会如何在 FileSystemObject 中使用 CreateTextFile 方法。 <BR>创建文本文件的第二种方法是，使用 FileSystemObject 对象的 OpenTextFile 方法，并设置 ForWriting 标志。在 VBScript 中，代码就像下面的示例一样： </P>
<P>Dim fso, ts <BR>Const ForWriting = 2 <BR>Set fso = CreateObject("Scripting. FileSystemObject") <BR>Set ts = fso.OpenTextFile("c:\test.txt", ForWriting, True) </P>
<P>要在 JScript 中使用这种方法来创建文本文件，则使用下面的代码： </P>
<P>var fso, ts; <BR>var ForWriting= 2; <BR>fso = new ActiveXObject("Scripting.FileSystemObject"); <BR>ts = fso.OpenTextFile("c:\\test.txt", ForWriting, true); </P>
<P>创建文本文件的第三种方法是，使用 OpenAsTextStream 方法，并设置 ForWriting 标志。要使用这种方法，在 VBScript 中使用下面的代码： </P>
<P>Dim fso, f1, ts <BR>Const ForWriting = 2 <BR>Set fso = CreateObject("Scripting.FileSystemObject") <BR>fso.CreateTextFile ("c:\test1.txt") <BR>Set f1 = fso.GetFile("c:\test1.txt") <BR>Set ts = f1.OpenAsTextStream(ForWriting, True) </P>
<P>在 JScript 中，则使用下面示例中的代码： </P>
<P>var fso, f1, ts; <BR>var ForWriting = 2; <BR>fso = new ActiveXObject("Scripting.FileSystemObject"); <BR>fso.CreateTextFile ("c:\\test1.txt"); <BR>f1 = fso.GetFile("c:\\test1.txt"); <BR>ts = f1.OpenAsTextStream(ForWriting, true); </P>
<P>添加数据到文件中 <BR>一旦创建了文本文件，使用下面的三个步骤向文件添加数据： </P>
<P>打开文本文件。 <BR>写入数据。 <BR>关闭文件。 <BR>要打开现有的文件，则使用 FileSystemObject 对象的 OpenTextFile 方法或 File 对象的 OpenAsTextStream 方法。 <BR>要写数据到打开的文本文件，则根据下表所述任务使用 TextStream 对象的 Write、WriteLine 或 WriteBlankLines 方法。 </P>
<P>任务 方法 <BR>向打开的文本文件写数据，不用后续一个新行字符。 Write <BR>向打开的文本文件写数据，后续一个新行字符。 WriteLine <BR>向打开的文本文件写一个或多个空白行。 WriteBlankLines </P>
<P><BR>请考察示例代码，来领会如何在 FileSystemObject 对象中使用 Write、WriteLine 和 WriteBlankLines 方法。 </P>
<P>要关闭一个打开的文件，则使用 TextStream 对象的 Close 方法。 </P>
<P>请考察示例代码，来领会如何在 FileSystemObject 中使用 Close 方法。 </P>
<P><BR>-------------------------------------------------------------------------------- </P>
<P>注意 新行字符包含一个或几个字符（取决于操作系统），以把光标移动到下一行的开始位置（回车/换行）。注意某些字符串末尾可能已经有这个非打印字符了。 </P>
<P>-------------------------------------------------------------------------------- </P>
<P><BR>下面的 VBScript 例子示范了如何打开文件，和同时使用三种写方法来向文件添加数据，然后关闭文件： </P>
<P><BR>Sub CreateFile() <BR>Dim fso, tf <BR>Set fso = CreateObject("Scripting.FileSystemObject") <BR>Set tf = fso.CreateTextFile("c:\testfile.txt", True) <BR>' 写一行，并且带有新行字符。 <BR>tf.WriteLine("Testing 1, 2, 3.") <BR>' 向文件写三个新行字符。 <BR>tf.WriteBlankLines(3) <BR>' 写一行。 <BR>tf.Write ("This is a test.") <BR>tf.Close <BR>End Sub <BR>这个示例示范了在 JScript 中如何使用这三个方法： </P>
<P>function CreateFile() <BR>{ <BR>var fso, tf; <BR>fso = new ActiveXObject("Scripting.FileSystemObject"); <BR>tf = fso.CreateTextFile("c:\\testfile.txt", true); <BR>// 写一行，并且带有新行字符。 <BR>tf.WriteLine("Testing 1, 2, 3.") ; <BR>// 向文件写三个新行字符。 <BR>tf.WriteBlankLines(3) ; <BR>// 写一行。 <BR>tf.Write ("This is a test."); <BR>tf.Close(); <BR>} <BR>读取文件 <BR>要从文本文件读取数据，则使用 TextStream 对象的 Read、ReadLine 或 ReadAll 方法。下表描述了不同的任务应使用哪种方法。 <BR>任务 方法 <BR>从文件读取指定数量的字符。 Read <BR>读取一整行（一直到但不包括新行字符）。 ReadLine <BR>读取文本文件的整个内容。 ReadAll </P>
<P><BR>请考察示例代码，来领会如何在 FileSystemObject 中使用 ReadAll 和 ReadLine 方法。 </P>
<P>如果使用 Read 或 ReadLine 方法，并且想跳过数据的特殊部分，则使用 Skip 或 SkipLine 方法。read 方法的结果文本存在一个字符串中，该字符串可以显示在一个控件中，也可以用字符串函数（如 Left、Right 和 Mid）来分析，连接等等。 </P>
<P>下面的 VBScript 示例示范了如何打开文件，和如何写数据到文件中并从文件读取数据： </P>
<P><BR>Sub ReadFiles <BR>Dim fso, f1, ts, s <BR>Const ForReading = 1 <BR>Set fso = CreateObject("Scripting.FileSystemObject") <BR>Set f1 = fso.CreateTextFile("c:\testfile.txt", True) <BR>' 写一行。 <BR>Response.Write "Writing file <BR>" <BR>f1.WriteLine "Hello World" <BR>f1.WriteBlankLines(1) <BR>f1.Close <BR>' 读取文件的内容。 <BR>Response.Write "Reading file <BR>" <BR>Set ts = fso.OpenTextFile("c:\testfile.txt", ForReading) <BR>s = ts.ReadLine <BR>Response.Write "File contents = '" &amp; s &amp; "'" <BR>ts.Close <BR>End Sub </P>
<P>下面的代码示范了在 JScript 中做同样的事： </P>
<P>function ReadFiles() <BR>{ <BR>var fso, f1, ts, s; <BR>var ForReading = 1; <BR>fso = new ActiveXObject("Scripting.FileSystemObject"); <BR>f1 = fso.CreateTextFile("c:\\testfile.txt", true); <BR>// 写一行。 <BR>Response.Write("Writing file <BR>"); <BR>f1.WriteLine("Hello World"); <BR>f1.WriteBlankLines(1); <BR>f1.Close(); <BR>// 读取文件的内容。 <BR>Response.Write("Reading file <BR>"); <BR>ts = fso.OpenTextFile("c:\\testfile.txt", ForReading); <BR>s = ts.ReadLine(); <BR>Response.Write("File contents = '" + s + "'"); <BR>ts.Close(); <BR>} </P>
<P>移动、复制和删除文件 <BR>FSO 对象模式各有两种方法移动、复制和删除文件，如下表所述。 <BR>任务 方法 <BR>移动文件 File.Move 或 FileSystemObject.MoveFile <BR>复制文件 File.Copy 或 FileSystemObject.CopyFile <BR>删除文件 File.Delete 或 FileSystemObject.DeleteFile </P>
<P><BR>请考察示例代码，来领会在 FileSystemObject 中删除文件的两种方法。 </P>
<P>下面的 VBScript 示例，在驱动器 C 的根目录中创建一个文本文件，向其中写一些信息，然后把它移动到 \tmp 目录中，并在 \temp 中做一个备份，最后把它们从两个目录中删掉。 </P>
<P>要运行下面的示例，需要先在驱动器 C 的根目录中创建 \tmp 和 \temp 目录： </P>
<P><BR>Sub ManipFiles <BR>Dim fso, f1, f2, s <BR>Set fso = CreateObject("Scripting.FileSystemObject") <BR>Set f1 = fso.CreateTextFile("c:\testfile.txt", True) <BR>Response.Write "Writing file <BR>" <BR>' 写一行。 <BR>f1.Write ("This is a test.") <BR>' 关闭文件。 <BR>f1.Close <BR>Response.Write "Moving file to c:\tmp <BR>" <BR>' 获取 C 的根目录(C:\)中的文件的句柄。 <BR>Set f2 = fso.GetFile("c:\testfile.txt") <BR>' 把文件移动到 \tmp 目录。 <BR>f2.Move ("c:\tmp\testfile.txt") <BR>Response.Write "Copying file to c:\temp <BR>" <BR>' 把文件复制到 \temp 目录。 <BR>f2.Copy ("c:\temp\testfile.txt") <BR>Response.Write "Deleting files <BR>" <BR>' 获得文件当前位置的句柄。 <BR>Set f2 = fso.GetFile("c:\tmp\testfile.txt") <BR>Set f3 = fso.GetFile("c:\temp\testfile.txt") <BR>' 删除文件。 <BR>f2.Delete <BR>f3.Delete <BR>Response.Write "All done!" <BR>End Sub </P>
<P>下面的代码示范了在 JScript 中做同样的事： </P>
<P>function ManipFiles() <BR>{ <BR>var fso, f1, f2, s; <BR>fso = new ActiveXObject("Scripting.FileSystemObject"); <BR>f1 = fso.CreateTextFile("c:\\testfile.txt", true); <BR>Response.Write("Writing file <BR>"); <BR>// 写一行。 <BR>f1.Write("This is a test."); <BR>// 关闭文件。 <BR>f1.Close(); <BR>Response.Write("Moving file to c:\\tmp <BR>"); <BR>// 获取 C 的根目录(C:\)中的文件的句柄。 <BR>f2 = fso.GetFile("c:\\testfile.txt"); <BR>// 把文件移动到 \tmp 目录。 <BR>f2.Move ("c:\\tmp\\testfile.txt"); <BR>Response.Write("Copying file to c:\\temp <BR>"); <BR>// 把文件复制到 \temp 目录。 <BR>f2.Copy ("c:\\temp\\testfile.txt"); <BR>Response.Write("Deleting files <BR>"); <BR>// 获得文件当前位置的句柄。 <BR>f2 = fso.GetFile("c:\\tmp\\testfile.txt"); <BR>f3 = fso.GetFile("c:\\temp\\testfile.txt"); <BR>// 删除文件。 <BR>f2.Delete(); <BR>f3.Delete(); <BR>Response.Write("All done!"); <BR>} </P><img src ="http://www.blogjava.net/nighTuner/aggbug/3249.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nighTuner/" target="_blank">nighTuner</a> 2005-04-14 01:50 <a href="http://www.blogjava.net/nighTuner/articles/3249.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MS SQL Server调优</title><link>http://www.blogjava.net/nighTuner/articles/3248.html</link><dc:creator>nighTuner</dc:creator><author>nighTuner</author><pubDate>Wed, 13 Apr 2005 17:48:00 GMT</pubDate><guid>http://www.blogjava.net/nighTuner/articles/3248.html</guid><wfw:comment>http://www.blogjava.net/nighTuner/comments/3248.html</wfw:comment><comments>http://www.blogjava.net/nighTuner/articles/3248.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/nighTuner/comments/commentRss/3248.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/nighTuner/services/trackbacks/3248.html</trackback:ping><description><![CDATA[<P>在建立一个新的实例后，mssql会先生成master,model,msdb,tempdb 四个系统数据库,就master，model，msdb这三个系统数据库建议最后与用户数据库分开存储，一般系统数据库应该特别小心。主数据库保护着自己及其他数据库的分类信息、配置信息、用户数据库信息、作业信息、还有数据库模版。一旦系统数据库受到破坏，整个实例就有可能崩溃。</P>
<P>而tempdb这个临时数据库，它对性能的影响较大。tempdb和其他数据库一样可以增大，可以缩小。当数据文件需要增长的时候，通常不能保持剩余部分的连续性。这时文件就会产生碎片，这种碎片会造成性能下降。这种碎片属于外来性碎片。要阻止在tempdb中产生外来性碎片，必须保证有足够的硬盘空间。一般将tempdb的容量放到平均使用容量。而你也应该允许tempdb自动增长，比如你有个一个超大的join操作，它建立了一个超过tempdb容量的时候，该查询将失败。你还要设置一个合理的单位增长量。因为如果你设得太小，将会产生许多外来性碎片，反而会占用更多资源。sqlserver调优最有效的做法之一，就是把争夺资源的操作独立出去。tempdb就是一个需要独立出去的部分而tempdb和其他系统库一样是公用的，是存取最可能频繁的库，所有处理临时表、子查询、GROUP BY、排序、DISTINCT、连接等等。它最适合放到一个具有快速读写能力的设备上。比如RAID0卷或RAID0+1卷上。移动tempdb的方法：</P>
<P>1、用Enterprise Manager或sp_helpdb查看tempdb现在存放的位置<BR>2、用<BR>alter database tempdb modify file(name='tempdev',filename='newpath\newfilename',size=20mb)<BR>alter database tempdb modify file(name='templog',filename='newpath\newfilename',size=20mb)<BR>3、关闭sqlserver重起<BR>4、删掉旧的tempdb文件<BR>而我们在建立一个用户数据库的时候，也要考虑数据文件放哪、日志文件放哪、用几个数据文件。数据文件访问当然希望尽可能快。但是通常数据文件对于用户具有极其重要，所以一般考虑数据保护和高可用性，将它们放到RAID5中。日志文件呢，它记录了对数库所做的历史记录，它用于校验数据库中的数据完整性。它也应该和你的数据文件分开存储，和数据文件一样事务日志也是会自动增长的，当空间够大的时候事务记录操作得很快。而这时你觉得它太大了，去缩减它，，而你再一操作数据库，它要花费时间去分配空间，如果你不让写入，数据库将被置疑。所以这不是个好办法。你应该通过文件截断或日志备份，这样可以从事务日志中释放空间。这里说的空间是指日志文件内部可用空间，而不是日志文件的大小。日志管理器每秒传输操作可以顺序写入60KB。对调整事务日志最好的建议是放到一个最快的阵列上，一个办法是RAID0+1。增加一个文件组中的文件数，往往会改善性能，因为会创建更多的线程来扫描数据文件。又比如你有两个上百万的表，分别建立索引。如果你放在一个文件组中性能会受很大影响。而比如你建立4个数据文件每个物理磁盘上建立一个，而且把数据文件放到单独的数据文件组,而把每个索引也放到它自己的文件组中。查询性能会显著提高<BR>使用DBCC命令来优化<BR>D B C C命令就像名字的含义一样，本来是为了检查数据库的一致性。但后来D B C C命令变<BR>成了一些有用的函数。D B C C命令的使用有一些限制。以下就是所支持的命令列表。<BR>D B C C {<BR>CHECKALLOC[(database_name [, NOINDEX])] |<BR>C H E C K C ATALOG [(database_name)] |<BR>C H E C K TABLE (table_name[,NOINDEX | index_id]) |<BR>CHECKDB [(database_name [, NOINDEX])] |</P>
<P>dllname (FREE) |<BR>INPUTBUFFER (spid) |CHECKIDENT [(table_name)] |<BR>D B R E PAIR (database_name,DROPDB [,NOINDEX])] |<BR>M E M U S A G E |<BR>N E WALLOC[|(database_name[,NOINDEX])] |<BR>OPENTRAN ({database_name} | {database_id})<BR>[WITH TA B L E R E S U LTS] |<BR>OUTPUTBUFFER(spid) |<BR>PERFMON |<BR>P I N TABLE (database_id,table_id) |<BR>S H O W _ S TATISTICS (table_name,index_name) |<BR>SHOWCONTIG(table_id,[index_id]) |<BR>SHRINKDB (database_name[,new_size[,'MASTEROVERRIDE')]]) |<BR>SQLPERF ({IOSTATS | LRUSTATS | NETSTATS | RASTATS[,CLEAR]} | {THREADS} |<BR>{ L O G S PACE}) |<BR>T E X TALL [({database_name | database_id} [,FULL | FAST])] |<BR>T E X TALLOC [({table_name | table_id}[,FULL | FAST])] |<BR>TRACEOFF(trace#) |<BR>TRACEON(trace#) |<BR>T R A C E S TATUS (trace#[,trace#]) |<BR>U N P I N TABLE(database_id,table_id) |<BR>U P D ATEUSAGE({0 | database_name} [,table_name [,index_id]]) |<BR>[WITH NO_INFOMSGS]<BR>有些D B C C命令需要数据库名，而有些需要数据库I D。你可以观看SQL Server的错误日志<BR>或运行如下的查询并在S e l e c t语句中用数据库名代替d b n a m e就可得到数据库的I D。</P>
<P>存储还有一点就是最后使用NTFS格式，NTFS格式的读取速度比FAT32快。其实这是属于SQLServer调优中，系统优化的部分。</P>
<P>说到这补充一点，一般影响SQLServer调优的有4个部分：系统调优占2.5%，数据库调优占17.5%，设计调优占20%，程序可调优的空间最大占60%。呵呵，但是一般DBA拿到一个系统的时候，设计调优和程序可调优是不可控的，应为他不可能去改买来的软件。</P>
<P>面先看看索引步骤，这些有利于大家对索引的认识。<BR>一、堆<BR>1、sqlserver在sysindexes表中查到对应的数据行<BR>2、读取indid值(应为堆没有索引所以是0)后，sqlserver开始读取firstIAM值，获取堆的IAM的第一页(8KB)的位置。(IAM将堆的各个区域联接在一起)<BR>3、sqlserver根据IAM提供的区域地址，一个区域一个区域的查找，一个数据页一个数据页的查找，直到获取所需的数据为止。</P>
<P>二、簇索引<BR>1、sqlserver在sysindexes表中查到对应的数据行，找到indid为1后，sqlserver开始读取root列的值。(列值是根页面的地址)<BR>2、找到根页面后开始搜索，比如要搜索的表是10条记录一页，这里是找“1981”这个值，将索引的值“1981”与根页面的索引比较。由于“1981”是在1900到2000之间。所以sqlserver开始搜索1900所在的中间页。<BR>3、找到“1900”所在的中间页后，将索引值“1981”继续与中间页的索引比较，由于“1981”是在1980到1990之间。所以sqlserver开始搜索1980所在的数据页。(注意这一步是根据中间页找数据页)<BR>4、找到“1980”所在的数据页后，将索引值“1981”继续与数据页的索引比较，很快就可以在这个数据页上找到“1981”的数据行了。</P>
<P>三、非簇索引<BR>1、sqlserver在sysindexes表中查到对应的数据行，找到indid为后，值为2到251后，sqlserver开始读取root列值。<BR>2、找到根页面后，将“1981”与根页面的索引比较，由于“1981”是在1900到2000之间。所以sqlserver开始搜索1900所在的中间页。(注意这一步是根据中间页找叶页面)<BR>3、找到中间页后，将索引值“1981”继续与中间页的索引比较，由于“1981”是在1980到1990之间。所以sqlserver开始搜索1980所在的叶页面。<BR>4、找到“1980”所在的叶页面后，继续叫索引值“1981”与叶页面上的关键字比较，在叶页面上找到关键字为“1981”的数据行ID。<BR>5、根据数据行ID提供的数据页和数据行信息，定位到指定的数据页和数据行，找到“1981”这条记录是“晶”的。<BR>堆在数据表小于8K的时候访问速度最快，它不需要去找索引，应为当你的数据本来就在一个页里也没有必要用索引。簇索引，在使用簇索引查询的时候，区块查询是最快的，如用between，应为他是物理连续的，你应该尽量减少对它的updaet,应为这可以使它物理不连续。非簇索引与物理顺序无关，设计它时必须有高度的可选择性，可以提高查询速度，但对表update的时候这些非簇索引会影响速度，且占用空间大，如果你愿意用空间和修改时间换取速度可以考虑。如果在视图上建立索引,那视图的结果集就会被存储起来，对与特定的查询性能可以提高很多，但同样对update语句时它也会严重减低性能，一般用在数据相对稳定的数据仓库中。好，为什么update会影响索引，打个比方:1 2 3 4 5 6 7 8 |1 2 ..它们在insert后是物理连续的，每个数字代表一条数据，一条数据1K，分割符前正好填满一页，在做查询时由于不需要指针跳转，所以效率是最佳的，而这是update了3把它的数据量改为了1.2K，超过原来的一页(8K)的大小，这时sqlserver会： 1 2 4 5 6 7 8|1 2.....| 3(1.2k) 将3放到最后面可以插入的空间去。而2的指针还是指向3,如果这时你再检索，当检索到2的时候，物理指针将跳转到3上，然后再跳转回4。如果看懂的话，应该明白了为什么不提倡update索引过的列，不提倡使用varchar类型的列当索引。应为varchar是变长的，如果你频繁的update它，你的索引会事得其反。而sqlserver里也提供了填充因子来减少来自这方面的影响，比如你的因子为20%，当插入数据时,发现这个页底于20%的可用空间，sqlserver不会再继续插入这一页而是申请新的一页存储如：1 2 3 4 5 6 | 7 8 1 2 .. 当你再update 3为1.2K的时候将不会将3分到其他页上。那是不是填充因子越大越好呢，不是的，如果太大，浪费空间不算什么，主要是会影响查询效率，应为在查询过程中最大消耗是来自于读取新页。所以你必须根据你的实际情况，适当设置。</P>
<P>维护索引也是很重要的，update是一个破坏索引的方式，它不但使指针跳转，而且使数据冗余，产生了许多碎片。你就需要用DBCC INDEXDEFRAG 整理指定的表或视图的聚集索引和辅助索引碎片。另外我们知道索引一般会有一个根比如有1 2 3 4 5，那建立索引的时候根是3，取中间的。当我们开始向这个表填加数据，比如这个列是一个顺序增长的如1 2 3 4 5...10000，这时发生了根节点偏移，应为根还是3而，就好象这个树变成了单边树，只往一个方向长。而这个现象是很常见的。而维护索引也很简单，最有效的办法是用DBCC DBREINDEX重建索引。<BR>SQL Server在每次重启服务时会重建tempdb数据库</P>
<P>如果系统运行过程中 tempdb因需要自动增长了，SQL Serve不会记住增长后的大小，重启服务后仍然恢复到初始大小，<BR>但如果用户使用了手工调整tempdb的大小，重启服务SQL Server会把tempdb重建为用户指定大小</P>
<P>测试示例</P>
<P>tempdb初始化大小为8MB</P>
<P>1)使tempdb自动增长<BR>select b.* into #t from sysprocesses a,sysobjects b<BR>重启后使用sp_helpdb 'tempdb'<BR>可以看到tempdb又恢复到8MB<BR>2) 用户使用Alter Database调整为100MB,</P>
<P>USE master<BR>GO<BR>ALTER DATABASE tempdb<BR>MODIFY FILE<BR>(NAME = tempdev,SIZE = 100MB)</P>
<P>重启服务后使用查看tempdb大小就为100MB</P>
<P>以下查询可以看到tempdb的变化<BR>select a.filename,a.name,a.size*8.0/1024.0 as originalsize_MB,<BR>f.size*8.0/1024.0 as currentsize_MB<BR>from master..sysaltfiles a join tempdb..sysfiles f on a.fileid=f.fileid<BR>where dbid=db_id('tempdb')<BR>and a.size&lt;&gt;f.size</P>
<P>总结:<BR>当系统自动调整tempdb大小时，对文件的读写将暂时的阻塞<BR>所以如果我们预知tempdb将会增加到某个大小时，可以自行调整，从而避免性能下降</P>
<P>减少执行过程中的重新编译</P>
<P>对有的查询而言，由编译过程产生查询计划所付出的代价占是执行整个查询所付出代价的一部分，所以使用事先编译好的计划可以节省时间，避免重新编译的情况</P>
<P>存储过程recompile的原因</P>
<P>referenced objects, running the sp_recompile system stored procedure against<BR>a table referenced by the stored procedure, <BR>restoring the database containing the stored procedure or any object referenced by the stored procedure, or the stored <BR>procedures plan dropping from the cache. </P>
<P><BR>删除或者重建过程<BR>在过程里使用with recomplie语句，或者在执行时使用<BR>使用sp_recomlile 使存储过程在下次运行时重新编译<BR>恢复数据库时<BR>或者存储过程计划从高速缓存中移出<BR>如果过程引用表的有足够的数据发生变化<BR>如果用户在DDL语句中插入DML语句<BR>SET CONCAT_NULL_YIELDS_NULL </P>
<P>While these recompilations are normal and cannot be helped, DBAs and developers <BR>should not assume that all stored procedure recompiles are for normal reasons and should take a proactive approach to determine if they have a recompile problem. </P>
<P><BR>可以使用profile跟踪过程的重新编译<BR>新建一跟踪<BR>事件删除全部，选择存储过程下的 SP:Recompile, SP:Starting, and SP:Completed under Stored Procedure events<BR>sP:StmtStarting and SP:StmtCompleted 可以查看哪些语句引起recompile<BR></P><img src ="http://www.blogjava.net/nighTuner/aggbug/3248.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nighTuner/" target="_blank">nighTuner</a> 2005-04-14 01:48 <a href="http://www.blogjava.net/nighTuner/articles/3248.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何在 Windows 2000 中配置权威时间服务器</title><link>http://www.blogjava.net/nighTuner/articles/3239.html</link><dc:creator>nighTuner</dc:creator><author>nighTuner</author><pubDate>Wed, 13 Apr 2005 16:19:00 GMT</pubDate><guid>http://www.blogjava.net/nighTuner/articles/3239.html</guid><wfw:comment>http://www.blogjava.net/nighTuner/comments/3239.html</wfw:comment><comments>http://www.blogjava.net/nighTuner/articles/3239.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/nighTuner/comments/commentRss/3239.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/nighTuner/services/trackbacks/3239.html</trackback:ping><description><![CDATA[<TABLE class=ctFont id=contarea cellSpacing=0 cellPadding=3 width="100%" background=tmpimg/bg2.gif border=0>
<TBODY>
<TR>
<TD>
<TABLE class=ctFont cellSpacing=0 cellPadding=1 width="100%" bgColor=#d0d0c8 border=0>
<TBODY>
<TR>
<TD bgColor=#f0f0f0>摘要：http://support.microsoft.com/default.aspx?scid=kb;zh-cn;216734&amp;Product=win2000IN1</TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD>
<P>有关本文的 Microsoft Windows XP 版本，请参阅 <A class=KBlink href="http://support.microsoft.com/kb/314054">314054</A>。</P>
<DIV class=section>
<H2 class=subTitle><A name=kb1>概要</A></H2>
<DIV class=sbody>本文介绍如何在 Microsoft Windows Server 2000 中配置 Windows 时间服务。可以配置 Windows 时间服务以使用内部硬件时钟或外部时间源。我们建议您使用内部硬件时钟。</DIV>
<H2 class=subTitle><A name=kb2>简介</A></H2>
<DIV class=sbody>Windows 包含 W32Time，它是 Kerberos 身份验证协议所需的时间服务工具。Windows 时间服务的目的是确保组织中运行 Windows 2000 或更高版本的所有计算机都使用同一个时间。为确保合理地使用公共时间，Windows 时间服务使用层级关系来控制授权，并且不允许出现循环。<BR><BR>默认情况下，基于 Windows 的计算机使用下面的层级： 
<TABLE class=list>
<TBODY>
<TR>
<TD class=bullet>•</TD>
<TD class=text>所有客户端桌面计算机都提名身份验证域控制器作为其入站时间伙伴。</TD></TR>
<TR>
<TD class=bullet>•</TD>
<TD class=text>所有成员服务器都遵循与客户端桌面计算机相同的过程。</TD></TR>
<TR>
<TD class=bullet>•</TD>
<TD class=text>域控制器可以提名主域控制器 (PDC) 操作主机作为其入站时间伙伴，但可能使用基于层次编号的父域控制器。</TD></TR>
<TR>
<TD class=bullet>•</TD>
<TD class=text>所有 PDC 操作主机都遵循域的层级来选择其入站时间伙伴。</TD></TR></TBODY></TABLE>在此层级中，位于林根的 PDC 操作主机成为组织的权威。我们强烈建议您将权威时间服务器配置为从硬件源中获取时间。当您将权威时间服务器配置为与 Internet 时间源同步时，不会有任何身份验证。我们还建议您降低服务器和独立客户端的时间校准设置。这些建议可以为您的域提供更准确的时间和更高的安全性。 </DIV>
<H2 class=subTitle><A name=kb3>更多信息</A></H2>
<DIV class=sbody>
<H3>配置 Windows 时间服务以使用内部硬件时钟</H3><B>警告</B>：注册表编辑器使用不当可能导致严重问题，可能需要重新安装操作系统。Microsoft 不能保证您可以解决因注册表编辑器使用不当而导致的问题。使用注册表编辑器需要您自担风险。<BR><BR>我们极力建议您将权威时间服务器配置为从硬件源收集时间。当您将权威时间服务器配置为与 Internet 时间源同步时，不会有任何身份验证。要配置 Windows 时间服务以使用内部硬件时钟，请按照下列步骤操作： 
<TABLE class=list>
<TBODY>
<TR>
<TD class=number>1.</TD>
<TD class=text>单击“开始”，单击“运行”，键入 <SPAN class=userInput>regedit</SPAN>，然后单击“确定”。</TD></TR>
<TR>
<TD class=number>2.</TD>
<TD class=text>找到并单击下面的注册表子项： 
<DIV class=indent><STRONG class=uiterm>HKEY LOCAL MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters</STRONG></DIV></TD></TR>
<TR>
<TD class=number>3.</TD>
<TD class=text>在右窗格中，右键单击“ReliableTimeSource”，然后单击“修改”。</TD></TR>
<TR>
<TD class=number>4.</TD>
<TD class=text>在“编辑 DWORD 值”的“数值数据”框中键入 <SPAN class=userInput>1</SPAN>，然后单击“确定”。</TD></TR>
<TR>
<TD class=number>5.</TD>
<TD class=text>找到并单击下面的注册表子项： 
<DIV class=indent><STRONG class=uiterm>HKEY LOCAL MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters</STRONG></DIV></TD></TR>
<TR>
<TD class=number>6.</TD>
<TD class=text>在右窗格中，右键单击“LocalNTP”，然后单击“修改”。</TD></TR>
<TR>
<TD class=number>7.</TD>
<TD class=text>在“编辑 DWORD 值”的“数值数据”框中键入 <SPAN class=userInput>1</SPAN>，然后单击“确定”。</TD></TR>
<TR>
<TD class=number>8.</TD>
<TD class=text>退出注册表编辑器。</TD></TR>
<TR>
<TD class=number>9.</TD>
<TD class=text>在命令提示符处，键入以下命令以重新启动 Windows 时间服务，然后按 Enter 键： 
<DIV class=indent><SPAN class=userInput>net stop w32time &amp;&amp; net start w32time</SPAN></DIV></TD></TR>
<TR>
<TD class=number>10.</TD>
<TD class=text>在除时间服务器以外的其他所有计算机上运行以下命令，以便根据时间服务器重新设置本地计算机的时间： 
<DIV class=indent><SPAN class=userInput>w32tm -s</SPAN></DIV></TD></TR></TBODY></TABLE><B>注意</B>：不得将时间服务器配置为与其自身同步。如果将时间服务器配置为与其自身同步，则会在应用程序日志中记录以下事件：<BR><BR>时间提供程序 NtpClient 不能访问，或当前正在从 192.168.1.1 (ntp.m|0x0|192.168.1.1:123-&gt;192.168.1.1:123) 接收无效的时间数据。<BR><BR>在尝试联系它 8 次以后，没有收到来自手动对等端 192.168.1.1 的响应。此对等端将不再被作为时间源，同时 NtpClient 将尝试发现一个新的对等端以与其同步。<BR><BR>时间提供程序 NtpClient 被配置为从一个或多个时间源获得时间，但是当前这些源没有一个是可以访问的。在 960 分钟内，不会进行联系时间源的尝试。NtpClient 没有一个能够提供准确时间的时间源。<BR><BR>有关“w32tm”命令的更多信息，请在命令提示符处键入以下命令： 
<DIV class=indent><SPAN class=userInput>w32tm /?</SPAN></DIV><BR>
<H3>将 Windows 时间服务配置为使用外部时间源</H3>管理员可以对位于林根的 PDC 操作主机上的 Windows 时间服务进行配置，使其将外部简单网络时间协议 (SNTP) 时间服务器识别为权威时间服务器。例如，可以将 Microsoft 时间服务器 (time.windows.com) 用作外部 SNTP 时间服务器。要将 Windows 时间服务配置为使用外部 SNTP 时间服务器，请按照下列步骤操作： 
<TABLE class=list>
<TBODY>
<TR>
<TD class=number>1.</TD>
<TD class=text>单击“开始”，单击“运行”，键入 <SPAN class=userInput>regedit</SPAN>，然后单击“确定”。</TD></TR>
<TR>
<TD class=number>2.</TD>
<TD class=text>按照下列步骤操作，将服务器类型改为 NTP： 
<TABLE class=list>
<TBODY>
<TR>
<TD class=number>a. </TD>
<TD class=text>找到并单击下面的注册表子项： 
<DIV class=indent><STRONG class=uiterm>HKEY LOCAL MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters</STRONG></DIV></TD></TR>
<TR>
<TD class=number>b. </TD>
<TD class=text>在右窗格中，右键单击“TYPE”，然后单击“修改”。</TD></TR>
<TR>
<TD class=number>c. </TD>
<TD class=text>在“编辑值”的“数值数据”框中键入 <SPAN class=userInput>NTP</SPAN>，然后单击“确定”。</TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD class=number>3.</TD>
<TD class=text>按照下列步骤操作，将该服务器配置为可靠的时间源： 
<TABLE class=list>
<TBODY>
<TR>
<TD class=number>a. </TD>
<TD class=text>在右窗格中，右键单击“ReliableTimeSource”，然后单击“修改”。</TD></TR>
<TR>
<TD class=number>b. </TD>
<TD class=text>在“编辑 DWORD 值”的“数值数据”框中键入 <SPAN class=userInput>1</SPAN>，然后单击“确定”。</TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD class=number>4.</TD>
<TD class=text>按照下列步骤操作，将服务器 LocalNTP 配置为 1： 
<TABLE class=list>
<TBODY>
<TR>
<TD class=number>a. </TD>
<TD class=text>在右窗格中，右键单击“LocalNTP”，然后单击“修改”。</TD></TR>
<TR>
<TD class=number>b. </TD>
<TD class=text>在“编辑 DWORD 值”的“数值数据”框中键入 <SPAN class=userInput>1</SPAN>，然后单击“确定”。</TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD class=number>5.</TD>
<TD class=text>按照下列步骤操作，指定时间源： 
<TABLE class=list>
<TBODY>
<TR>
<TD class=number>a. </TD>
<TD class=text>在右窗格中，右键单击“NtpServer”，然后单击“修改”。</TD></TR>
<TR>
<TD class=number>b. </TD>
<TD class=text>在“编辑值”的“数值数据”框中键入 <VAR>Peers</VAR>，然后单击“确定”。<BR><BR><B>注意</B>：<VAR>Peers</VAR> 是一个占位符，应替换为您的计算机从中获取时间戳的对等端列表（以空格分隔）。列出的每个 DNS 名称都必须是唯一的。</TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD class=number>6.</TD>
<TD class=text>调整时间校准设置（仅限 Windows 2000 Service Pack 4）。为此，请按照下列步骤操作： 
<TABLE class=list>
<TBODY>
<TR>
<TD class=number>a. </TD>
<TD class=text>找到并单击下面的注册表子项： 
<DIV class=indent><STRONG class=uiterm>HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters</STRONG></DIV></TD></TR>
<TR>
<TD class=number>b. </TD>
<TD class=text>在右窗格中，右键单击“MaxAllowedClockErrInSecs”，然后单击“修改”。</TD></TR>
<TR>
<TD class=number>c. </TD>
<TD class=text>在“编辑 DWORD 值”的“数值数据”框中键入 <VAR>TimeInSeconds</VAR>，然后单击“确定”。<BR><BR><B>注意</B>：<VAR>TimeInSeconds</VAR> 是一个占位符，应替换为您希望各次轮询所间隔的秒数。推荐的值是 900。该值将时间服务器配置为每 15 分钟轮询一次。</TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD class=number>7.</TD>
<TD class=text>按照下列步骤操作，设置轮询间隔： 
<TABLE class=list>
<TBODY>
<TR>
<TD class=number>a. </TD>
<TD class=text>找到并单击下面的注册表子项： 
<DIV class=indent><STRONG class=uiterm>HKEY LOCAL MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters</STRONG></DIV></TD></TR>
<TR>
<TD class=number>b. </TD>
<TD class=text>在右窗格中，右键单击“Period”，然后单击“修改”。</TD></TR>
<TR>
<TD class=number>c. </TD>
<TD class=text>在“编辑 DWORD 值”的“数值数据”框中键入 <SPAN class=userInput>24</SPAN>，然后单击“确定”。</TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD class=number>8.</TD>
<TD class=text>在“文件”菜单上，单击“退出”以退出注册表编辑器。</TD></TR>
<TR>
<TD class=number>9.</TD>
<TD class=text>在命令提示符处，键入以下命令以重新启动 Windows 时间服务，然后按 Enter 键： 
<DIV class=indent><SPAN class=userInput>net stop w32time &amp;&amp; net start w32time</SPAN></DIV></TD></TR>
<TR>
<TD class=number>10.</TD>
<TD class=text>在除时间服务器以外的其他所有计算机上运行以下命令，以便根据时间服务器重新设置本地计算机的时间： 
<DIV class=indent><SPAN class=userInput>w32tm -s</SPAN></DIV></TD></TR></TBODY></TABLE><BR>默认情况下，SNTP 使用用户数据报协议 (UDP) 端口 123。如果此端口不对 Internet 开放，则无法将您的服务器与 Internet SNTP 服务器同步。被配置为可靠时间源的计算机会被标识为 Windows 时间服务的根。时间服务的根是域的权威服务器，通常被配置为从外部 NTP 服务器或硬件设备检索时间。您可以将一台时间服务器配置为可靠的时间源，以优化在整个域层级中传输时间的方式。如果将某个域控制器配置为可靠的时间源，Net Logon 服务将在该域控制器登录到网络时将其宣布为可靠的时间源。当其他域控制器查找与之同步的时间源时，它们会优先选择已有的可靠时间源。<BR><BR>HKEY LOCAL MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\Period 注册表项控制着 Windows 时间服务同步的频率。为它指定的值只能是下表中的某个特殊值： 
<TABLE class=list>
<TBODY>
<TR>
<TD class=bullet>•</TD>
<TD class=text><SPAN class=userInput>65531, "DailySpecialSkew"</SPAN> — 设置为每隔 45 分钟同步一次，直到有一次成功，然后每天同步一次。</TD></TR>
<TR>
<TD class=bullet>•</TD>
<TD class=text><SPAN class=userInput>65532, "SpecialSkew"</SPAN> — 设置为每隔 45 分钟同步一次，直到有三次成功，然后每隔 8 小时同步一次。这是默认设置。</TD></TR>
<TR>
<TD class=bullet>•</TD>
<TD class=text><SPAN class=userInput>65533, "Weekly"</SPAN> — 设置为每隔 7 天同步一次。</TD></TR>
<TR>
<TD class=bullet>•</TD>
<TD class=text><SPAN class=userInput>65534, "Tridaily"</SPAN> — 设置为每隔 3 天同步一次。</TD></TR>
<TR>
<TD class=bullet>•</TD>
<TD class=text><SPAN class=userInput>65535, "BiDaily"</SPAN> — 设置为每隔 2 天同步一次。</TD></TR>
<TR>
<TD class=bullet>•</TD>
<TD class=text><SPAN class=userInput>0</SPAN> — 对于 NT5DS，则每隔 45 分钟同步一次，直到有三次成功，然后每隔 8 小时同步一次。对于 NTP，则每隔 8 小时同步一次。 </TD></TR>
<TR>
<TD class=bullet>•</TD>
<TD class=text><SPAN class=userInput><VAR>freq</VAR></SPAN> — <VAR>freq</VAR> 表示您希望 Windows 时间服务每天同步的次数。如果您不想使用那些事先指定好的值，则必须使用此选项。</TD></TR></TBODY></TABLE><BR></DIV>
<H2 class=subTitle><A name=kb4>参考</A></H2>
<DIV class=sbody>有关 Windows 时间服务的其他信息，请单击下面的文章编号，以查看 Microsoft 知识库中相应的文章： 
<DIV class=indent><A class=KBlink href="http://support.microsoft.com/kb/884776">884776</A> 配置 Windows 时间服务以防出现大的时间偏移 </DIV>
<DIV class=indent><A class=KBlink href="http://support.microsoft.com/kb/816042">816042</A> 如何在 Windows Server 2003 中配置权威时间服务器 </DIV>
<DIV class=indent><A class=KBlink href="http://support.microsoft.com/kb/314054">314054</A> 如何在 Windows XP 中配置权威时间服务器 </DIV><BR>有关 Windows 2000 Server 中的 Windows 时间服务的其他信息，请参见“Windows 时间服务”白皮书。要下载此文档，请访问下面的 Microsoft Web 站点： 
<DIV class=indent><A href="http://www.microsoft.com/windows2000/docs/wintimeserv.doc">http://www.microsoft.com/windows2000/docs/wintimeserv.doc</A></DIV><BR>有关基于 Windows Server 2003 的林中的 Windows 时间服务的其他信息，请访问下面的网站： 
<DIV class=indent><A href="http://www.microsoft.com/resources/documentation/windowsserv/2003/all/techref/en-us/default.asp?url=/resources/documentation/windowsserv/2003/all/techref/en-us/w2k3tr_times_intro.asp">http://www.microsoft.com/resources/documentation/WindowsServ/2003/all/techref/en-us/Default.asp?url=/Resources/Documentation/windowsserv/2003/all/techref/en-us/W2K3TR_times_intro.asp</A></DIV></DIV></DIV></TD></TR></TBODY></TABLE><img src ="http://www.blogjava.net/nighTuner/aggbug/3239.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nighTuner/" target="_blank">nighTuner</a> 2005-04-14 00:19 <a href="http://www.blogjava.net/nighTuner/articles/3239.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>网络命令之：net命令</title><link>http://www.blogjava.net/nighTuner/articles/3238.html</link><dc:creator>nighTuner</dc:creator><author>nighTuner</author><pubDate>Wed, 13 Apr 2005 15:47:00 GMT</pubDate><guid>http://www.blogjava.net/nighTuner/articles/3238.html</guid><wfw:comment>http://www.blogjava.net/nighTuner/comments/3238.html</wfw:comment><comments>http://www.blogjava.net/nighTuner/articles/3238.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/nighTuner/comments/commentRss/3238.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/nighTuner/services/trackbacks/3238.html</trackback:ping><description><![CDATA[<P><FONT color=#000000>许多 Windows NT 网络命令以 net 开始。这些 net 命令有一些公共属性： <BR>通过键入 net /? 可查阅所有可用的 net 命令。 <BR>通过键入 net help 命令可在命令行中获得 net 命令的语法帮助。例如，要得到 net acco<BR>unts 命令的帮助，请键入 net help accounts。 <BR>所有 net 命令接受选项 / yes 和 /no（可缩写为 / y 和 /n ）。/ y 对命令产生的任何交<BR>互提示自动回答“是”，/n 回答“否”。例如，net stop server 通常提示确认是否根据服<BR>务器服务结束所有服务，net stop server /y 自动回答“是”并关闭服务器服务。 </FONT></P>
<P><FONT color=#000000>Net Accounts </FONT></P>
<P><FONT color=#000000>更新用户帐号数据库、更改密码及所有帐号的登录要求。必须要在更改帐号参数的计算机上<BR>运行网络登录服务。 <BR>net accounts [/forcelogoff:{minutes | no}] [/minpwlen:length] [/maxpwage:{days |<BR>unlimited}] [/minpwage:days] [/uniquepw:number] [/domain] <BR>net accounts [/sync] [/domain] <BR>参数 <BR>无 <BR>键入不带参数的 net accounts，将显示当前密码设置、登录时限及域信息。 <BR>/forcelogoff:{minutes | no} <BR>设置当用户帐号或有效登录时间过期时，结束用户和服务器会话前的等待时间。no 选项禁止<BR>强行注销。该参数的默认设置为 no。 <BR>指定 /forcelogoff:minutes 之后，Windows NT 在其强制用户退出网络 minutes 分钟之前<BR>，将给用户发出警报。如果还有打开的文件，Windows NT 将警告用户。如果 minutes 小于<BR>两分钟，Windows NT 警告用户立即从网络注销。 <BR>/minpwlen:length <BR>设置用户帐号密码的最少字符数。允许范围是 0-14，默认值为 6。 <BR>/maxpwage:{days | unlimited} <BR>设置用户帐号密码有效的最大天数。unlimited 不设置最大天数。/maxpwage 选项的天数必<BR>须大于 /minpwage。允许范围是 1-49,710 天 (unlimited)。默认值为 90 天。 <BR>/minpwage:days <BR>设置用户必须保持原密码的最小天数。 0 值不设置最小时间。允许范围是 0-49,710 天，默<BR>认值为 0 天。 <BR>/uniquepw:number <BR>要求用户更改密码时，必须在经过 number 次后，才能重复使用与之相同的密码。允许范围<BR>是 0-8。默认值为 5。 <BR>/domain <BR>在当前域的主域控制器上执行该操作。否则只在本地计算机执行操作。 <BR>该参数仅用于 Windows NT Server 域中的 Windows NT Workstation 计算机，Windows NT <BR>Server 计算机默认为在主域控制器执行操作。 <BR>/sync <BR>当用于主域控制器时，该命令使域中所有备份域控制器同步；当用于备份域控制器时，该命<BR>令仅使该备份域控制器与主域控制器同步。该命令仅适用于 Windows NT Server 域成员的计<BR>算机。 </FONT></P>
<P><FONT color=#000000>Net Computer </FONT></P>
<P><FONT color=#000000>从域数据库中添加或删除计算机。该命令仅在运行 Windows NT Server 的计算机上可用。 <BR>net computer \computername {/add | /del} <BR>参数 <BR>\computername <BR>指定要添加到域或从域中删除的计算机。 <BR>/add <BR>将指定计算机添加到域。 <BR>/del <BR>将指定计算机从域中删除。 </FONT></P>
<P><FONT color=#000000>Net Config </FONT></P>
<P><FONT color=#000000>显示当前运行的可配置服务，或显示并更改某项服务的设置。 <BR>net config [service [options]] <BR>参数 <BR>无 <BR>键入不带参数的 net config 将显示可配置服务的列表。 <BR>service <BR>通过 net config 命令进行配置的服务（server 或 workstation）。 <BR>options <BR>服务的特定选项。完整语法请参阅 net config server 或 net config workstation。 </FONT></P>
<P><FONT color=#000000>Net Config Server </FONT></P>
<P><FONT color=#000000>运行服务时显示或更改服务器的服务设置。 <BR>net config server [/autodisconnect:time] [/srvcomment:"text "] [/hidden:{yes | n<BR>o}] <BR>参数 <BR>无 <BR>键入不带参数的 net config server，将显示服务器服务的当前配置。 <BR>/autodisconnect:time <BR>设置断开前用户会话闲置的最大时间值。可以指定 -1，表示永不断开连接。允许范围是 -1<BR>-65535 分钟，默认值是 15 分钟。 <BR>/srvcomment:"text " <BR>为服务器添加注释，可以通过 net view 命令在屏幕上显示所加注释。注释最多可达 48 个<BR>字符，文字要用引号引住。 <BR>/hidden:{yes | no} <BR>指定服务器的计算机名是否出现在服务器列表中。请注意隐含某个服务器并不改变该服务器<BR>的权限。默认为 no。 </FONT></P>
<P><FONT color=#000000>Net Config Workstation </FONT></P>
<P><FONT color=#000000>服务运行时，显示或更改工作站各项服务的设置。 <BR>net config workstation [/charcount:bytes] [/chartime:msec] [/charwait:sec] <BR>参数 <BR>无 <BR>键入不带参数的 net config workstation 将显示本地计算机的当前配置。 <BR>/charcount:bytes <BR>指定 Windows NT 在将数据发送到通讯设备之前收集的数据量。如果同时设置 /chartime:m<BR>sec 参数，Windows NT 按首先满足条件的选项运行。允许范围是 0-65535 字节，默认值是<BR>16 字节。 <BR>/chartime:msec <BR>指定 Windows NT 在将数据发送到通讯设备之前收集数据的时间。如果同时设置 /charcoun<BR>t:bytes 参数，Windows NT 按首先满足条件的选项运行。允许范围是 0-65535000 毫秒，默<BR>认值是 250 毫秒。 <BR>/charwait:sec <BR>设置 Windows NT 等待通讯设备变为可用的时间。允许的范围是 0-65535 秒，默认值是 36<BR>00 秒。 </FONT></P>
<P><FONT color=#000000>Net Continue </FONT></P>
<P><FONT color=#000000>重新激活挂起的服务。 <BR>net continue service <BR>参数 <BR>service <BR>能够继续运行的服务，包括： file server for macintosh（该服务仅限于 Windows NT Se<BR>rver）, ftp publishing service, lpdsvc, net logon, network dde，network dde dsdm<BR>，nt lm security support provider，remoteboot（该服务仅限于 Windows NT Server），<BR>remote access server, schedule，server，simple tcp/ip services 及 workstation 。</FONT></P>
<P><BR><FONT color=#000000>Net File </FONT></P>
<P><FONT color=#000000>显示某服务器上所有打开的共享文件名及锁定文件数。该命令也可以关闭个别文件并取消文 <BR>件锁定。 <BR>net file [id [/close]] <BR>参数 <BR>无 <BR>键入不带参数的 net file 可获得服务器上打开文件的列表。 <BR>id <BR>文件标识号。 <BR>/close <BR>关闭打开的文件并释放锁定记录。请从共享文件的服务器中键入该命令。 </FONT></P>
<P><FONT color=#000000>Net Group </FONT></P>
<P><FONT color=#000000>在 Windows NT Server 域中添加、显示或更改全局组。该命令仅在 Windows NT Server 域<BR>中可用。 <BR>net group [groupname [/comment:"text "]] [/domain] <BR>net group groupname {/add [/comment:"text "] | /delete} [/domain] <BR>net group groupname username [ ...] {/add | /delete} [/domain] <BR>参数 <BR>无 <BR>键入不带参数的 net group 可以显示服务器名称及服务器的组名称。 <BR>groupname <BR>要添加、扩展或删除的组。仅提供某个组名便可查看组中的用户列表。 <BR>/comment:"text " <BR>为新建组或现有组添加注释。注释最多可以是 48 个字符，并用引号将注释文字引住。 <BR>/domain <BR>在当前域的主域控制器中执行该操作，否则在本地计算机上执行操作。 <BR>该参数仅用于作为 Windows NT Server 域成员的 Windows NT Workstation 计算机。Windo<BR>ws NT Server 计算机默认为在主域控制器中操作。 <BR>username[ ...] <BR>列表显示要添加到组或从组中删除的一个或多个用户。使用空格分隔多个用户名称项。 <BR>/add <BR>添加组或在组中添加用户名。必须使用该命令为添加到组中的用户建立帐号。 <BR>/delete <BR>删除组或从组中删除用户名。 </FONT></P>
<P><FONT color=#000000>Net Help </FONT></P>
<P><FONT color=#000000>提供网络命令列表及帮助主题，或提供指定命令或主题的帮助。可用网络命令列于 N 下面的<BR>“命令参考”中“命令”窗口内。 <BR>net help [command] <BR>net command {/help | /?} <BR>参数 <BR>无 <BR>键入不带参数的 net help 显示能够获得帮助的命令列表和帮助主题。 <BR>command <BR>需要其帮助的命令，不要将 net 作为 command 的一部分。 <BR>/help <BR>提供显示帮助文本方式选择。 <BR>/? <BR>显示命令的正确语法。 </FONT></P>
<P><FONT color=#000000>Net Helpmsg </FONT></P>
<P><FONT color=#000000>提供 Windows NT 错误信息的帮助。 <BR>net helpmsg message# <BR>参数 <BR>message# <BR>需要其帮助的 Windows NT 消息的四位代码。 </FONT></P>
<P><FONT color=#000000>Net Localgroup </FONT></P>
<P><FONT color=#000000>添加、显示或更改本地组。 <BR>net localgroup [groupname [/comment:"text "]] [/domain] <BR>net localgroup groupname {/add [/comment:"text "] | /delete} [/domain] <BR>net localgroup groupname name [ ...] {/add | /delete} [/domain] <BR>参数 <BR>无 <BR>键入不带参数的 net localgroup 将显示服务器名称和计算机的本地组名称。 <BR>groupname <BR>要添加、扩充或删除的本地组名称。只提供 groupname 即可查看用户列表或本地组中的全局<BR>组。 <BR>/comment: "text " <BR>为新建或现有组添加注释。注释文字的最大长度是 48 个字符，并用引号引住。 <BR>/domain <BR>在当前域的主域控制器中执行操作，否则仅在本地计算机上执行操作。 <BR>该参数仅应用于 Windows NT Server 域中的 Windows NT Workstation 计算机。Windows N<BR>T Server 计算机默认为在主域控制器中操作。 <BR>name [ ...] <BR>列出要添加到本地组或从本地组中删除的一个或多个用户名或组名，多个用户名或组名之间<BR>以空格分隔。可以是本地用户、其他域用户或全局组，但不能是其他本地组。如果是其他域 <BR>的用户，要在用户名前加域名（例如，SALESRALPHR）。 <BR>/add <BR>将全局组名或用户名添加到本地组中。在使用该命令将用户或全局组添加到本地组之前，必<BR>须为其建立帐号。 <BR>/delete <BR>从本地组中删除组名或用户名。 </FONT></P>
<P><FONT color=#000000>Net Name </FONT></P>
<P><FONT color=#000000>添加或删除消息名（有时也称别名），或显示计算机接收消息的名称列表。要使用 net nam<BR>e 命令，计算机中必须运行信使服务。 <BR>net name [name [/add | /delete]] <BR>参数 <BR>无 <BR>键入不带参数的 net name 将列出当前使用的名称。 <BR>name <BR>指定接收消息的名称。名称最多为 15 个字符。 <BR>/add <BR>将名称添加到计算机中。 /add 是可选项，键入 net name name 与键入 net name name /a<BR>dd 相同。 <BR>/delete <BR>从计算机中删除名称。 </FONT></P>
<P><FONT color=#000000>Net Pause </FONT></P>
<P><FONT color=#000000>暂停正在运行的服务。 <BR>net pause service <BR>参数 <BR>service <BR>指下列服务： file server for macintosh（仅限于 Windows NT Server）、ftp publishi<BR>ng service、lpdsvc、net logon、network dde、network dde dsdm、nt lm security sup<BR>port provider、remoteboot（仅限于 Windows NT Server）、remote access server、sch<BR>edule、server、simple tcp/ip services 或 workstation 。 </FONT></P>
<P><FONT color=#000000>Net Print </FONT></P>
<P><FONT color=#000000>显示或控制打印作业及打印队列。 <BR>net print \computername sharename <BR>net print [\computername ] job# [/hold | /release | /delete] <BR>参数 <BR>computername <BR>共享打印机队列的计算机名。 <BR>sharename <BR>打印队列名称。当包含 computername 与 sharename 时，使用反斜杠 () 将它们分开。 <BR>job# <BR>在打印机队列中分配给打印作业的标识号。有一个或多个打印机队列的计算机为每个打印作<BR>业分配唯一标识号。如果某个作业号用于共享打印机队列中，则不能指定给其他作业，也不<BR>能分配给其他打印机队列中的作业。 <BR>/hold <BR>使用 job# 时，在打印机队列中使打印作业等待。打印作业停留在打印机队列中，并且其他<BR>打印作业只能等到释放该作业之后才能进入。 <BR>/release <BR>释放保留的打印作业。 <BR>/delete <BR>从打印机队列中删除打印作业。 </FONT></P>
<P><FONT color=#000000>Net Send </FONT></P>
<P><FONT color=#000000>向网络的其他用户、计算机或通信名发送消息。要接收消息必须运行信使服务。 <BR>net send {name | * | /domain[:name] | /users} message <BR>参数 <BR>name <BR>要接收发送消息的用户名、计算机名或通信名。如果计算机名包含空字符，则要将其用引号<BR>(" ") 引住。 <BR>* <BR>将消息发送到组中所有名称。 <BR>/domain[:name] <BR>将消息发送到计算机域中的所有名称。如果指定 name，则消息将发送到指定域或组中的所有<BR>名称。 <BR>/users <BR>将消息发送到与服务器连接的所有用户。 <BR>message <BR>作为消息发送的文本。 </FONT></P>
<P><FONT color=#000000>Net Session </FONT></P>
<P><FONT color=#000000>列出或断开本地计算机和与之连接的客户端的会话。 <BR>net session [\computername] [/delete] <BR>参数 <BR>无 <BR>键入不带参数的 net session 可以显示所有与本地计算机的会话的信息。 <BR>\computername <BR>标识要列出或断开会话的计算机。 <BR>/delete <BR>结束与 \computername 计算机会话并关闭本次会话期间计算机的所有打开文件。如果省略 <BR>\computername 参数，将取消与本地计算机的所有会话。 </FONT></P>
<P><FONT color=#000000>Net Share </FONT></P>
<P><FONT color=#000000>创建、删除或显示共享资源。 <BR>net share sharename <BR>net share sharename=drive:path [/users:number | /unlimited] [/remark:"text"] <BR>net share sharename [/users:number | unlimited] [/remark:"text"] <BR>net share {sharename | drive:path} /delete <BR>&nbsp;参数 <BR>无 <BR>键入不带参数的 net share 将显示本地计算机上所有共享资源的信息。 <BR>sharename <BR>是共享资源的网络名称。键入带 sharename 的 net share 命令，只显示该共享信息。 <BR>drive:path <BR>指定共享目录的绝对路径。 <BR>/users:number <BR>设置可同时访问共享资源的最大用户数。 <BR>/unlimited <BR>不限制同时访问共享资源的用户数。 <BR>/remark:"text " <BR>添加关于资源的注释，注释文字用引号引住。 <BR>/delete <BR>停止共享资源。 </FONT></P>
<P><FONT color=#000000>Net Start </FONT></P>
<P><FONT color=#000000>启动服务，或显示已启动服务的列表。如果服务名是两个或两个以上的词，如 Net Logon 或<BR>Computer Browser，则必须用引号 (") 引住。. <BR>net start [service] <BR>参数 <BR>无 <BR>键入不带参数的 net start 则显示运行服务的列表。 <BR>service <BR>包括下列服务： alerter、client service for netware、clipbook server、computer br<BR>owser、dhcp client 、directory replicator 、eventlog 、ftp publishing service 、<BR>lpdsvc、messenger 、net logon 、network dde 、network dde dsdm 、network monitor<BR>ing agent 、nt lm security support provider 、ole 、remote access connection man<BR>ager 、remote access isnsap service 、remote access server 、remote procedure ca<BR>ll (rpc) locator 、remote procedure call (rpc) service 、schedule 、server 、sim<BR>ple tcp/ip services 、snmp、spooler 、tcp/ip netbios helper 、ups 及 workstation<BR>。 <BR>下列服务仅在 Windows NT Server 下可用：file server for macintosh、gateway servic<BR>e for netware、microsoft dhcp server、print server for macintosh、remoteboot、wi<BR>ndows internet name service 。 </FONT></P>
<P><FONT color=#000000>Net Statistics </FONT></P>
<P><FONT color=#000000>显示本地工作站或服务器服务的统计记录。 <BR>net statistics [workstation | server] <BR>参数 <BR>无 <BR>键入不带参数的 net statistics 将列出其统计信息可用的运行服务。 <BR>workstation <BR>显示本地工作站服务的统计信息。 <BR>server <BR>显示本地服务器服务的统计信息。 </FONT></P>
<P><FONT color=#000000>Net Stop </FONT></P>
<P><FONT color=#000000>停止 Windows NT 网络服务。 <BR>net stop service <BR>参数 <BR>service <BR>包括下列服务： alerter（警报）、client service for netware（Netware 客户端服务）<BR>、clipbook server（剪贴簿服务器）、computer browser（计算机浏览器）、directory r<BR>eplicator（目录复制器）、ftp publishing service (ftp )（ftp 发行服务）、lpdsvc、<BR>messenger（信使）、net logon（网络登录）、network dde（网络 dde）、network dde d<BR>sdm（网络 dde dsdm）、network monitor agent（网络监控代理）、nt lm security supp<BR>ort provider（NT LM 安全性支持提供）、ole（对象链接与嵌入）、remote access conne<BR>ction manager（远程访问连接管理器）、remote access isnsap service（远程访问 isns<BR>ap 服务）、remote access server（远程访问服务器）、remote procedure call (rpc) l<BR>ocator（远程过程调用定位器）、remote procedure call (rpc) service（远程过程调用服<BR>务）、schedule（调度）、server（服务器）、simple tcp/ip services（简单 TCP/IP 服<BR>务）、snmp、spooler（后台打印程序）、tcp/ip netbios helper（TCP/IP NETBIOS 辅助工<BR>具）、ups 及 workstation（工作站）。 <BR>下列服务仅在 Windows NT Server 中可用： file server for macintosh、gateway servi<BR>ce for netware、microsoft dhcp server、print server for macintosh、remoteboot、w<BR>indows internet name service。 </FONT></P>
<P><FONT color=#000000>Net Time </FONT></P>
<P><FONT color=#000000>使计算机的时钟与另一台计算机或域的时间同步。不带 /set 参数使用时，将显示另一台计<BR>算机或域的时间。 <BR>net time [\computername | /domain[:name]] [/set] <BR>参数 <BR>\computername <BR>要检查或同步的服务器名。 <BR>/domain[:name] <BR>指定要与其时间同步的域。 <BR>/set <BR>使本计算机时钟与指定计算机或域的时钟同步。 </FONT></P>
<P><FONT color=#000000>Net Use </FONT></P>
<P><FONT color=#000000>连接计算机或断开计算机与共享资源的连接，或显示计算机的连接信息。该命令也控制永久 <BR>网络连接。 <BR>net use [devicename | *] [\computernamesharename[volume]] [password | *]] [/user<BR>:[domainname]username] [[/delete] | [/persistent:{yes | no}]] <BR>net use devicename [/home[password | *]] [/delete:{yes | no}] <BR>net use [/persistent:{yes | no}] <BR>参数 <BR>无 <BR>键入不带参数的 net use 将列出网络连接。 <BR>devicename <BR>指定要连接到的资源名称或要断开的设备名称。有两类设备名：磁盘驱动器（D: 到 Z:）和<BR>打印机（LPT1: 到 LPT3）。若键入星号而不是指定设备名将分配下一个可用设备名。 <BR>\computernamesharename <BR>服务器及共享资源的名称。如果计算机名包含空白字符，要用引号 (" ") 将双反斜线及计算<BR>机名引住。计算机名长度可以是 1-15 个字符。 <BR>volume <BR>指定服务器上的 NetWare 卷。要连接到 NetWare 服务器，必须安装并运行 NetWare 客户机<BR>服务 (Windows NT Workstation) 或 NetWare 网关服务 (Windows NT Server)。 <BR>password <BR>访问共享资源的密码。 <BR>* <BR>提示键入密码。在密码提示行中键入密码时，将不显示该密码。 <BR>/user <BR>指定进行连接的另外一个用户。 <BR>domainname <BR>指定另一个域。例如 net use d: \servershare /user:adminmariel 连接用户 mariel，如<BR>同从 admin 域连接一样。如果省略域，将使用当前登录域。 <BR>username <BR>指定登录的用户名。 <BR>/home <BR>将用户连接到其宿主目录。 <BR>/delete <BR>取消指定网络连接。如果用户以星号指定连接，则取消所有网络连接。 <BR>/persistent <BR>控制永久网络连接的使用。默认为上次使用的设置。无设备的连接不是永久的。 <BR>yes <BR>保存建立的所有连接，并在下次登录时还原。 <BR>no <BR>不保存建立的连接和继发连接，并在下次登录时还原现有连接。使用 /delete 开关项取消永<BR>久连接。 </FONT></P>
<P><FONT color=#000000>Net User </FONT></P>
<P><FONT color=#000000>添加或更改用户帐号或显示用户帐号信息。 <BR>net user [username [password | *] [options]] [/domain] <BR>net user username {password | *} /add [options] [/domain] <BR>net user username [/delete] [/domain] <BR>参数 <BR>无 <BR>键入不带参数的 net user 将查看计算机上的用户帐号列表。 <BR>username <BR>添加、删除、更改或查看用户帐号名。用户帐号名最多可以有 20 个字符。 <BR>password <BR>为用户帐号分配或更改密码。密码必须满足在 net accounts 命令 /minpwlen 选项中设置的<BR>最小参数。最多是 14 个字符。 <BR>* <BR>提示输入密码。在密码提示行中键入密码时，将不显示该密码。 <BR>/domain <BR>在计算机主域的主域控制器中执行操作。 <BR>该参数仅在 Windows NT Server 域成员的 Windows NT Workstation 计算机上可用。默认情<BR>况下，Windows NT Server 计算机在主域控制器中执行操作。 <BR>注意：在计算机主域的主域控制器发生该动作。它可能不是登录域。 <BR>/add <BR>将用户帐号添加到用户帐号数据库。 <BR>/delete <BR>从用户帐号数据库中删除用户帐号。 <BR>选项如下所示： <BR>/active:{no | yes} <BR>启用或禁止用户帐号。如果不激活用户帐号，用户就不能访问计算机上的资源。默认值是 y<BR>es （激活）。 <BR>/comment:"text" <BR>提供用户帐号的注释。该注释最多可以有 48 个字符，文字用引号引住。 <BR>/countrycode:nnn <BR>使用操作系统的国家代码以便为用户帮助和错误信息文件提供指定语言文件。0 值表示默认<BR>国家代码。 <BR>/expires:{date | never} <BR>如果设置 date，将导致用户帐号过期，never 不对用户帐号设置时间限制。过期日期根据 <BR>/countrycode 值可以是下列格式： mm/dd/yy、dd/mm/yy 或 mmm, dd, yy。注意帐号在指定<BR>日期开始时过期。月份可以是数字、全名或三个字母的简拼。年可以是两位或四位数，使用<BR>逗号或斜线（不要用空格） 区分日期的各部分。如果省略 yy ，则使用该日期下一次到来的 <BR>年份（根据计算机的时钟）。例如如果在 1994 年 1 月 10 日到 1995 年 1 月 8 日之间输<BR>入下列日期项，那它们相同：jan,9 <BR>1/9/95 <BR>january,9,1995 <BR>1/9 <BR>/fullname:"name" <BR>指定用户全名而不是用户名。用引号将名字引住。 <BR>/homedir:path <BR>设置用户宿主目录的路径。该路径必须存在。 <BR>/homedirreq:{yes | no} <BR>设置是否需要宿主目录。 <BR>/passwordchg:{yes | no} <BR>指定用户是否能改变自己的密码。默认值是 yes。 <BR>/passwordreq:{yes | no} <BR>指定用户帐号是否需要密码，默认值是 yes。 <BR>/profilepath:[path] <BR>设置用户登录配置文件的路径。该路径名指向注册表配置文件。 <BR>/scriptpath:path <BR>为用户登录脚本设置路径。Path 不能是绝对路径； <BR>path 是相对于 %systemroot%SYSTEM32REPLIMPORTSCRIPTS 的相对路径：。 <BR>/times:{times | all} <BR>指定允许用户使用计算机的时间。times 值表示为 day[-day][, day[-day]] , time[-time<BR>][, time[-time]], 增量限制为一小时。Days 可以是全名或简写（M、T、W、Th、F、Sa、S<BR>u）。Hours 可以是 12 小时制或 24 小时制。对于 12 小时值，使用 AM、PM 或 A.M、P.M<BR>。all 表示用户总可以登录。空值表示用户永远不能登录。用逗号分隔日期和时间，分隔时 <BR>间和日期的单位用分号（例如 M,4AM-5PM; T,1PM-3PM）。指定 /times 时不要使用空格。 <BR>/usercomment:"text " <BR>让管理员添加或更改帐号的“用户注释”。用引号引住文字。 <BR>/workstations:{computername[,...] | *} <BR>列出最多八个用户可以登录到网络的工作站。用逗号分隔列表中的多个项。如果 /workstat<BR>ions 没有列表，或如果列表是星号“*”，则用户可以从任何一台计算机登录。 </FONT></P>
<P><FONT color=#000000>Net View </FONT></P>
<P><FONT color=#000000>显示域列表、计算机列表或指定计算机的共享资源列表。 <BR>net view [\computername | /domain[:domainname]] <BR>net view /network:nw [\computername] <BR>参数 <BR>无 <BR>键入不带参数的 net view 将显示当前域的计算机列表。 <BR>\computername <BR>指定要查看其共享资源的计算机。 <BR>/domain[:domainname] <BR>指定要查看其可用计算机的域。如果省略 domainname ，则显示网络的所有域。 <BR>/network:nw <BR>显示 NetWare 网络中所有可用的服务器。如果指定计算机名，则显示 NetWare 网络中该计<BR>算机的可用资源。也可以用此开关指定添加到系统中的其他网络。 </FONT></P><img src ="http://www.blogjava.net/nighTuner/aggbug/3238.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/nighTuner/" target="_blank">nighTuner</a> 2005-04-13 23:47 <a href="http://www.blogjava.net/nighTuner/articles/3238.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>