台湾清华彭明辉教授的研究生指导手册

2006-3-22

——————————————————————————–

台湾清华彭明辉教授的研究生指导手册 编者注:彭明辉教授的文章系统地介绍了自己培养研究生的一些经验,很值得一读。文章开头说的好:“在论文中,你必须要有能力提出足够的证据来让读者信服说:针对这个应用场合,你所提出来的方法确实有比文献中一切既有方法更优越之处。此外,你必须要能清楚指出这个方法在应用上的限制,并且提出充分证据来说服读者:任何应用场合,只要能够满足你所提出来的假设(前提)条件,你的方法就一定适用,而且你所描述的优点就一定会存在。你还必须要在论文中清楚指出这个方法的限制和可能的缺点(相对于其它文献上的既有方法,或者在其它应用场合里)。”这种一丝不苟探求学问的精神尤其值得倡导和发扬。 一、论文的要求 我对硕士论文的基本要求是: (1)论文的主要内容,是叙述一套方法在一个特定场合中的应用。 (2)这套方法必须要有所创新或突破,并因而对学术界有所贡献。因此,它或者是解决既有问题的新方法,或者是既有方法的新应用,或者是以一个新的方法开启一整片新的应用领域。 (3)在论文中,你必须要有能力提出足够的证据来让读者信服:针对这个应用场合,你所提出来的方法确实有比文献中一切既有方法更优越之处。 (4)此外,你必须要能清楚指出这个方法在应用上的限制,并且提出充分证据来说服读者:任何应用场合,只要能够满足你所提出来的假设(前提)条件,你的方法就一定适用,而且你所描述的优点就一定会存在。 (5)你还必须要在论文中清楚指出这个方法的限制和可能的缺点(相对于其它文献上的既有方法,或者在其它应用场合里)。假如这个方法有任何重大缺点,在口试时才被口试委员指出来,其后果有可能是论文无法通过。 (6)行文风格上,它是一篇论证严谨,逻辑关系清晰,而且结构有条理的专业论述。也就是说,在叙述你的方法的过程,你必须要清清楚楚地交代这个方法的应用程序以及所有仿真或实验结果的过程,使得这个专业领域内的任何读者,都有办法根据你的描述,在他的实验室下复制出你的研究成果,以便确定你的结论确实是可以“在任何时间、任何地点、任何人”都具有可重复性(可重复性是「科学」的根本要求)。 (7)而且,你对这个方法的每一个步骤都必须要提供充分的理由说明“为什么非如此不可”。 (8)最后,你的论文必须要在适当位置清楚注明所有和你所研究之题目相关的文献。而且,你必须要记得:只要是和你所研究的问题相关的学术文献(尤其是学术期刊论文),你都有必要全部找出来(如果漏掉就是你的过失),仔细读过。假如你在学位论文口试时,有口试委员指出有一篇既有文献,在你所讨论的问题中处理得比你的方法还好,这就构成你论文无法及格的充分理由。 (9)第(2)款所谓“对学术界的贡献”,指的是:把你的所有研究成果扣除掉学术界已经发表过的所有成果(不管你实际上有没有参考过,没有参考过也算是你的重大过失),剩下的就是你的贡献。假如这个贡献太少,也构成你论文无法及格的充分理由。 上面所叙述的九款要件中,除第(2)款之外,通通都是必须要做到的,因此没有好坏之分。一篇硕士论文的好坏(以及成绩的评定标准),主要是看第(2)款所谓「对学术界的贡献」的多寡与重要性而定。假如你要申请国外的博士班,最重要的也是看你的硕士论文有什么“贡献”而定(这往往比TOFEL、GRE、GPA还重要)。 一个判断硕士论文的好坏有一个粗浅办法:假如你的研究成果可以在国外著名学术期刊(journals,而非 magazines)上发表,通常就比一篇只能在国外学术会议(conferences)上发表的硕士论文贡献多;一篇国外学术会议的论文又通常比无法发表的论文贡献多;在国际顶尖学术期刊上发表的论文通常比一篇二流的学术期刊论文贡献多。SCI有一种叫做 Impact Factor 的指数,统计一个期刊每篇论文被引述的次数。通常这个次数(或指数)愈高,对学术界的影响力就愈大。以机械视觉相关领域的期刊而言,Impact Factor 在 1.0 以上的期刊,都算是顶尖的期刊。这些期刊论文的作者,通常是国外顶尖学府的著名教授指导全球一流的博士生做出来的研究成果。 二、完成硕士论文所需要的能力 从前面的叙述可以归纳出来,完成硕士论文所需要的能力包括以下数项,依它们的培养先后次序逐项讨论。 (1)资料检索的能力:在给定(或自己拟定)的题目范围内,你必须有能力利用文资料索引系统,查出所有相关的论文,而无任何遗漏(否则你可能在论文口试时才发现同一个题目已经有人发表过了)。 你到底要用什么样的关键词和查所程序去保证你已经找出所有相关的文献?这是第一个大的挑战。每一组关键词(包含联集与交集)代表一个论文所构成的集合,假如你用的关键词不恰当,你可能找到的集合太小,没有涵盖所有的相关文献;假如你用的关键词太一般化(譬如image),通常你找到的集合会太大,除了所有相关文献之外还加上好几十倍的毫不相关的文献。 (2)资料筛选的能力:即使你使用了恰当的搜寻策略,通常找到的文献集合都还是明显地比你所需要的集合大,而且通常文献比数大概在一两百篇或数百篇之间,而其中会和你的研究子题直接且密切相关的论文,通常只有廿、卅篇左右。你如何可以只读论文的题目、摘要、简介和结论,而还没有完全看懂内文,就准确地判断出这篇论文中是否有值得你进一步参考的内容,以便快速地把需要仔细读完的论文从数百篇降低到廿、卅篇?这考验着你从事资料筛选的能力。 (3)期刊论文的阅读能力:期刊论文和大学部的课本截然不同。大学部的课本是寻次渐进地从最基本的知识背景逐步交代出整套有系统的知识,中间没有任何的跳跃,只要你逐页读下去,就可以整本都读懂,不需要在去别的地方找参考资料。但是期刊论文是没头没尾的十几页文献,只交代最核心的创意,并援引许多其它论文的研究成果(但只注明文献出处,而完全没有交代其内容)。因此,要读懂一篇论文,一定要同时读懂数篇或十数篇被援引的其它论文。偏偏,这十几篇被援引的论文又各自援引十数篇其它论文。因此,相对于大学部的教科书而言,期刊论文是一个极端没有系统的知识,必须要靠读者自己从几十篇论文中撷取出相关的片段,自己组织成一个有系统的知识,然后才有办法开始阅读与吸收。要培养出这种自己组织知识的能力,需要在学校靠着大量而持续的时间去摸索、体会,而不可能只利用业余的零星时间去培养。因此,一个大学毕业后就不再念研究所的学生,不管他在大学部有多优秀,都很难在工业界利用业余的时间去培养出这种能力。所以,硕士毕业生和大学毕业生最大的差别,就是:学士只学习过吸收系统知识的能力(也就是读别人整理、组织好的知识,典型的就是课本);但硕士则学习过自己从无组织的知识中检索、筛选、组织知识的能力。 (4)期刊论文的分析能力:为了确定你的学位论文研究成果确实比所有相关的学术期刊论文都更适合处理你所拟定的应用场域,首先你必须要有能力逐篇分析出所有相关期刊论文的优点与缺点,以及自己的研究成果的优点与缺点,然后再拿他们来做比较,总结出你的论文的优点和缺点(限制)。但是,好的期刊论文往往是国外著名学府的名师和一流的博士生共同的研究成果,假如你要在锁定的应用场域上「打败」他们,突出自己的优点,这基本上是一个极端困难的挑战。即使只是要找出他们的缺点,都已经是一个相当困难的工作了。一个大学毕业生,四年下来都是假定“课本是对的”这样地学下来的,从来没有学习如何分析课本知识的优缺点,也就是“只有理解的能力,而没有批判的能力”。硕士生则必须要有“对一切既有进行精确批判”的能力。但是,这个批判并非个人好恶或情绪化的批判,而是真的找得到充分理由去支持的批判。这个批判的能力,让你有能力自己找到自己的优、缺点,因此也有机会自己精益求精。所以,一个大学毕业生在业界做事的时候,需要有人指导他(从事批判性检验),帮他找出缺点和建议改进的可能性。但是,一个严格训练过的合格硕士,他做事的时候应该是不需要有人在背后替他做检证,他自己就应该要有能力分析自己的优、缺点,主动向上级或平行单位要求支持。其实,至少要能够完成这个能力,才勉强可以说你是有“独立自主的判断能力”。 (5)创新的能力:许多大学毕业的工程师也能创新,但是硕士的创新是和全世界同一个学术团体内所有的名师和博士生挑战。因此,两者是站在不同的比较基础上在进行的:前者往往是一个企业内部的“闭门造车”,后者是一个全球的开放性竞争。其次,工程师的创新往往是无法加以明确证明其适用条件,但是学术的创新却必须要能够在创新的同时厘清这个创新的有效条件。因此,大学毕业生的主要能力是吸收既有知识,但硕士毕业生却应该要有能力创造知识。此外,台湾历年来工业产品的价位偏低,这一部分是因为国际大厂的打压以及国际消费者的信任不易建立。但是,另一方面,这是因为台湾的产品在品质上无法控制,因此只好被当作最粗 糙的商品来贩卖。台湾的产品之所以无法有稳定的品质,背后的技术原因就是:各种创新都是只凭一时偶然的巧思,却没有办法进一步有系统地厘清这些巧思背后可以成立的条件。但是,创新其实是可以有一套“有迹可寻”的程序的,这是我最得意的心得,也是我最想教的。 三、为什么要坚持培养阅读与分析期刊论文的能力 我所以一直坚持要训练研究生阅读与分析期刊论文的能力,主要是为了学生毕业后中长期的竞争力着想。 台湾从来都只生产国外已经有的产品,而不事创新。假如国外企业界比国外学术的技术落后三年,而台湾的技术比国外技术落后五年,则台湾业界所需要的所有技术都可以在国外学术期刊上找到主要的理论依据和技术核心构想(除了一些技术的细节和 know how 之外)。因此,阅读期刊的能力是台湾想要保持领先大陆技术的必备条件。 此外,只要能够充分掌握阅读与分析期刊论文的技巧,就可以水到渠成地轻松进行“创新”的工作。所以,只要深入掌握到阅读与分析期刊论文的技巧,就可以掌握到大学生不曾研习过的三种能力:(1)自己从无组织的知识中检索、筛选、组织知识的能力、(2)对一切既有进行精确批判的独立自主判断能力、(3)创造新知识的能力。 创新的能力在台湾一直很少被需要(因为台湾只会从国外买整套设备、制程和设计与制造的技术)。但是,大陆已经成为全球廉价品制造中心,而台商为了降低成本也主动带技术到大陆设厂(包括现在的晶元代工),因此整个不具关键性技术的制造业都会持续往大陆移动;甚至 IC 的设计(尤其数字的部分)也无可避免地会迅速朝向“台湾开系统规格,进行系统整合,大陆在前述架构下开发特定数位模块”的设计代工发展。因此,未来台湾将必然会被逼着朝愈来愈创意密集的创意中心走(包括商务创意、经营创意、产品创意、与技术创新)。因此,不能因为今天台湾的业界不需要创新的能力,就误以为自己一辈子都不需要拥有创新的能力。 我在协助民间企业发展技术研发的过程中,碰到过一位三十多岁的厂长。他很聪明,但从小家穷,被环境逼着去念高工,然后上夜校读完工专。和动态性能(bandwidth、response speed等)无关的技术他都很深入,也因为产品升级的需要而认真向我求教有关动态性能的基本观念。但是,怎么教他都不懂,就只因为他不懂工程数学。偏偏,工程数学不是可以在工厂里靠自修读会的。一个那么聪明的人,只因为不懂工数,就注定从三十岁以后一辈子无法在专业上继续成长!他高工毕业后没几年,廿多岁就当课长,家人与师长都以他为荣;卅岁当厂长,公司还给他技术股,前途无量;谁想得到他会在卅岁以后被逼着「或者升级,或者去大陆,或者失业」? 每次想起这位厂长,看着迫不急待地要到台积电去「七年赚两千万退休金」的学生,或者只想学现成可用的技术而不想学研究方法的学生,我总忍禁不住地要想:十年后,我教过的学生里,会不会有一堆人就只因为不会读期刊论文而被逼提前退休? 再者,技术的创新并不是全靠聪明。我熟谙一套技术创新的方法,只要学会分析期刊论文的优缺点,就可拿这套方法分析竞争对手产品的优缺点;而且,只要再稍微加工,就可以从这套优缺点的清单里找到突破瓶颈所需的关键性创意。这套创新程序,可以把“创新”变成不需要太多天分便可以完成的事,从而减轻创意的不定性与风险性。因此,只要会分析论文,几乎就可以轻易地组合出你所需要的绝大部分创意。聪明是不可能教的,但这套技巧却是可以教的;而且只要用心,绝大部分硕士生都可以学会。 就是因为这个原因,我的实验室整个训练的重心只有一个:通过每周一次的 groupmeeting,培养学生深入掌握阅读与分析期刊论文的技巧,进而培养他们在关键问题上突破与创新的能力。 四、期刊论文的分析技巧与程序 一般来讲,好的期刊论文有较多的创意。虽然读起来较累,但收获较多而深入,因此比较值得花心思去分析。读论文之前,参考SCI Impact Factor 及学长的意见是必要的。 一篇期刊论文,主要分成四个部分。 (1)Abstract: 说明这篇论文的主要贡献、方法特色与主要内容。最慢硕二上学期必须要学会只看Abstract 和Introduction便可以判断出这篇论文的重点和你的研究有没有直接关连,从而决定要不要把它给读完。假如你有能力每三十篇论文只根据摘要和简介便能筛选出其中最密切相关的五篇论文,你就比别人的效率高五倍以上。以后不管是做事或做学术研究,都比别人有能力从更广泛的文献中挑出最值得参考的资料。 (2)Introduction: Introduction 的功能是介绍问题的背景和起源,交代前人在这个题目上已经有过的主要贡献,说清楚前人留下来的未解问题,以及在这个背景下这篇论文的想解决的问题和它的重要性。对初学的学生而言,从这里可以了解以前研究的概况。通常我会建议初学的学生,对你的题目不熟时,先把跟你题目可能相关的论文收集个30~40篇,每篇都只读Abstract 和 Introduction,而不要读 Main Body(本文),只在必要时稍微参考一下后面的 Illustrative examples和 Conclusions,直到你能回答下面这三个问题: (2A)在这领域内最常被引述的方法有哪些? (2B)这些方法可以分成哪些主要派别? (2C)每个派别的主要特色(含优点和缺点)是什么? 问题是,你怎么去找到这最初的30~40篇论文?有一种期刊论文叫做“review paper”,专门在一个题目下面整理出所有相关的论文,并且做简单的回顾。你可以在搜寻 Compendex 时在 keywords 中加一个“review”而筛选出这类论文。然后从相关的数篇review paper 开始,从中根据 title 与 Abstract 找出你认为跟你研究题目较相关的30~40篇论文。 通常只要你反复读过该领域内30~40篇论文的Abstract 和 Introduction,你就应该可以从Introduction的评论中回答(2A)和(2B)这两个问题。尤其要记得,当你阅读的目的是要回答(2A)和(2B)这两个问题时,你一定要先挑那些Introduction写得比较有观念的论文念(很多论文的Introduction 写得像流水帐,没有观念,这种论文刚开始时不要去读它)。假如你读过假如30~40篇论文的Abstract 和 Introduction之后,还是回答不了(2C),先做下述的工作。 你先根据(2A)的答案,把这领域内最常被引述的论文找齐,再把他们根据(2B)的答案分成派别,每个派别按日期先后次序排好。然后,你每次只重新读一派的Abstract 和 Introduction(必要时简略参考内文,但目的只是读懂Introduction内与这派有关的陈述,而不需要真的看懂所有内文),照日期先后读,读的时候只企图回答一个问题:这一派的创意与主要诉求是什么?这样,你逐派逐派地把每一派的Abstract 和 Introduction 给读完,总结出这一派主要的诉求、方法特色和优点(每一篇论文都会说出自己的优点,仔细读就不会漏掉)。 其次,你再把这些论文拿出来,但是只读Introduction,认真回答下述问题:“每篇论文对其它派别有什么批评?”然后你把读到的重点逐一记录到各派别的“缺点”栏内。 通过以上程序,你就应该可以掌握到(2A)、(2B)、和(2C)三个问题的答案。 这时你对该领域内主要方法、文献之间的关系算是相当熟捻了,但是你还是只仔细读完Abstract 和 Introduction而已,内文则只是笼统读过。 这时候,你已经掌握到这领域主要的论文,你可以用这些论文测试看看你用来搜寻这领域论文的 keywords 到底恰不恰当,并且用修正过的 keywords 再搜寻一次论文,把这领域的主要文献补齐,也把原来30~40篇论文中后来发现关系较远的论文给筛选掉,只保留大概20篇左右确定跟你关系较近的文献。如果有把握,可以甚至删除一两个你不想用的派别(要有充分的理由),只保留两、三个派别(也要有充分的理由)继续做完以下工作。 然后你应该利用(2C)的答案,再进一步回答一个问题(2D):“这个领域内大家认为重要的关键问题有哪些?有哪些特性是大家重视的优点?有哪些特性是大家在意的缺点?这些优点与缺点通常在哪些应用场合时会比较被重视?在哪些应用场合时比较不会被重视?”然后,你就可以整理出这个领域(研究题目)主要的应用场合,以及这些应用场合上该注意的事项。 最后,在你真正开始念论文的 main body 之前,你应该要先根据(2A)和(2C)的答案,把各派别内的论文整理在同一个档案夹里,并照时间先后次序排好。然后依照这些派别与你的研究方向的关系远近,一个派别一个派别地逐一把各派一次念完一派的 main bodies。 (3)Main body(含simulation and/or experimental examples): 在你第一次有系统地念某派别的论文 main bodies 时,你只需要念懂:(3A)这篇论文的主要假设是什么(在什么条件下它是有效的),并且评估一下这些假设在现实条件下有多容易(或多难)成立。愈难成立的假设,愈不好用,参考价值也愈低。(3B)在这些假设下,这篇论文主要有什么好处。(3C)这些好处主要表现在哪些公式的哪些项目的简化上。至于整篇论文详细的推导过程,你不需要懂。除了三、五个关键的公式(最后在应用上要使用的公式,你可以从这里评估出这个方法使用上的方便程度或计算效率,以及在非理想情境下这些公式使用起来的可靠度或稳定性)之外,其它公式都不懂也没关系,公式之间的恒等式推导过程可以完全略 过去。假如你要看公式,重点是看公式推导过程中引入的假设条件,而不是恒等式的转换。 但是,在你开始根据前述问题念论文之前,你应该先把这派别所有的论文都拿出来,逐篇粗略地浏览过去(不要勉强自己每篇或每行都弄到懂,而是轻松地读,能懂就懂,不懂就不懂),从中挑出容易念懂的 papers,以及经常被引述的论文。然后把这些论文照时间先后次序依序念下去。记得:你念的时候只要回答(3A)、(3B)、(3C)三个问题就好,不要念太细。 这样念完以后,你应该把这一派的主要发展过程,主要假设、主要理论依据、以及主要的成果做一个完整的整理。其次,你还要在根据(2D)的答案以及这一派的主要假设,进一步回答下一个问题:(3D)这一派主要的缺点有哪些。最后,根据(3A)、(3B)、(3C)、(3D)的答案综合整理出:这一派最适合什么时候使用,最不适合什么场合使用。 记住:回答完这些问题时,你还是不应该知道恒等式是怎么导出来的! 当你是生手的时候,你要评估一个方法的优缺点时,往往必须要参考它的Examples。但是,要记得:老练的论文写作高手会故意只 present 成功的案例而遮掩失败的案例。所以,simulation examples and/or experiments 很棒不一定表示这方法真的很好。你必须要回到这个方法的基本假设上去,以及他在应用时所使用的主要公式(resultant equations)去,凭自己的思考能力, 并且参考(2C)和(2D)的答案,自己问问看:当某某假设在某些实用场合上无法成立时,这个方法会不会出什么状况?猜一猜,预测一下这个方法应该会在哪些条件下(应用场合)表现优异,又会在哪些条件下(应用场合)出状况?根据这个猜测再检验一次simulation examples and/or experiments,看它的长处与短处是不是确实在这些examples 中充分被检验,且充分表现出来。 那么,你什么时候才需要弄懂一篇论文所有的恒等式推导过程,或者把整篇论文细细读完?NEVER!你只需要把确定会用到的部分给完全搞懂就好,不确定会不会用到的部分,只需要了解它主要的点子就够了。 硕士生和大学生最主要的差别:大学生读什么都必须要从头到尾都懂,硕士生只需要懂他用得着的部分就好了!大学生因为面对的知识是有固定的范围,所以他那样念。硕士生面对的知识是没有范围的,因此他只需要懂他所需要的细腻度就够了。 硕士生必须学会选择性的阅读,而且必须锻炼出他选择时的准确度以及选择的速度,不要浪费时间在学用不着的细节知识!多吸收「点子」比较重要,而不是细部的知识。 五、方法与应用场合特性表(有迹可寻的创意程序) 试着想象从论文阅读步骤的第(4)与(5)步骤分别获得以下两张表: 譬如,当你的题目是“如何标定fiducial mark 之中心位置”,你就必须要仔细搜寻出文献上所有可能可以用来做这一个工作的方法。或许你找到的方法一共有四种,依序如下。 譬如(随便乱举例),「方法一」可能表示:「以面积形心标定fiducial mark 之中心位置」,「方法二」可能表示「以 Hugh transform标定fiducial mark 之中心位置」,「方法三」可能表示:「以局部弧形 matching 的方法标定fiducial mark 之中心位置」,「方法四」可能表示:「以 ring code 标定fiducial mark 之中心位置」。 这些方法各有它的特色(优缺点),譬如(随便乱举例),特性1可能表示“计算速度”(因此,根据上表左边第一个 row,可以发现:方法一的计算速度很快,方法二与方法三的计算速度很慢,而方法四的计算速度普通。其次,特性2可能代表“光源亮度不稳定时计算位置的误差大小”,特性3可能代表“噪声对计算出的位置干扰多大”,特性4可能代表“图形边缘有破损时计算的可靠度”,特性5可能代表“对象有彼此的遮蔽时方法的适用性”等等。所以,以上左图中第五个row为例,可以发现:当对象有彼此的遮蔽时,除方法二之外其它三个方法的适用性都很好。 但是,同样一个方法可能有许多不同的应用场合,而不同应用场合可能会对适用(或最佳)的方法有不同要求。所以,让我们来看右边的“问题特性分析表”。譬如(随便乱举例),应用甲可能是“标定fiducial mark 之中心位置”的方法在“电路插件组装(SMT)”里的应用,应用乙可能是“标定fiducial mark 之中心位置”的方法在“生物检验自动化影像处理”里的应用,而应用丙则可能是“标定fiducial mark 之中心位置”的方法在“巡乂飞弹目标搜寻”里的应用。这三种应用场合更有其关注的特性。譬如,根据上面右表第二个 row 的资料,三种应用场合对特性2(光源亮度不稳定时计算位置的误差大小)都很在意。再譬如,根据上面右表第四个 row 的资料,三种应用场合中除了应用甲(电路插件组装(SMT))之外,其它两种应用场合对特性4(图形边缘有破损时计算的可靠度)都很在意。 那么,四个方法中哪个方法最好?你可能会回答说:方法二:因为它的优点最多,缺点最少。但是,这样的回答是错的!一个方法只有优缺点,而没有好坏。当它被用在一个适合表现其优点而不在乎其缺点的场合里,它就显得很好;但是,当它被用在一个不适合表现其优点而很在乎其缺点的场合里,它就显得很糟。譬如,方法二在应用场合乙,它的表现会非常出色(因为所有的优点刚好那个应用场合都在意,而所有的缺点刚好那个应用场合都不在意);但是,方法二在应用场合甲里它的表现却会非常糟糕(它所有的缺点刚好那个应用场合都很在意,而它大部分的优点刚好那个应用场合却都不在意)。所以,必须要学会的第一件是就是:方法没有好坏,只有相对优缺点点;只有当方法的特性与应用场合的特性不合时,才能下结论说这方法“不适用”;而当方法的特性与应用场合的特性吻合时,则下结论说这方法“很适用”。因此,一定要同时有方法特性表与应用场合特性分析表放在一起后,才能判断一个方法的适用性。 更重要的是:上面的方法与问题分析对照表还可以用来把“突破瓶颈所需的创意”简化成一种有迹可寻的工作。譬如,假定我们要针对应用甲发展一套适用的方法,首先我们要先从上右表中标定这个应用场合关心哪些问题特性。根据上右表第一个 column,甲应用场合只关心四个特性:特性1、2、3、5(即“计算速度”、光源亮度不稳定时计算位置的误差大小、噪声对计算出的位置的干扰、对象有彼此的遮蔽时方法的适用性)。那么,哪个方法最适用呢?看起来是方法一,它除了特性2表现普通之外,其它三个特性的表现都很出色。但是,假如我们对方法一的表现仍不够满意,怎么去改善它?最简单的办法就是从上左表找现成的方法和方法一结合,产生出一个更适用的方法。因为方法一只有在特性2上面表现不够令人满意,所以我们就优先针对在特性2上面表现出色的其它方法加以研究。 根据上表,在特性2上面表现出色的方法有方法二和方法四,所以我们就去研究这两个方法和方法一结合的可能性。或许(随便举例)方法四的创意刚好可以被结合进方法一而改善方法一在特性2上面的表现,那么,我们就可以因此轻易地获得一个方法一的改良,从而突破甲应用场合没有适用方法的瓶颈。 有没有可能说单纯常识结合既有方法优点仍无法突破技术瓶颈的状况?可能有。这时候真的需要完全新颖的创意了。但是,这种时候很罕见。多半时候只要应用上一段的分析技巧就可以产生足以解决实用问题的创意了。至少,要产生出一篇学术期刊论文并非那么困难。 六、论文阅读的补充说明 硕士生开始学读期刊论文时,就容易犯的毛病就是戒除不掉大学部的习惯:(1)老是想逐行读懂,有一行读不懂就受不了。(2)不敢发挥自己的想象,读论文像在读教科书,论文没写的就不会,瘫痪在那里;被我逼着去自己猜测或想象时,老怕弄错作者的意思,神经绷紧,脑筋根本动不了。 大学毕业后(不管是念硕、博士或工作),可以参考的资料都没有秩序地交错成一团,而且永远都读不完。用大学生的心态读书,结果一定时间永远不够用。因此,每次读论文都一定要带着问题去读,每次读的时候都只是图回答你要回答的问题。 因此,一定是选择性地阅读,一定要逐渐由粗而细地一层一层去了解。上面所规划的读论文的次序,就是由粗而细,每读完一轮,你对这问题的知识就增加一层。根据这一层知识就可以问出下一层更细致的问题,再根据这些更细致的问题去重读,就可以理解到更多的内容。因此,一定是一整批一起读懂到某个层次,而不是逐篇逐篇地整篇一次读懂。 这样读还有一个好处:第一轮读完后,可以根据第一轮所获得的知识判断出哪些论文与你的议题不相关,不相关的就不需要再读下去了。这样才可以从广泛的论文里逐层准确地筛选出你真正非懂不可的部分。不要读不会用到的东西,白费的力气必须被极小化!其实,绝大部分论文都只需要了解它的主要观念(这往往比较容易),而不需要了解它的详细推导过程(这反而比较费时)。 其次,一整批一起读还有一个好处:同一派的观念,有的作者说得较易懂,有的说得不清楚。整批读略过一次之后,就可以规划出一个你以为比较容易懂的阅读次序,而不要硬碰硬地在那里撞墙壁。你可以从甲论文帮你弄懂以论文的一个段落,没人说读懂甲论文只能靠甲论文的信息。所以,整批阅读很像在玩跳棋,你要去规划出你自己阅读时的「最省力路径」。 大学部学生读东西一定要循规蹈矩,你还没修过机械视觉相关课程之前可能也只好循规蹈矩地逐行去念。但是一旦修过机械视觉相关课程,许多论文中没被交代的段落你也已经可以有一些属于你的想象(虽然有可能猜错,尤其刚开始时经常猜错,但没关系,下面详述)。这些想象往往补足论文跳跃处最快速的解决方案。其实,一个大学毕业生所学已经很多了,对许多是都可以有一个不太离谱的想象能力。但是大部分学生却根本不敢去想象。我读论文远比学生快,分析远比学生深入,主要的是我敢想象与猜测,而且多年训练下来想象与猜测的准确度很高。所以,许多论文我根本不是读懂的,而是猜对了! 假如猜错了怎么办?不用怕!猜完以后要根据你的猜测在论文里找证据,用以判断你的猜测对不对。猜对了,就用你的猜测(其实是你的推理架构)去吸收作者的资讯与创意(这会比从头硬生生地去迁就作者的思路轻松而容易);猜错了,论文理会有一些信息告诉你说你错了,而且因为猜错所以你读到对的答案时反而印象更深刻。 七、论文报告的要求与技巧 报告一篇论文,我要求做到以下部分(依报告次序排列): (1)投影片第一页必须列出论文的题目、作者、论文出处与年份。 (2) 以下每一页投影片只能讲一个观念,不可以在一张投影片里讲两个观念。 (3)说明这篇论文所研究的问题的重点,以及这个问题可能和工业界哪些应用相关。 (4)清楚交代这篇论文的主要假设,主要公式,与主要应用方式(以及应用上可能的解题流程)。 (5)说明这篇论文的范例(simulation examples and/or experiments),预测这个方法在不同场合时可能会有的准确度或好用的程度 (6)你个人的分析、评价与批评,包括:(6A)这篇论文最主要的创意是什么?(6B)这些创意在应用上有什么好处?(6C)这些创意和应用上的好处是在哪些条件下才能成立?(6D)这篇论文最主要的缺点或局限是什么?(6E)这些缺点或局限在应用上有什么坏处?(6F)这些缺点和应用上的坏处是因为哪些因素而引入的?(6G)你建议学长学弟什么时候参考这篇论文的哪些部分(点子)? 一般来讲,刚开始报告论文(硕一上学期)时只要做到能把前四项要素说清楚就好了,但是硕一结束后(暑假开始)必须要设法做到六项要素都能触及。硕二下学期开始的时候,必须要做到六项都能说清楚。 注意:读论文和报告论文时,最重要的是它的创意和观念架构,而不是数学上恒等式推导过程的细节(顶多只要抓出关键的 equation 去弩懂以及说明清楚即可)。 你报告观念与分析创意,别人容易听懂又觉得有趣;你讲恒等式,大家不耐烦又浪费时间。

关闭本窗口

Subversion / TortoiseSVN SSH HowTo

Because many new subversion users run into problems when attempting to use subversion with SSH, i compiled a HowTo for that issue. Perhaps i will expand this HowTo later on and submit it to the subversion or torteoiseSVN docs.

————————-
Our Scenario:
————————-
Server: Linux or unix like system
Client: Windows 2000/XP (or variant)

—————————————–
Installing subversion (server)
—————————————–
I won’t go into details here, because this topic is covered in great length in the oficial subversion documentation. But one thing i want to point out nevertheless. If you compile subversion from source and dont provide any argument to ./configure, Subversion creates a “bin” directory under /usr/local and places its binaries there. This is no problem as long as you run subversion as daemon, but if you want to use tunneling mode with SSH, you have to be aware that the user logging into via SSH can execute the svnserve program and some other binaries. For this reason, either place /usr/local/bin into the PATH variable or create symlinks of your binaries to the /usr/sbin directory or any other directory which is commonly in the PATH.

To make sure that everything is ok. Login in with SSH and the target user to the system later on and type: “which svnserve”. This command should tell you if svnserve is reachable.

Furthermore this document assumes that you allready have a subversion repository created with “svnadmin create”. Please pay attention to the ACL of the repository in order to reduce possible problems. Check that each user coming in via SSH has apropriate rights to work with the repository.

Sometimes your system has ‘mesg y’ put into the global bashrc file. This will make connections with TortoisePlink fail, since that line will make SSH throw out an error “stdin: is not a tty”. You must remove that line from your bashrc file.
————————————————
OpenSSH and certificates (server)
————————————————
Again i wont go into details about OpenSSH installation, this is covered elsewhere better. But on most systems, enabling SSH is just a matter of installing a RPM. If you rent a pre-installed linux server from a hosting company, SSH is most likely allready installed. To be sure everything is in place, type: “ps xa | grep sshd” and watch out for SSH jobs.

Assuming OpenSSH is installed, one of the most important steps is to create a keypair for authentication. There are two possible ways of creating the keys. The first way is to create the keys with puttygen (a program of the putty family), upload the public key to your server and use the private key with putty. Because of some problems with this approach, i prefer the other way. This way creates the keypair with the OpenSSH tool ssh-keygen and download the private key to your client and convert the private key to a putty-style private key.

Lets do this step by step:

- login to your server
- type: ssh-keygen -b 1024 -t dsa -N passphrase -f mykey
- change “passphrase” to a secret keyword only you know
- type: ls -l mykey*

We just created a SSH2 DSA key with 1024 bit keyphrase. You will see two files. One named “mykey” and one named “mykey.pub”. As you might guess, the .pub file is the public key file, the other is the private one. Next create a user on the server with a home directory:

- type: useradd -m myuser

You will have a directory under /home with the name “myuser”, create a new directory in “myuser” called “.ssh”:

- type: cd /home/myuser
- type: mkdir .ssh

Then go to the directory where you created your keys and copy the public key to the .ssh userfolder with the following command:

- type: cp mykey.pub /home/myuser/.ssh/authorized_keys

Please pay attention to the filename, it really must be “authorized_keys”. In some old OpenSSH implementations, it was “authorized_keys2″. Now download the private key file to your client computer. Remeber, the file was “mykey”

————————————————————
SSH key generation and connection check (client)
————————————————————
Grab the tools we need for doing SSH on windows on this site:
http://www.chiark.greenend.org.uk/~sgtatham/putty/

Just go to the download section and get “Putty”, “Plink”, “Pageant” and “Puttygen”

In order to use the private key we get from the server, we have to convert it to a putty format. This is because the private key file format is not specified by some standard body. To do this we simple open “puttygen” and open the “conversions” menu and chose “Import Key”. Then browse to your file “mykey” which you got from the server enter your provided passphrase upon creation of the key. Finally click “Save private key” and save the file as “mykey.PPK” somewhere on disk.

Now we are ready to use this key for the first time to test the connection. In order to do this, we open the program “putty” and create a new session like this:

Session->HostName: Hostname or IP Adress of your server
Session->Protocol: SSH
Session->Saved Sessions: MyConnection
SSH->Prefered SSH Protocol version: 2
SSH->Auth->Private Key file for auth: $PATH$\mykey.PKK (replace $PATH$ with real path to the mykey.PKK file)

Then go back to Session tab and hit “save” button. You will see “MyConnection” in the list of available connections.

Next click “open” and you should see a telnet login prompt. Use “myuser” as username (without double quotes of course) and if everything is ok, you dont have to provide a password to your system. If the system still requires a password, something went wrong. See Debugging Section of this HowTo.

———————————————–
Testing SSH with TortoiseSVN (client)
———————————————–
After installing TortoiseSVN (http://tortoisesvn.tigris.org/download.html) right click on some folder inside your Windows Explorer. You will see a menu item called TortoiseSVN->RepoBrowser. After opening the browser you have to enter a URL like this:

svn+ssh://myuser@MyConnection/usr/local/repos

Lets talk briefly about the URL (if you need more infos, check the subversion docs). The Schema name is “svn+ssh”, this tells Tortoise how to handle the requests to the server. After the double slashed, you can provide the user which is trying to connect to the server, in our case this is “myuser”. After the “@”, we supply our putty session name. This session name contains all details like where to find the private key and the servers IP or DNS. Last we have to provide the full path to the repository. Its assumed that a subversion repository resides at /usr/local/repos

If you submit the URL, you will see a opened tree on the next screen until the node “repos”. Yet, there has not been made any connection, because the tree representation comes from the supplied URL. When you hit the “+” button in front of “repos”, the connection will be established and you will see the “+” sign dissapearing if you dont have anything in the repository or you will see your allready imported projects and files.

Right now, you should have a running SSH Tunnel in conjunction with TortoiseSVN.

———————————————–
Configuration Variants (pagent)
———————————————–
Now i will continue to show some configuration variants, that can be helpful during everyday work.

One way to simplify the URL in TortoiseSVN is to set the user inside the putty session. For this you have to load your allready defined session “MyConnection” in putty make the following entry:

connection->Auto Login username: myuser

Then save your putty session as before and try the following URL inside Tortoise:
svn+ssh://MyConnection/usr/local/repos

This time we only provide the putty session “MyConnection” to the SSH client TortoiseSVN uses (TortoisePlink.exe). This client is capable of checking the session for all necessary details like loginuser oder server ip.

Some people like using pageant for storing all their keys and in fact each howto explains that its important to place your keys there. In fact, because a putty session is capable of storing a key, you dont need pageant for normal business. But imagine you want to store keys for several users, in that case, you would have to edit the putty session over and over again, depending on the user you are trying to connect with. For this situation pagent makes perfectly sense, because when putty, plink, tortoisePlink or any other putty-based tool is trying to connect to a SSH server, it checks all private keys that pageant carries to initiate the connection.

For this task, simply start pageant and add a key. It should be the same private key you defined in the putty session above. If you use pageant for private keys storage, you can delete the “SSH->Auth->Private Key file for auth” section inside your putty session. You can add more keys for other systems or other users of course. If you dont want to repeat this procedure after every reboot of your client, you should place the pageant in autostart group of your windows installation. You can append the keys with complete paths as command line arguments to pageant.exe

The last way to connect to a SSH server is by just using this URL inside TortoiseSVN:

svn+ssh://myuser@100.101.102.103/usr/local/repos

As you can see, we dont use a saved putty session but an IP address as connection target. We also supply the user, but you might ask how the private key file will be found. Because TortoisePlink.exe (the standard SSH client for TortoiseSVN) is a modified version of the plink tool from the putty suite, also TortoiseSVN looks for a running pageant and will try all the keys stored in pageant.

—————————————-
Debugging / Troubleshooting
—————————————-

See the other articles in the SSH section of our FAQ

——————-
Feedback
——————-
For comments or corrections on this howto, please use the TortoiseSVN mailinglist on http://tortoisesvn.tigris.org/

This is a copy of the original at: http://www.logemann.org/day/archives/000099.html

关闭 Windows 没用的服务,让你的电脑提速百倍

在控制面板→管理工具→服务或在运行里直接输入“services.msc”也可。
Alerter
微软: 通知选取的使用者及计算机系统管理警示。如果停止这个服务,使用系统管理警示的程序将不会收到通知。如果停用这个服务,所有依存于它的服务将无法启动。
补充: 一般家用计算机根本不需要传送或接收计算机系统管理来的警示(Administrative Alerts),除非你的计算机用在局域网络上
依存: Workstation
建议: 已停用

Application Layer Gateway Service
微软: 提供因特网联机共享和因特网联机防火墙的第三方通讯协议插件的支持
补充: 如果你不使用因特网联机共享 (ICS) 提供多台计算机的因特网存取和因特网联机防火墙 (ICF) 软件你可以关掉
依存: Internt Connection Firewall (ICF) / Internet Connection Sharing (ICS)
建议: 已停用
Application Management (应用程序管理)
微软: 提供指派、发行、以及移除的软件安装服务。
补充: 如上说的软件安装变更的服务
建议: 手动

Automatic Updates
微软: 启用重要 Windows 更新的下载及安装。如果停用此服务,可以手动的从 Windows Update 网站上更新*作系统。
补充: 允许 Windows 于背景自动联机之下,到 Microsoft Servers 自动检查和下载更新修补程序
建议: 已停用

Background Intelligent Transfer Service
微软: 使用闲置的网络频宽来传输数据。
补充: 经由 Via HTTP1.1 在背景传输资料的?#124;西,例如 Windows Update 就是以此为工作之一
依存: Remote Procedure Call (RPC) 和 Workstation
建议: 已停用

ClipBook (剪贴簿)
微软: 启用剪贴簿检视器以储存信息并与远程计算机共享。如果这个服务被停止,剪贴簿检视器将无法与远程计算机共享信息。如果这个服务被停用,任何明确依存于它的服务将无法启动。
补充: 把剪贴簿内的信息和其它台计算机分享,一般家用计算机根本用不到
依存: Network DDE
建议: 已停用

COM+ Event System (COM+ 事件系统)
微软: 支持「系统事件通知服务 (SENS)」,它可让事件自动分散到订阅的 COM 组件。如果服务被停止,SENS 会关闭,并无法提供登入及注销通知。如果此服务被停用,任何明显依存它的服务都无法启动。
补充: 有些程序可能用到 COM+ 组件,像 BootVis 的 optimize system 应用,如事件检视器内显示的 DCOM 没有启用
依存: Remote Procedure Call (RPC) 和 System Event Notification
建议: 手动

COM+ System Application
微软: 管理 COM+ 组件的设定及追踪。如果停止此服务,大部分的 COM+ 组件将无法适当?#092;作。如果此服务被停用,任何明确依存它的服务将无法启动。
补充: 如果 COM+ Event System 是一台车,那么 COM+ System Application 就是司机,如事件检视器内显示的 DCOM 没有启用
依存: Remote Procedure Call (RPC)
建议: 手动

Computer Browser (计算机浏览器)
微软: 维护网络上更新的计算机清单,并将这个清单提供给做为浏览器的计算机。如果停止这个服务,这个清单将不会被更新或维护。如果停用这个服务,所有依存于它的服务将无法启动。
补充: 一般家庭用计算机不需要,除非你的计算机应用在区网之上,不过在大型的区网上有必要开这个拖慢速度吗?
依存: Server 和 Workstation
建议: 已停用

Cryptographic Services
微软: 提供三个管理服务: 确认 Windows 档案签章的 [类别目录数据库服务]; 从这个计算机新增及移除受信任根凭证授权凭证的 [受保护的根目录服务]; 以及协助注册这个计算机以取得凭证的 [金钥服务]。如果这个服务被停止,这些管理服务将无法正确工作。如果这个服务被停用,任何明确依存于它的服务将无法启动。
补充: 简单的说就是 Windows Hardware Quality Lab (WHQL)微软的一种认证,如果你有使用 Automatic Updates ,那你可能需要这个
依存: Remote Procedure Call (RPC)
建议: 手动

DHCP Client (DHCP 客户端)
微软: 透过登录及更新 IP 地址和 DNS 名称来管理网络设定。
补充: 使用 DSL/Cable 、ICS 和 IPSEC 的人都需要这个来指定动态 IP
依存: AFD 网络支持环境、NetBT、SYMTDI、TCP/IP Protocol Driver 和 NetBios over TCP/IP
建议: 手动

Distributed Link Tracking Client (分布式连结追踪客户端)
微软: 维护计算机中或网络网域不同计算机中 NTFS 档案间的连结。
补充: 维护区网内不同计算机之间的档案连结
依存: Remote Procedure Call (RPC)
建议: 已停用

Distributed Transaction Coordinator (分布式交易协调器)
微软: 协调跨越多个资源管理员的交易,比如数据库、讯息队列及档案系统。如果此服务被停止,这些交易将不会发生。如果服务被停用,任何明显依存它的服务将无法启动。
补充: 如上所说的,一般家庭用计算机用不太到,除非你启用的 Message Queuing
依存: Remote Procedure Call (RPC) 和 Security Accounts Manager
建议: 已停用

DNS Client (DNS 客户端)
微软: 解析并快取这台计算机的网域名称系统 (DNS) 名称。如果停止这个服务,这台计算机将无法解析 DNS 名称并寻找 Active Directory 网域控制站的位置。如果停用这个服务,所有依存于它的服务将无法启动。
补充: 如上所说的,另外 IPSEC 需要用到
依存: TCP/IP Protocol Driver
建议: 手动

Error Reporting Service
微软: 允许对执行于非标准环境中的服务和应用程序的错误报告。
补充: 微软的应用程序错误报告
依存: Remote Procedure Call (RPC)
建议: 已停用

Event Log (事件记录文件)
微软: 启用 Windows 为主的程序和组件所发出的事件讯息可以在事件检视器中检视。这个服务不能被停止。
补充: 允许事件讯息显示在事件检视器之上
依存: Windows Management Instrumentation
建议: 自动

Fast User Switching Compatibility
微软: 在多使用者环境下提供应用程序管理。
补充: 另外像是注销画面中的切换使用者功能
依存: Terminal Services
建议: 手动

Help and Support
微软: 让说明及支持中心能够在这台计算机上执行。如果这个服务停止,将无法使用说明及支持中心。如果这个服务被停用,它的所有依存服务将无法启动。
补充: 如果不使用就关了吧
依存: Remote Procedure Call (RPC)
建议: 已停用

Human Interface Device Access
微软: 启用对人性化接口装置 (HID) 的通用输入存取,HID 装置启动并维护对这个键盘、远程控制、以及其它多媒体装置上事先定义的快捷纽的使用。如果这个服务被停止,这个服务控制的快捷纽将不再起作用。如果这个服务被停用,任何明确依存于它的服务将无法启动。
补充: 如上所提到的
依存: Remote Procedure Call (RPC)
建议: 已停用

IMAPI CD-Burning COM Service
微软: 使用 Image Mastering Applications Programming Interface (IMAPI) 来管理光盘录制。如果这个服务被停止,这个计算机将无法录制光盘。如果这个服务被停用,任何明确地依赖它的服务将无法启动。
补充: XP 整合的 CD-R 和 CD-RW 光驱上拖放的烧录功能,可惜比不上烧录软件,关掉还可以加快 Nero 的开启速度
建议: 已停用

Indexing Service (索引服务)
微软: 本机和远程计算机的索引内容和档案属性; 透过弹性的查询语言提供快速档案存取。
补充: 简单的说可以让你加快搜查速度,不过我想应该很少人和远程计算机作搜寻吧
依存: Remote Procedure Call (RPC)
建议: 已停用

Internet Connection Firewall (ICF) / Internet Connection Sharing (ICS)
微软: 为您的家用网络或小型办公室网络提供网络地址转译、寻址及名称解析服务和/或防止干扰的服务。
补充: 如果你不使用因特网联机共享(ICS)或是 XP 内含的因特网联机防火墙(ICF)你可以关掉
依存: Application Layer Gateway Service、Network Connections、Network Location Awareness(NLA)、Remote Access Connection Manager
建议: 已停用

IPSEC Services (IP 安全性服务)
微软: 管理 IP 安全性原则并启动 ISAKMP/Oakley (IKE) 及 IP 安全性驱动程序。
补充: 协助保护经由网络传送的数据。IPSec 为一重要环节,为虚拟私人网络 (VPN) 中提供安全性,而 VPN 允许组织经由因特网安全地传输数据。在某些网域上也许需要,但是一般使用者大部分是不太需要的
依存: IPSEC driver、Remote Procedure Call (RPC)、TCP/IP Protocol Driver
建议: 手动

Logical Disk Manager (逻辑磁盘管理员)
微软: 侦测及监视新硬盘磁盘,以及传送磁盘区信息到逻辑磁盘管理系统管理服务以供设定。如果这个服务被停止,动态磁盘状态和设定信息可能会过时。如果这个服务被停用,任何明确依存于它的服务将无法启动。
补充: 磁盘管理员用来动态管理磁盘,如显示磁盘可用空间等和使用 Microsoft Management Console(MMC)主控台的功能
依存: Plug and Play、Remote Procedure Call (RPC)、Logical Disk Manager Administrative Service
建议: 自动

Logical Disk Manager Administrative Service (逻辑磁盘管理员系统管理服务)
微软: 设定硬盘磁盘及磁盘区,服务只执行设定程序然后就停止。
补充: 使用 Microsoft Management Console(MMC)主控台的功能时才用到
依存: Plug and Play、Remote Procedure Call (RPC)、Logical Disk Manager
建议: 手动

Messenger (信差)
微软: 在客户端及服务器之间传输网络传送及 [Alerter] 服务讯息。这个服务与 Windows Messenger 无关。如果停止这个服务,Alerter 讯息将不会被传输。如果停用这个服务,所有依存于它的服务将无法启动。
补充: 允许网络之间互相传送提示讯息的功能,如 net send 功能,如不想被骚扰话可关了
依存: NetBIOS Interface、Plug and Play、Remote Procedure Call (RPC)、Workstation
建议: 已停用

MS Software Shadow Copy Provider
微软: 管理磁盘区阴影复制服务所取得的以软件为主的磁盘区阴影复制。如果停止这个服务,就无法管理以软件为主的磁盘区阴影复制。如果停用这个服务,任何明确依存于它的服务将无法启动。
补充: 如上所说的,用来备份的?#124;西,如 MS Backup 程序就需要这个服务
依存: Remote Procedure Call (RPC)
建议: 已停用

Net Logon
微软: 支持网域上计算机的账户登入事件的 pass-through 验证。
补充: 一般家用计算机不太可能去用到登入网域审查这个服务
依存: Workstation
建议: 已停用

NetMeeting Remote Desktop Sharing (NetMeeting 远程桌面共享)
微软: 让经过授权的使用者可以使用 NetMeeting 透过公司近端内部网络,由远程访问这部计算机。如果这项服务停止的话,远程桌面共享功能将无法使用。如果服务停用的话,任何依赖它的服务将无法启动。
补充: 如上说的,让使用者可以将计算机的控制权分享予网络上或因特网上的其它使用者,如果你重视安全性不想多开后门,就关了吧
建议: 已停用

Network Connections (网络联机)
微软: 管理在网络和拨号联机数据夹中的对象,您可以在此数据夹中检视局域网络和远程联机。
补充: 控制你的网络联机
依存: Remote Procedure Call (RPC)、Internet Connection Firewall (ICF) / Internet Connection Sharing (ICS)
建议: 手动

Network DDE (网络 DDE)
微软: 为动态数据交换 (DDE) 对在相同或不同计算机上执行的程序提供网络传输和安全性。如果这个服务被停止,DDE 传输和安全性将无法使用。如果这个服务被停用,任何明确依存于它的服务将无法启动。
补充: 一般人好像用不到
依存: Network DDE DSDM、ClipBook
建议: 已停用

Network DDE DSDM (网络 DDE DSDM)
微软: 讯息动态数据交换 (DDE) 网络共享。如果这个服务被停止,DDE 网络共享将无法使用。如果这个服务被停用,任何明确依存于它的服务将无法启动。
补充: 一般人好像用不到
依存: Network DDE
建议: 已停用

Network Location Awareness (NLA)
微软: 收集并存放网络设定和位置信息,并且在这个信息变更时通知应用程序。
补充: 如果不使用 ICF 和 ICS 可以关了它
依存: AFD网络支持环境、TCP/IP Procotol Driver、Internet Connection Firewall (ICF) / Internet Connection Sharing (ICS)
建议: 已停用

NT LM Security Support Provider (NTLM 安全性支持提供者)
微软: 为没有使用命名管道传输的远程过程调用 (RPC) 程序提供安全性。
补充: 如果不使用 Message Queuing 或是 Telnet Server 那就关了它
依存: Telnet
建议: 已停用

Performance Logs and Alerts (效能记录文件及警示)
微软: 基于事先设定的排程参数,从本机或远程计算机收集效能数据,然后将数据写入记录或?#124;发警讯。如果这个服务被停止,将不会收集效能信息。如果这个服务被停用,任何明确依存于它的服务将无法启动。
补充: 没什么价值的服务
建议: 已停用

Plug and Play (随插随用)
微软: 启用计算机以使用者没有或很少的输入来识别及适应硬件变更,停止或停用这个服务将导致系统不稳定。
补充: 顾名思义就是 PNP 环境
依存: Logical Disk Manager、Logical Disk Manager Administrative Service、Messenger、Smart Card、Telephony、Windows Audio
建议: 自动

Portable Media Serial Number
微软: Retrieves the serial number of any portable music player connected to your computer
补充: 透过联机计算机重新取得任何音乐拨放序号?没什么价值的服务
建议: 已停用

Print Spooler (打印多任务缓冲处理器)
微软: 将档案加载内存中以待稍后打印。
补充: 如果没有打印机,可以关了
依存: Remote Procedure Call (RPC)
建议: 已停用

Protected Storage (受保护的存放装置)
微软: 提供受保护的存放区,来储存私密金钥这类敏感数据,防止未授权的服务、处理、或使用者进行存取。
补充: 用来储存你计算机上密码的服务,像 Outlook、拨号程序、其它应用程序、主从架构等等
依存: Remote Procedure Call (RPC)
建议: 自动

QoS RSVP (QoS 许可控制,RSVP)
微软: 提供网络讯号及区域流量控制安装功能给可识别 QoS 的程序和控制小程序项。
补充: 用来保留 20% 频宽的服务,如果你的网络卡不支持 802.1p 或在你计算机的网域上没有 ACS server ,那么不用多说,关了它
依存: AFD网络支持环境、TCP/IP Procotol Driver、Remote Procedure Call (RPC)
建议: 已停用

Remote Access Auto Connection Manager (远程访问自动联机管理员)
微软: 当程序参照到远程 DNS 或 NetBIOS 名称或地址时,建立远程网络的联机。
补充: 有些 DSL/Cable 提供者,可能需要用此来处理登入程序
依存: Remote Access Connection Manager、Telephony
建议: 手动

Remote Access Connection Manager (远程访问联机管理员)
微软: 建立网络联机。
补充: 网络联机用
依存: Telephony、Internet Connection Firewall (ICF) / Internet Connection Sharing (ICS)、Remote Access Auto Connection Manager
建议: 手动

Remote Desktop Help Session Manager
微软: 管理并控制远程协助。如果此服务停止的话,远程协助将无法使用。停止此服务之前,请先参阅内容对话框中的 [依存性]标签。
补充: 如上说的管理和控制远程协助,如果不使用可以关了
依存: Remote Procedure Call (RPC)
建议: Disable

Remote Procedure Call (RPC) (远程过程调用,RPC)
微软: 提供结束点对应程序以及其它 RPC 服务。
补充: 一些装置都依存它,别去动它
依存: 太多了,自己去看看
建议: 自动

Remote Procedure Call (RPC) Locator (远程过程调用定位程序)
微软: 管理 RPC 名称服务数据库。
补充: 如上说的,一般计算机上很少用到,可以尝试关了
依存: Workstation
建议: Disable

Remote Registry (远程登录服务)
微软: 启用远程使用者修改这个计算机上的登录设定。如果这个服务被停止,登录只能由这个计算机上的使用者修改。如果这个服务被停用,任何明确依存于它的服务将无法启动。
补充: 基于安全性的理由,如果没有特别的需求,建议最好关了它,除非你需要远程协助修改你的登录设定
依存: Remote Procedure Call (RPC)
建议: 已停用

Removable Storage (卸除式存放装置)
微软: None
补充: 除非你有 Zip 磁盘驱动器或是 USB 之类可携式的硬件或是 Tape 备份装置,不然可以尝试关了
依存: Remote Procedure Call (RPC)
建议: Disable

Routing and Remote Access (路由和远程访问)
微软: 提供连到局域网络及广域网络的公司的路由服务。
补充: 如上说的,提供拨号联机到区网或是 VPN 服务,一般用户用不到
依存: Remote Procedure Call (RPC)、NetBIOSGroup
建议: 已停用

Secondary Logon
微软: 启用在其它认证下的起始程序。如果这个服务被停止,这类的登入存取将无法使用。如果这个服务被停用,任何明确依存于它的服务将无法启动。
补充: 允许多个使用者处理程序,执行分身等
建议: 自动

Security Accounts Manager (安全性账户管理员)
微软: 储存本机账户的安全性信息。
补充: 管理账号和群组原则(gpedit.msc)应用
依存: Remote Procedure Call (RPC)、Distributed Transaction Coordinator
建议: 自动

Server (服务器)
微软: 透过网络为这台计算机提供档案、打印、及命名管道的共享。如果停止这个服务,将无法使用这些功能。如果停用这个服务,所有依存于它的服务将无法启动。
补充: 简单的说就是档案和打印的分享,除非你有和其它计算机分享,不然就关了
依存: Computer Browser
建议: 已停用

Shell Hardware Detection
微软: 为自动播放硬件事件提供通知。
补充: 一般使用在记忆卡或是CD装置、DVD装置上
依存: Remote Procedure Call (RPC)
建议: 自动

Smart Card (智慧卡)
微软: 管理这个计算机所读取智能卡的存取。如果这个服务被停止,这个计算机将无法读取智能卡。如果这个服务被停用,任何明确依存于它的服务将无法启动。
补充: 如果你不使用 Smart Card ,那就可以关了
依存: Plug and Play
建议: 已停用

Smart Card Helper (智能卡协助程序)
微软: 启用对这个计算机使用的旧版非随插即用智能卡读取头的支持。如果这个服务被停止,这个计算机将不支持旧版读取头。如果这个服务被停用,任何明确依存于它的服务将无法启动。
补充: 如果你不使用 Smart Card ,那就可以关了
建议: 已停用

SSDP Discovery Service
微软: 在您的家用网络上启用通用随插即用装置的搜索。
补充: 如上说的,通用随插即用服务 (Universal Plug and Play, UPnP) 让计算机可以找到并使用网络上的装置,经由网络联机透过 TCP/IP 来搜索装置,像网络上的扫瞄器、数字相机或是打印机,亦即使用 UPnP 的功能,基于安全性没用到的大可关了
依存: Universal Plug and Play Device Host
建议: 已停用

System Event Notification (系统事件通知)
微软: 追踪诸如 Windows 登入、网络、和电源事件的系统事件。通知这些事件的 COM+ 事件系统订阅者。
补充: 如上所说的
依存: COM+ Event System
建议: 自动

System Restore Service
微软: 执行系统还原功能。若要停止服务,从我的计算机->内容,[系统还原] 中关闭系统还原
补充: 将计算机回复至先前的状态,不使用就关了
依存: Remote Procedure Call (RPC)
建议: 已停用

Task Scheduler (工作排程器)
微软: 让使用者能够在这个计算机上设定和排定自动的工作。如果停止这个服务,这些工作在它们排定的时间时将不会执行。如果停用这个服务,任何明确依存于它的服务将无法启动。
补充: 设定排定自动的工作,像一些定时磁盘扫瞄、病毒定时扫瞄、更新等等
依存: Remote Procedure Call (RPC)
建议: 自动

TCP/IP NetBIOS Helper (TCP/IP NetBIOS 协助程序)
微软: 启用 [NetBIOS over TCP/IP (NetBT)] 服务及 NetBIOS 名称解析的支持。
补充: 如果你的网络不使用 NetBios 或是 WINS ,你大可关闭
依存: AFD 网络支持环境、NetBt
建议: 已停用

Telephony (电话语音)
微软: 为本机计算机上及经由局域网络连接到正在执行此服务的服务器上,控制电话语音装置和 IP 为主语音联机的程序,提供电话语音 API (TAPI) 支持。
补充: 一般的拨号调制解调器或是一些 DSL/Cable 可能用到
依存: Plug and Play、Remote Procedure Call (RPC)、Remote Access Connection Manager、Remote Access Auto Connection Manager
建议: 手动

Telnet
微软: 启用一个远程使用者来登入到这台计算机和执行应用程序,以及支持各种 TCP/IP Telnet 客户端,包含以 UNIX 为基本和以 Windows 为基本的计算机。如果服务停止了,远程使用者可能无法存取应用程序。如果服务停用了,任何明确地依存于这项服务的其它服务将会启动失败。
补充: 允许远程使用者用 Telnet 登入本计算机,一般人会误解关了就无法使用BBS,这其实和BBS无关,基于安全性的理由,如果没有特别的需求,建议最好关了
依存: NT LM Security Support Provider、Remote Procedure Call (RPC)、TCP/IP Protocol Driver
建议: 已停用

Terminal Services (终端机服务)
微软: 允许多位使用者互动连接到同一部计算机、桌面的显示器及到远程计算机的应用程序。远程桌面的加强 (包含系统管理员的 RD)、快速切换使用者、远程协助和终端机服务器。
补充: 远程桌面或是远程协助的功能,不需要就关了
依存: Remote Procedure Call (RPC)、Fast User Switching Compatibility、InteractiveLogon
建议: 已停用

Themes
微软: 提供使用者经验主题管理。
补充: 很多人使用布景主题,不过如果没有使用的人,那就可以关闭
建议: 自动

Uninterruptible Power Supply (不断电供电系统)
微软: 管理连接到这台计算机的不断电电源供应 (UPS)。
补充: 不断电电源供应 (UPS)一般人有用到吗?除非你的电源供应器有具备此功能,不然就关了
建议: 已停用

Universal Plug and Play Device Host
微软: 提供主机通用随插即用装置的支持。
补充: 用来侦测安装通用随插即用服务 (Universal Plug and Play, UPnP)装置,像是数字相机或打印机
依存: SSDP Discovery Service
建议: 已停用

Volume Shadow Copy
微软: 管理及执行用于备份和其它目的的磁盘区卷影复制。如果这个服务被停止,卷影复制将无法用于备份,备份可能会失败。如果这个服务被停用,任何明确依存于它的服务将无法启动。
补充: 如上所说的,用来备份的?#124;西,如 MS Backup 程序就需要这个服务
依存: Remote Procedure Call (RPC)
建议: 已停用

WebClient
微软: 启用 Windows 为主的程序来建立、存取,以及修改因特网为主的档案。如果停止这个服务,这些功能将无法使用。如果停用这个服务,任何明确依存于它的服务将无法启动。
补充: 使用 WebDAV 将档案或数据夹上载到所有的 Web 服务,基于安全性的理由,你可以尝试关闭
依存: WebDav Client Redirector
建议: 已停用

Windows Audio
微软: 管理用于 Windows 为主程序的音讯装置。如果这个服务被停止,音讯装置和效果将无法正常?#092;作。如果这个服务被停用,任何明确依存于它的服务将无法启动。
补充: 如果你没有声卡可以关了他
依存: Plug and Play、Remote Procedure Call (RPC)
建议: 自动

Windows Image Acquisition (WIA) (Windows影像取得程序)
微软: 为扫描仪和数字相机提供影像撷取服务。
补充: 如果扫描仪和数字相机内部具有支持WIA功能的话,那就可以直接看到图档,不需要其它的驱动程序,所以没有扫描仪和数字相机的使用者大可关了
依存: Remote Procedure Call (RPC)
建议: 已停用

Windows Installer (Windows 安装程序)
微软: 根据包含在 .MSI 档案内的指示来安装,修复以及移除软件。
补充: 是一个系统服务,协助使用者正确地安装、设定、追踪、升级和移除软件程序,可管理应用程序建立和安装的标准格式,并且追踪例如档案群组、登录项目及快捷方式等组件
依存: Remote Procedure Call (RPC)
建议: 手动

Windows Management Instrumentation (WMI)
微软: 提供公用接口及对象模型,以存取有关*作系统、装置、应用程序及服务的管理信息。如果这个服务已停止,大多数的 Windows 软件将无法正常?#092;作。如果这个服务已停用,所有依存于它的服务都将无法启动。
补充: 如上说的,是一种提供一个标准的基础结构来监视和管理系统资源的服务,由不得你动他
依存: Event Log、Remote Procedure Call (RPC)
建议: 自动

Windows Management Instrumentation Driver Extensions (Windows Management Instrumentation 驱动程序延伸)
微软: 提供系统管理信息给予/取自驱动程序。
补充: Windows Management Instrumentation 的延伸,提供信息用的
建议: 手动

Windows Time (Windows 时间设定)
微软: 维护在网络上所有客户端及服务器的数据及时间同步处理。如果这个服务停止,将无法进行日期及时间同步处理。如果这个服务被停用,所有依存的服务都会停止。
补充: 网络对时校准用的,没必要就关了
建议: 已停用

Wireless Zero Configuration
微软: 为 802.11 适配卡提供自动设定
补充: 自动配置无线网络装置,言下之意就是说,除非你有在使用无线网络适配卡装置,那么你才有必要使用这个网络零管理服务
依存: NDIS Usermode I/O Protocol、Remote Procedure Call (RPC)
建议: 已停用

WMI Performance Adapter
微软: 提供来自 WMIHiPerf 提供者的效能链接库信息。
补充: 如上所提
依存: Remote Procedure Call (RPC)
建议: 已停用l

Workstation (工作站)
微软: 建立并维护到远程服务器的客户端网络联机。如果停止这个服务,这些联机将无法使用。如果停用这个服务,所有依存于它的服务将无法启动。
补充: 因特网联机中所必要的一些功能
依存: Alerter、Background Intelligent Transfer Service、Computer Browser、Messenger、Net Logon、Remote Procedure Call (RPC) Locator
建议: 自动

IIS 5.1和IIS 6.0一些显著的重要区别

核心功能和服务
已对 IIS 6.0 进行了重新设计以便利用基本 Windows 内核 HTTP.sys。这使其具有内置的响应和请求缓存和队列功能,并能够将应用程序进程请求直接路由到工作进程,从而改善可靠性和性能。

IIS 6.0 引入了两种用于配置应用程序环境的操作模式:工作进程隔离模式和 IIS 5.0 隔离模式。在安装 IIS 6.0 时默认的隔离模式取决于您执行的是全新安装还是升级。

在全新安装 IIS 6.0 之后,IIS 以工作进程隔离模式运行。
在从较低版本的 IIS 6.0 升级之后,隔离模式与以前安装的 IIS 6.0 版本所配置的相同。
在从 IIS 5.0 或 IIS 4.0 升级之后,在默认情况下,IIS 6.0 以 IIS 5.0 隔离模式运行,这样可保持与现有应用程序的兼容性。
有关从一种隔离模式切换到另一种隔离模式的信息,请参阅配置隔离模式。

IIS 5.0 IIS 5.1 IIS 6.0
平台 Windows 2000 Windows XP Professional Windows Server 2003 家族
体系结构 32 位 32 位和 64 位 32 位和 64 位
应用程序进程模型 TCP/IP 内核
DLLhost.exe(处于中等或高应用程序隔离模式下的多个 DLL 主机)
TCP/IP 内核
DLLhost.exe(处于中等或高应用程序隔离模式下的多个 DLL 主机)
HTTP.sys 内核
当 IIS 以 IIS 5.0 隔离模式运行时:Inetinfo.exe(对于进程内应用程序)或 DLLhost.exe(对于进程外应用程序)

当 IIS 以工作进程隔离模式运行时:W3wp.exe(多工作进程)

配置数据库配置 二进制 二进制 XML
安全性 Windows 身份验证
SSL

Kerberos

Windows 身份验证
SSL

Kerberos

安全向导

Windows 身份验证
SSL

Kerberos

安全向导

Passport 支持

远程管理
HTMLA 无 HTMLA
终端服务
远程管理工具 (HTML)
终端服务

群集支持
IIS 群集 Windows 支持 Windows 支持
WWW 服务
Windows 9x 上的个人 Web 管理器
Windows 2000 上的 IIS
(可选)Windows XP Professional 上的 IIS Windows

IIS 5.0 隔离模式
IIS 5.0 隔离模式按照与 IIS 5.0 中的进程管理相似的方式管理应用程序进程:所有的进程内应用程序都在 Inetinfo.exe 内运行,进程外应用程序在单独的 DLL 宿主中运行。一些现有应用程序可能无法并发运行或将会话状态与应用程序分开存储。因此,在 IIS 5.0 隔离模式中运行进程可以确保与大多数现有应用程序的兼容性。下图显示如何在 IIS 5.0 隔离模式中处理应用程序进程。

配置数据库配置
IIS 6.0 的配置数据库以 XML 文件形式存储,而不是以早期版本中的二进制格式存储。位置仍在原处,但是操作方式(更新、回滚、还原和扩展)已发生了变化。有两个重要文件,并非一个:MetaBase.xml 和 MBSchema.xml。

有关 IIS 配置数据库的详细信息,请参阅关于配置数据库。

管理
在 IIS 4.0 中,应用程序既可以在与 Internet 服务相同的进程中运行,也可以在单独的进程中运行。在 IIS 5.0 和 5.1 中,应用程序现在可以分为若干汇集的进程以增强性能并提高可伸缩性。 详细信息,请参阅关于应用程序。在 IIS 6.0 工作进程隔离模式中,可将应用程序组合到任意数量的应用程序池中。
“应用程序映射”属性页包含一个超文本传输协议 (HTTP) 动作列表,它们可由映射到特定文件类型的应用程序进行处理。该动作列表与 IIS 4.0 有一处不同。在 IIS 4.0 中,列表中包含“已排除”或未被处理的动作。这个改变是为了适应新的 HTTP 动作,以便将其添加到协议中。 有关应用程序映射的详细信息,请参阅设置应用程序映射。
群集不是 IIS 6.0 的功能(不支持 IISsynche.exe)。群集是 Windows Server 2003 家族的功能。有关 Windows 群集 (MSCS) 的信息,请参阅 Windows Server 2003 家族的帮助。
与 IIS 4.0 相比,IIS 5.0 中自定义错误文件的位置已经改变。 详细信息,请参阅启用详细的自定义错误消息。
已经添加了新的自定义错误文件,以便报告更详细的错误信息以及与新功能有关的错误。 有关可用的自定义错误消息的完整列表,请参阅关于自定义错误消息。
基于 Web 的 Internet 服务管理器 (HTML) 已经由 Web 工具应用。要使用 Internet 服务管理器 (HTML) 远程管理 IIS, 请参阅如何远程管理服务器。
以编程方式管理
在早期版本的 IIS 中,可以从编译的 C++ 应用程序使用管理基本对象 (ABO) 或者从 C++ 或脚本文件使用 Active Directory 服务界面 (ADSI) 以编程方式管理 IIS。IIS 6.0 包括了 Windows 管理规范 (WMI) 提供程序,WMI 这一技术允许管理员以编程方式控制所有服务和应用程序。详细信息,请参阅使用 IIS WMI 提供程序。有关新的 ADSI 方法的信息,请参阅 IIS 6.0 中的配置数据库更改。

Active Server Pages
从 IIS 6.0 开始,Microsoft Active Server Pages (ASP) 可以与 Microsoft ASP.NET 一起使用。有关配置 IIS 以运行 ASP.NET 应用程序的信息,请参阅 ASP.NET。有关 IIS 6.0 中 ASP 功能更改的信息,请参阅 ASP 中的重要更改。

ASP 挂起检测
当 IIS 网站繁忙时,可能会出现这种情况:已经产生了最大数量的 ASP 线程,而一些 ASP 线程却挂起,这会导致性能降低。IIS 6.0 能够通过回收作为 ASP ISAPI 扩展 (ASP.dll) 的特定实例宿主的工作进程来解决线程挂起问题。当 ASP 线程在 IIS 6.0 中挂起时,ASP.dll 调用 ISAPI 服务器支持函数 HSE_REQ_REPORT_UNHEALTHY,WWW 服务回收作为 ASP.dll 宿主的工作进程,并在事件日志中创建一个项目。

有关 ISAPI 服务器支持函数的详细信息,请参阅 MSDN® Online 上 ISAPI 扩展参考中的 ServerSupportFunction。

安全性
IIS 6.0 中的一个最重要的变动涉及 Web 服务器安全性。为了更好地预防恶意用户和攻击者的攻击,在默认情况下,没有将 IIS 安装在 Microsoft Windows Server 2003 家族的成员上。

要点 为了更好地预防恶意用户和攻击者的攻击,没有将 IIS 默认安装到 Microsoft® Windows® Server 2003 家族的成员上。而且,当您最初安装 IIS 时,该服务在高度安全和“锁定”的模式下安装。在默认情况下,IIS 只为静态内容提供服务 - 即,ASP、ASP.NET、服务器端包含、WebDAV 发布和 FrontPage® Server Extensions 等功能只有在启用时才工作。如果安装 IIS 之后未启用该功能,则 IIS 返回一个 404 错误。您可以为动态内容提供服务,并通过 IIS 管理器中的 Web 服务扩展节点启用这些功能。同样,如果应用程序扩展未在 IIS 中进行映射,则 IIS 返回一个 404 错误。要映射扩展,请参阅设置应用程序映射。有关如何排解 404 错误(包括 404.2 和 404.3)、与 IIS 6.0 的新安装相关的问题或从低版本的 IIS 进行升级的详细信息,请参阅疑难解答。

通过 Web 服务器证书向导和 CTL 向导,您可以同步 Web 和 NTFS 的安全设置、获得并安装服务器证书以及创建和修改证书信任列表。还可以选择一个加密服务提供程序 (CSP) 以使用证书加密数据。 详细信息,请参阅使用证书向导。

IIS 6.0 中的其他安全性变动包括下列内容:

在升级版本上禁用:除非满足下列条件之一,否则在 Windows Server 2003 家族的升级版本上禁用万维网发布服务(WWW 服务):
在开始升级过程之前,您已在 Windows 2000 Server 上运行了 IIS 锁定向导。IIS 锁定向导通过禁用不必要的功能来减少攻击面,并且它允许您确定为站点启用哪些功能。IIS Lockdown Tool 中提供了 IIS 锁定向导。
要点 如果使用 WWW 服务,则强烈建议您在升级到 Windows Server 2003 家族中的产品之前,在 Windows 2000 Server 上运行 IIS 锁定向导。IIS 锁定向导通过禁用或删除 Windows 2000 Server 安装中不需要的功能来保护计算机的安全。否则,升级后计算机上仍保留这些功能,这会使您的服务器易受攻击。

注册表项 RetainW3SVCStatus 已添加到注册表中 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC 的下面。在 RetainW3SVCStatus 下,您可以添加任何值,然后给它赋予一个 DWORD 值。例如,您可以创建注册表项 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC\RetainW3SVCStatus \do_not_disable,并且 DWORD 值为 1。
对于无人参与的安装,“DisableWebServiceOnUpgrade = false”项存在于无人参与的安装脚本中。
通过组策略禁用 IIS:通过使用 Windows Server 2003 家族成员,域管理员可以禁止用户在其计算机上安装 IIS。
以具有低级访问权限的帐户运行:IIS 工作进程在访问权限极少的用户上下文中运行。这大大减少了潜在攻击的影响。
提高 ASP 的安全性:所有的 ASP 内置功能总是以具有极少访问权限的帐户 IUSR_computername 运行。
运行可执行文件的限制:为了运行系统文件夹中的大多数可执行文件(如 cmd.exe),您必须是 Administrators 组、LocalSystem、Interactive 或 Service 帐户的成员。该限制限制了对 Administrators 的远程访问,因此匿名用户无法运行可执行文件。
修补程序管理:对于修补程序管理,管理员可在不中断服务的情况下安装最新的安全修补程序。
已知的扩展:IIS 只为对具有已知文件扩展名的文件的请求提供服务。如果请求内容的文件扩展名未映射到已知的扩展,则服务器拒绝请求。
内容的写保护:在默认情况下,拒绝匿名用户(以 IUSR_computername 帐户运行)对 Web 内容进行写入访问。
超时和限制:在 IIS 6.0 中,默认设置是安全而主动的,这样可最大限度地减少因以前太宽松的超时和限制而造成的攻击。
上载数据限制:管理员可以限制能上载到服务器的数据。
缓冲区溢出保护:工作进程会检测缓冲区溢出,并在检测到时退出程序。
文件验证:IIS 在将请求发送到请求处理程序(ISAPI 扩展)之前会验证请求的内容是否存在。
索引资源:该权限现在会在默认情况下启用。
脚本资源访问:该权限允许访问 ASP 页脚本和其他脚本的“源代码”,它是新增功能,且在默认情况下被禁用。它可在选择了“读取”或“写入”权限时可用。
子验证:在新安装的 IIS 6.0 中,在默认情况下不再启用。有关详细信息,请参阅 匿名身份验证中的“使用子验证”部分。
UNC 身份验证:在此版本的 IIS 中,UNC 身份验证方法检查是否有用户凭据。详细信息,请参阅 UNC 身份验证。
新策略:“禁止安装 IIS”策略已经添加到 Windows Server 2003 产品家族中。该策略允许域管理员控制可以在域中哪些计算机上安装 IIS。详细信息, 请参阅 Windows 帮助中的组策略。
Fortezza:已取消了对该功能的支持。
性能
为了限制分配给 ASP 页的内存量,IIS 已经将 AspScriptFileCacheSize 的默认值设置为 250 个 ASP 页,并将 AspScriptEngineCacheMax 的默认值设置为 125 个脚本引擎。在具有一组大量经常请求的 ASP 页的站点上,可以将 ASPScriptFileCacheSize 设置得更高一些。因为 ASP 页的编译比从缓存中检索页要慢很多,所以这会改善性能。在只具有少量经常请求的 ASP 页的站点上,可通过将该数字设置得小一些来节省内存。

IIS 工具组件
Windows NT Server 的协作数据对象 (CDONTS):CDONTS 已从 Windows Server 2003 家族中删除。如果 Web 应用程序使用 CDONTS,则可以将它们转换为 Microsoft 协作数据对象 (CDO)。CDONTS 中的大多数方法在 CDO 中都有相匹配的方法,但是名称可能不同。有关平台软件开发工具包 (PSDK) 中 CDO 的参考资料,请参阅 MSDN Online 上的 Overview of CDO。
未安装 IIS 工具组件:Ad Rotator、Browser Capabilities、Content Linker、Content Rotator、Counters、Logging Utility、My Info、Page Counter、Status 和工具不随 IIS 6.0 一起安装。但是,如果您的 Web 服务器是从低版本的 IIS 升级的,则这些工具组件不会被删除。您可以从 IIS 6.0 资源工具包中获取工具组件 DLL 文件的副本。
64 位 Windows Server 2003 家族上的 IIS
在 64 位 Windows Server 2003 家族的操作系统上,IIS 作为 64 位应用程序运行。这意味着不能从 64 位 Windows Server 2003 家族的操作系统上的 IIS 调用 32 位应用程序。例如,Jet 数据库引擎将不能转换为 64 位应用程序,因此,不能使用 ActiveX® 数据对象 (ADO) 从 ASP 页打开 Microsoft Access 数据库。但是,仍可以使用 ADO 访问其他驱动程序,如 SQL 和 Exchange。

架设维护Windows Server 2003网页服务器

Windows下的WWW服务器以其架设方便、操作简单赢得了很多人的青睐,下面笔者将以Windows Server 2003为例来介绍如何配置一个Web服务器,望能对刚入门的网管员有所帮助。

一、架设Web服务器

默认安装的Windows Server 2003没有配置IIS服务,需要我们手工安装。进入控制面板,执行“添加或删除程序→添加/删除 Windows 组件”进入Windows组件向导窗口,勾选“应用程序服务器→Internet 信息服务”,“确定”后返回Windows组件向导窗口点击“下一步”即可添加好IIS服务。在控制面板的管理工具中执行“Internet 信息服务(IIS)管理器”进入IIS管理器主界面(如图),在图上可以看出Windows Server 2003下的IIS默认支持静态网站,若要执行动态页面还需设置Web服务扩展属性,比如要执行ASP网站则要在“Web服务扩展”列表中选中 “Active Server Pages”然后单击“允许”按钮来启用该功能。接下来就可以具体配置Web站点了。

1. 网站基本配置。在“默认网站”的右键菜单中选择“属性”进入“默认网站属性”窗口,在“网站”选项卡上的“描述”里可以为网站取一个标示名称,如果本机分 配了多个 IP 地址,则要在IP 地址框中选择一个赋予此Web站点的IP地址;然后进入“主目录”选项卡中指定网站Web内容的来源并在“文档”中设置好IIS默认启动的文档。单击“应 用”按钮后就可以使用http://127.0.0.1 来验证网站了。

2. 网站性能配置。进入“性能”选项卡,在这里可以对网站访问的带宽和连接数进行限定,以更好地控制站点的通信量,如果是多站点服务器,通过对一个站点的带宽 和连接数限制可以放宽对其他站点访问量的限制和为其他站点释放更多的系统资源。(提示:在实际的限定操作中我们要根据网络通信量和使用变化情况进行调 整。)

3. 网站的安全性配置。为了保证Web网站和服务器的运行安全,可以在“目录安全性”选项卡上为网站进行“身份验证和访问控制”、“IP地址和域名限制”的设置,不过如果没有别的要求一般采用默认设置就可以了。

二、IIS的备份和移植

为了防止系统损坏对IIS配置的影响,我们可以采用选择本地计算机右键菜单中的“所有任务→备份/还原配置”来备份IIS,但这种操作如果遇到重装Web 服务器或将一台Web服务器移植到另一台Web服务器时就无能为力了,我们可以使用IIS备份精灵来实现IIS的备份和移植了。

启动软件,在IIS备份精灵的站点列表上就会列出IIS服务器上配置的各种站点了,勾选你要备份的站点然后单击“导出站点”按钮,在弹出的“导出IIS站点”窗口上选择好文件保存路径,“确定”后,站点配置信息就会以一个TXT文本文件保存下来了。

在重装IIS服务器需要导入站点信息时,运行IIS备份精灵,单击“导入站点”按钮在弹出的“IIS导入站点”窗口上选择要导入的事先备份好的IIS站点 信息文件,“确定”后即可导入。若需要移植IIS站点信息应先把备份的站点信息文件复制到目的机器上,然后在这个机器上再下载安装IIS备份精灵,执行 “导入站点”操作就可以了。