TechNet 鼹鼠
圣诞节后的第一个工作日。新年中第一次收到非生日礼物的日子。开学的第二天。现在我们可以在词汇表中添些新词了:“未发生的‘启示’”、“未发作的千年虫”、“自我混沌”。那时鼹鼠根本就没有考虑其他事情。当看着邻居们冲向“安全通道”及五大银行,储备那些救生物品时,他不禁以爪掩面,暗自发笑。尽管那些日子一直大肆宣扬如何如何,却根本没有发生水淹老巢这种事情。实际上,鼹鼠承认,千禧年前自己只有一个浅薄的顾虑,即担心自己最喜欢的自动售货机的芯片会误认为售货机中的葡萄干已存放了 100 年,并因此拒绝售出。
不过,还是有点让人扫兴,让人对肤浅的现实稍微有点不满;自从高中时鼹鼠读过 Herman Hesse 之后,还从没有过这种感受。鼹鼠希望,将来,当新闻机构、各大机构、文摘小报对“下一个大恐慌”表示关注时,应该及时改正这种情况。(目前,Y2K 总统选举看来是最有可能当选的候选人)。而在这种情况尚未发生之前,鼹鼠打算专注于自己的 Windows 2000 的测试中。建议大家也像他一样。
本页内容!
- RRAS、DUN 及正在消失的登录脚本
- 他的点对点隧道被堵住了
- 更详细的 RRAS 及 PPTP(CMAK 使它看上去很迷人)
- 但商场那家伙说它肯定不行!Win3.1 与 Y2K
更新!
- MSDN 上的 DLL Heck
反唇相讥!
- 那些老掉牙的“多启动”的布鲁斯,老调重弹
RRAS、DUN 及正在消失的登录脚本
亲爱的鼹鼠:
我们发现,用 RAS 拨入时, Windows NT® 的登录脚本根本不会在 Windows NT 4.0 工作站上运行,除非在登录屏上选择了用 RAS 连接到网络的选项。大多数用户都是在登录后再连接网络,并根据需要与网络保持连接的。他们是在使用 Windows 95 时学会这一点的。
有没有方法,使登录脚本在这种情况下也能运行呢?Windows NT 4 Service Pack 是否已解决了这个问题?Windows® 2000 中,这个问题解决了吗?
谢谢,
Patrick Mitchell
Patrick:
鼹鼠该怎么帮您呢?让他数数有几种方法。登录脚本是一种很讨厌的情况,什么事都能造成工作淤积。姑且把它看作是配置错的多米诺效应。(请注意,它不是个正式的技术术语,没有缩写词)。总之,我们来考虑一下各种可能性。
首先,我们回顾一下您面临的问题。您在本地登录上了自己的计算机。然后开始与 RAS 服务器的“拨号”会话。能正常进入 Windows NT 网关,但是不能运行登录脚本。我明白了,Patrick,这个问题是由计时引起的。RAS 服务器有 5 秒的时间等待域控制器作出响应,以进行身份验证。如果期间没有收到身份验证, RAS 就会用工作站中的高速缓存凭据来确认登录。嘿。不用运行登录脚本,您已进去了。
当然,坦白地讲,真有点好奇:难道脚本中有什么东西,让您难以割舍?假如您真想要或真需要那些东西,我所能给您的“最佳”建议是,用“用户配置文件”来达到同样目的。这不但有效,而且实际上也是 Microsoft 所推荐的方法。
“用户配置文件”方法有一个替代方法,即把域控制器放在和 RAS 服务器相同的子网中。这使得域控制器的身份验证响应更快,而且,既然登录脚本将复制到那台机器中,这些脚本肯定也会运行。这使所有工作都变得简单了许多。
鼹鼠还有一个想法,最后也是最费力的一个,即运行一个脚本文件,该文件包含登录脚本中的项目。通过修改已创建的“拨号”快捷方式,并把它放在用户桌面上,就可以使这些操作自动执行了。步骤如下:
首先,就像平常一样,选择“开始”、“程序”、“附件”、“拨号网络”,创建拨号电话簿项。创建了电话簿项后,单击更多按钮,选择“创建到项目的快捷方式”,然后再单击“确定”。
然后,在桌面的快捷方式中,鼠标右击快捷方式图标,选择“编辑项目和调制解调器设置”。选择“脚本”选项卡。就会看到类似这样的内容:
正如您所看到的,您能指定拨号后运行的脚本(或者如果您单击了“拨号前”按钮,则是拨号“前”要运行的脚本)。指向所要运行的脚本,这就行了。请注意:在单击“编辑脚本”时,会出现一个文档,上面写着:
拨号网络脚本的基本形式如下:
; A comment begins with a semi-colon and extends to
; the end of the line.
proc main
; A script can have any number of variables and commands
variable declarations
command block
endproc
以下是一个用 Windows 95 脚本语言编写的简单的脚本例子:
waitfor \"Login:\"
waitfor \"Password?\",matchcase
waitfor \"prompt> \" until 10
waitfor
\"Login:\" then DoLogin,
\"Password:\"then DoPassword,
\"BBS:\"then DoBBS,
\" Other:\"then DoOther
until 10
这是“最差的”解决方案吗?是,很可能。不过这可是您选择的。
有关已保存密码及 Service Pack
Patrick,有一个问题与您的问题很相似,它可能会出现在那些还没有应用 Windows NT Service Pack 4 的网络中。鼹鼠在此引用了 Knowledge Base 的文章“DUN Credentials Cached When Save Password Not Selected with RAS。(英文)”
问题说明如下:
如果您安装的是 Service Pack 3 或更早版本,鼹鼠建议您去找到、下载、测试并安装 Windows NT Service Pack 6a 版本 。
您曾问起过 Windows 2000 的有关问题
Windows 2000 通过使用组策略,已对此种情况有了一定的改进。(实际上,使用组策略已大大改善了许多条件。鼹鼠认为,对此您肯定会非常喜欢。)但是我们讨论的是登录脚本。当检测到慢速链接时,默认的行为如下:
默认情况下所用的策略:
- 肯定会应用(管理模板的)注册表设置 - 这一点是无法更改的。
- 肯定会应用安全策略(这是无法更改的)
- EFS 恢复策略
- IP 安全
没有应用的策略:
- 应用程序部署
- 脚本
- 文件夹重定向
- 磁盘配额
通过修改或创建组策略对象 (GPO),来定义需要应用的组策略类型,这样管理员就可以在工作站上更改默认行为了。请参见 Knowledge Base 中的文章“Default Behavior for Group Policy Extensions with Slow Link”(英文),以获取详细信息。
天啊,这比您所要的答案是不是多的太多了?
鼹鼠
他的点对点隧道被堵住了
我们已经成功地在网络上建立了 VPN,通过测试我们发现,它是网络中非常有益的一个方面。唯一的问题:要从 Internet 处成功登录到我的网络,AOL 是唯一能用的 ISP 连接。
我是在家运行 Windows 98,已尝试了好几家其它 ISP,但总是无法成功连接。如果用 AOL,就能顺利登录,密码能够得到验证,并且也能看见自己的网络。但当我用 Earthlink 时,比方说,甚至不能拨 IP 地址 - 我会得到一个错误信息,告诉我:适配器正在使用,请重启计算机,再进行尝试。为什么适配器能与 AOL 正常工作,却不能与其它的拨号网络连接正常工作呢?
能否解答该问题?非常感谢。
谢谢,祝您愉快。
Anthony Giannattasio
您好 Anthony:
一般情况下,鼹鼠的答案是以问题开始的。您必须向自己的 ISP,或您希望连接 VPN 的 ISP,问清这个问题。即:是否支持 PPTP?鼹鼠希望,您得到的答复中不会出现“哦,这个嘛......”。
这是隧道出现分歧的地方,看看您收到了什么回答。
第一隧道:ISP“的确”提供 PPTP 服务。
- 向 ISP 索要说明如何与提供 PPTP 服务的服务器连接的文档。
在自己的 Windows 机器上,检查 PPTP 配置。通过阅读下列文章,赶快把它设置好:
- Knowledge Base 中的文章“How to Set Up a Private Network Over the Internet Using PPTP(英文)。”
- Knowledge Base 中的文章“Troubleshooting PPTP Connectivity Issues in Windows NT 4.0(英文)。”
- 称为“Microsoft 点对点隧道协议 (Windows NT 4.0)”的白皮书。鼹鼠建议把这些内容打印出来。
- Knowledge Base 中的文章“Enabling PPP Logging in Windows NT(英文)。”这绝对是本必备书。它给您一些循序渐进的指导。依照这些指导,您就能准确了解登录时应做的一切。至少会知道要做什么。
- Knowledge Base 中的文章“How to Set Up a Private Network Over the Internet Using PPTP(英文)。”
第二隧道:ISP“不”提供 PPTP 服务。
同样,看看 ISP 对您的情况有什么好的建议。对了,问问又不会有什么坏处。如果他们仅仅是耸耸肩(不予回答),那么就回到图书馆,这次要读的书目就不同了。
- Knowledge Base 中的文章“Using PPTP Over a Non-PPTP Enabled Internet Provider(英文)。”
- Knowledge Base 中的文章“Troubleshooting Internet Service Provider Login Problems(英文)。”
您应该能在这两者中得到足够的信息,自己组织好解决方案。
有个好窍门
可创建一个批处理文件,自动完成 ISP 与企业 PPTP 服务器间的拨号连接。这节省了时间。节省了周期。还会让自己感觉很好。请参阅:“Automating PPTP Connection Via ISP Connection(英文)。”
在业余时间:为丰富自己的 PPTP 背景而阅读书目
- “Microsoft Point-to-Point Tunneling Protocol (Windows NT 4.0)”
- “Microsoft Windows NT Server 4.0 PPTP White paper”
- “Understanding PPTP (Windows NT 4.0)”
VPNCon:到加利福尼亚去。一边学习,一边晒太阳。
自己公司有虚拟专用网络的好处是很明显的。当新英格兰的雪开始熔化,飓风季节逼近墨西哥湾海岸,太平洋西北部的霉菌对生命构成威胁之际,您有没有注意到在圣何塞出席四天会议的好处?鼹鼠想到了。去看看。
别误了“虚拟专用网络会议”(VPNCon)!
http://www.vpncon.com/
VPNcon 是个主题明确的会议,其展示旨在向用户说明如何来实现 VPN。该会议集中于虚拟专用网络技术、产品及服务。该会议有 3 个主要内容:网络管理、安全及标准、业务。
最后有个小玩笑,是鼹鼠的一位同事说的,即据他观察,任何时候只要冠以“虚拟”这个前缀,后面跟的就是一个谎言。
接着笑啊。
鼹鼠
更详细的 RRAS 及 PPTP (CMAK 使它看上去很迷人)
亲爱的鼹鼠:
我正进行解决方案的设计,在这方面,我有一个问题。我们已经用好几种运行 SP5 的 RRAS 服务器来支持世界各地的 10 个远程办公室,在这些办公室中使用 RRAS/PPTP,有的运行 LAN,有的运行 LAN VPN。此外,这些 RRAS 服务器接受那些旅途中的笔记本用户通过 I-Pass 及 MCM/PPTP 来调用。
现在我们正扩展这个模式,使其包括那些基于 VPN,用纯 Microsoft Windows NT4 及 3COM ISDN 路由器组成的家居办公室。
3COM ISDN 路由器通过 NAT 支持 PPTP,使单用户家居办公室免费订阅成为可能。在内部,我们用的是 Windows NT4 工作站,安装了 RAS/PPTP 及通过 10baseT 与 3COM 路由器连接的 SP5。所有的一切都能与 NT4WS(用于登录的域的一个成员)一起正常工作。
我的问题是:如何尽可能地使登录对用户是透明的,并使它运作起来像在办公室里一样?
- 我们在 TechNet 发现的情况是:当用户按下 Ctrl-Alt-Delete 并看到登录框时,由于这里我们已锁定了“使用拨号网络”按钮,因此它是强制的、可以使用的。
- 接着出现了一个新的提示,如拨哪个电话号码,等等,用户必须单击“拨号”。
如能关注,不胜感谢。我们衷心希望这个问题能得到解决,这样我们就能在家居办公室中得到一个很好的、很迷人的 Windows NT4 程序包。
谢谢,并致问候
Geir A.
IT 委员会经理
您好 Geir:
迷人的家居办公室。不,鼹鼠不会从自己的“收藏夹”文件中送出链接。不过,他还是要向您表示祝贺。从纯技术意义上讲,要实现您想要的东西仅差一丁点。事实上,仅仅缺少了最后一个、也是必需的那个缩写词。即 CMAK。
CMAK 代表的是“连接管理器管理工具包”,该工具包有几个组件。CMAK 通过一个向导,来创建用户特定的连接信息。该连接信息称为服务配置文件,与其它的东西一道,组成“安装程序包”。结合内设的“连接管理器”(CM),连接信息提供了一个通用的的客户拨号程序,用于连接到公用网络的网络资源,或者安全地通过 Internet 与专用网络相连接。CM 是拨号网络中最重要的。它向用户提供了毫无干扰的网络连接体验。
您可用 CMAK 完成以下操作:
连接状态。可对界面进行配置,使用户时刻掌握连接状态的信息。
自动密码。可以指定是否保存最终用户用于访问该网络的密码。您可根据公司或 ISP 的安全策略,激活或禁用该项服务。
安全连接的指派。CMAK 能用每个 POP 电话号码,建立与“点对点隧道协议”(PPTP) 配置的关联。
在 IE 5 资源工具包中调出 CMAK。单击第三部分,第十四章。
请在 Connection Manager Administration Kit Guide 中查找规划信息。
您猜怎么着?它是免费的。
单击这里。从 TechNet 网页下载 CMAK。
这就行了,Geir。
此致
鼹鼠
附言:请把您的 Windows NT 4.0 Service Pack 升级到 6a 版。您会为此感谢我的。
但是商场那家伙说这不行!
鼹鼠:
我的 586-100 系统用的是 Windows 3.1。我从来就没想过要升级,而且我所用的一个家庭业务程序就安装在 Windows 3.1 中。该程序的编写者“认为”,系统从 Windows 3.1 升级 Win95 或 Win98 后,程序仍能正常工作;但是不敢肯定,因为大多数用户是把它安装在 95 或 98 模式中。
本来我对此并不是很在意,但昨天一家从事计算机、电视机、及传真机销售的本地连锁店的一个技术人员说,Windows 3.1 不符合 Y2K,不管它安装了什么,可能会无法启动。在 Internet 上,我找不到有关 3.1 及 Y2K 的任何资源。我把时间、日期调到 12-31-1999 11:59pm,并且每一项都“确定”,运行看起来很正常,不过...
有关于 Windows 3.1 的信息吗?除非业务程序可能出现问题,而不得不进行升级,否则我真不想升级,但停机或系统丢失信息,我可真承担不起。
谢谢您的帮助。
Everett B。
Everett:
好吧,这个问题看起来有点翻旧帐,因为 1/1/2000 早过了,您的计算机显然运行很正常。但有几个原因使鼹鼠想过问这个问题。第一,要让他看看,您“永远”都能从鼹鼠(通常从 TechNet 处)那得到可靠的信息,该信息比商场计算机连锁店那家伙给的要可靠得多。您可以拿着这些信息上银行。这是得到担保的。
第二点,有关您雇用的那个程序员。鼹鼠想怎么做,您知道吗?让那家伙别光“想象”,而要弄清楚究竟自己的程序在一个已从 Win 3.1 升级到 Win9x 的机器上运行会不会有问题。那可是他自己编的程序,鼹鼠认为,他有责任来验证该程序能否在不同的情况下正常工作。还要记住,如果您决定升级 Windows,可让他来负责。(如果该程序员是个女的,请您适当地改动一下前边出现的性别代词。)
对了,在 Microsoft Year2000 Web 站点上 ,有“所有”Microsoft 产品的 Y2K 的信息。要得到 Windows 3.1 的具体信息,请单击这里(英文)查看该网页,上面列举了许多问题及处理的办法。
Win 3.1 和 Y2K 没有什么克服不了的问题,对此您应该感到满意了 - 实际上,“符合分级”指的是“产品与所推荐的用户操作相符合”。这包括了从阅读文档到装载软件升级的所有内容。鼹鼠敢肯定您有能力解决这些问题。他绝对没说这样的话:“必须现在升级,否则就会失去地盘。”
如果觉得 Win 3.1 挺好,鼹鼠认为就没有升级的必要。不过他真有点纳闷,这么多年来,有谁能如此顽固地拒绝 Win 3.1 以后一直不断提供的新功能和好处。
此致
鼹鼠
您先在此看到这些内容。或许接下来查看......
在最近的一个专栏中,鼹鼠在 DLL Heck 上谈到了 DLL 的版本冲突问题。Microsoft Developer's Network 的朋友们刚刚发表了一篇文章,为整个问题、Windows 2000 对策及将来的方向提供了重要的背景资料。这些都非常有趣。单击这里(英文)即可阅读该文。
反唇相讥:唱那些老掉牙的“多启动”布鲁斯
鼹鼠,那个想有 4 个分区的 Adobe 家伙可能有问题(真的吗?)。我用过 Partition Magic 及老的 OS/2“启动管理器”,最多只能有 4 个分区,这恰恰给我们就如何对这些傻盘进行硬盘分区设置了限制。其中一个分区必须是“启动分区”,该分区会出现一个菜单,指向 3 个启动选择。我常用的一个方法是,2 个作为启动分区,第三个分区用于数据,2 个启动分区都能看见这些数据。
喜欢您的专栏,再见
Keith Shelley
谢谢 Keith!
我也爱你,朋友。
鼹鼠
公司 IT 人员获得 Microsoft 技术信息的专业来源
鼹鼠一直觉得,用“航行”一词来描述一个人在信息的海洋中寻觅有用信息,对那些一提到海上旅行就脸色发青的人来说太不友好。尽管如此,鼹鼠还是孜孜不倦地在新增的和改进的 TechNet web 站点中“航行”(在这里,我们也许应当说“发掘”?)。谢天谢地!他总能及时地找到具体的产品信息。他喜欢热链接的左旋条纹、高级搜索引擎以及舒服的蓝色设计元素,这些与他最近装上的平静的山峰景色非常和谐,从而使 Explorer 界面不再单调枯燥。事实上,除了一个严重的疏漏外,他发现新改进的站点是非常令人满意的。鼹鼠相信,当 TechNet 设计小组意识到他们遗漏了位于主页中上方的那个只有 48 磅的热链接,那个只需简单地写上鼹鼠两字的热链接时,他们会非常痛心。鼹鼠确信,这个错误很快就会得到纠正。下面我们书归正传!
本周! “Windows 关机”布鲁斯
- “老大哥”要监视您:监视安全性更改事件
- 在 Internet 上的 SQL Server:安全性如何?
- 我要用哪个服务器来验证?
- 回音壁! 更改默认的邮件客户端
“Windows 关机”布鲁斯
鼹鼠:
我的几台 Win98 ATX 机器遇到了麻烦。当我关闭它们时,计算机总是在“正在关闭 Windows”画面处停下来,我不得不爬到桌子下面,伸手到机箱后面把它们关闭。
您能解决这个问题吗??
Steen Karlshøj
丹麦
Steen:
如果您真的不想借这个机会,锻炼一下身体的话,鼹鼠倒可以给您出几个点子。请注意,所有这些都是针对 Windows 98“常规”版本。如果您运行的是 Second Edition,请不要再往下读了。
第一种情况。快速关机被禁用。
一种可能的原因是,因为您的计算机使用了“高级配置和电源接口”(ACPI),并且“快速关机”功能被禁用。如果是这种情况,您可以选择:1) 热修复和 2) 使用变通方法。优点和缺点?请继续阅读。
- 热修复。同其它热修复方案一样,这个方案可以采用,但它未经过回归测试,所以可能会有某些潜在的隐患。您可以与 Microsoft 产品支持服务部门取得联系,以便得到热修复方案。因为这是一个已知的问题,而不是您弄出的什么怪东西,所以需要付费才能得到支持的概率约为 .00001%。那些现在还没有遇到 Steen 所提到问题的鼹鼠读者,送给您们一个忠告:别理它。如果一点发病症状都没有,有什么必要吃那么强的烈药呢?!
变通方法。按如下步骤,启用快速关机。
- 单击“开始”,指向“程序”,指向“附件”,指向“系统”工具,然后单击“系统信息”。
- 在“工具”菜单上,单击“系统配置实用程序”。
- 在“常规”选项卡上,单击“高级”。
- 单击“禁用快速关机”复选框将它清除,单击“确定”,然后再次单击“确定”。
- 当出现重新启动计算机的提示时,单击“是”。
第二种情况。受防病毒软件影响。
此不正常关机现象的第二个原因可能与防病毒软件有关。在关机时,如果 McAfee 或 Norton 防病毒程序在扫描软盘驱动器,就可能出现这一问题。您仍有两种选择,彻底解决问题或使用变通方法。
- 彻底解决: 请与您的防病毒程序制造商联系,寻求热修复的办法。
- 变通方法:将您的防病毒程序配置为,当您关闭计算机时,“不”扫描软盘驱动器。
现在请听我们法律部门的发言:“在本文中讨论的第三方产品由独立于 Microsoft 的厂商制造。Microsoft 不对这些产品的性能或可靠性作出默示或明示的保证。”如此等等。请不要连同其它解决方案一起使用。请参照这两种方案。仅在授权下使用。这些信息按“现有状况”免费提供。
噢,还有一个要提醒的事情。如果在“设备管理器”中禁用了“标准软盘控制器”设备,计算机可能会在关机时被挂起。唯一已知的解决办法更加直截了当:当计算机在关闭时被挂起,请直接手动关机。该问题没有热修复办法。
最后,鼹鼠想知道为什么您非得在这四个方法上花时间?毕竟,您还可以在桌子下面练一会儿瑜珈功嘛。请换一个角度看问题。想一想,如果“Being John Malkovich”的主角从来没有在尘世间饱受磨练,他就永远找不到通向天堂的大门。是不是这样呢?
您的朋友,
鼹鼠
“老大哥”要监视您:监视安全性更改事件
您好,鼹鼠:
我如何通过编程检测到安全性更改事件,比如:删除/禁用/启用用户帐号。
谢谢,
Nam Le
软件工程师
亲爱的 Nam Le:
这个问题提得不错。有个好消息,您不用编写任何自定义代码来监视用户帐号更改情况。内置在 Windows NT 中的“审核”功能允许您按照指定的标准,启用审核功能、选择要监视的项目并指定响应操作。
要激活安全事件日志功能,请执行如下步骤:
- 以本地工作站管理员身份登录。
- 单击“开始”按钮,指向“程序”,指向“管理工具”,然后单击“用户管理器”。
- 在“策略”选项卡上,单击“审核”。
- 单击“审核下列事件”选项。
- 启用您要使用的选项。
一旦启用了审核,就可以使用 Windows NT 的“事件查看器”来监视所选择事件类型对应的安全事件日志。
事实上,这并不是件有趣的事情。坐在那里盯着“事件查看器”屏幕,四秒钟后您就会感到厌倦。四个小时后,大脑就会变成浆糊。这就是计算中的残酷现实。而您真正想要的办法是,无论您身处何地,无论何时,无论白天黑夜,只要有事件发生,您都会得到通知,对不对?这是鼹鼠的想法。
既然这样,您需要在提供该功能的众多第三方解决方案选择一个。这些公司包括:IPSentry <http:// www.ipsentry.com>、Blue Lance <http://www.bluelance.com/> 和 Tivoli <http://www.tivoli.com/>,这只是其中的一部分。鼹鼠知道除此以外还有“一大堆”解决方案:在您常用的浏览器中,搜索“Windows NT security”,查找一个最符合您的标准的解决方案。最好找到法律免责声明读一下。同上面一样,Microsoft 不对任何特定的第三方产品提供保证。(此时,鼹鼠耸了耸肩,以示对这些商业常识一无所知。)
请参考一本由 Microsoft Press 出版的书:“Windows NT 4.0 Security, Audit, and Control”<http://www1.fatbrain.com/asp/bookinfo/bookinfo.asp?theisbn=157231818X &from=mstechnet。这本书很不错。
您的朋友,
鼹鼠
在 Internet 上的 SQL Server:安全性如何?
亲爱的鼹鼠:
我的运行 IIS 4 的 Windows NT 4.0 Server由 ISP 托管。我想部署一些需要使用 SQL 7.0 的应用程序。如果我在托管给 ISP 的 Windows NT 机器上安装 SQL 7.0,这样数据库就在与 Internet 直接相连 的 web 服务器上,这种情况下是否有可能保证 SQL 数据库的安全性?如果能,有没有什么白皮书专门讲述应当修改哪些内容,而不是仅仅讨论 SQL 的安全理论?
谢谢,
Jay Griffin
亲爱的 Jay:
您可能知道或不知道,所有 Windows NT 安全功能已经从 SQL Server 7.0 版开始,完全集成到了 SQL Server 中。是的,有一篇关于 Microsoft SQL Server 7.0 安全性的好文章 <http://www.microsoft.com/technet/SQL/technote/secure.asp>。这篇白皮书内容全面且有针对性,同时具体到了行代码。它甚至清楚地提供了一些指导信息,帮助您在从 6.5 版进行升级时维持数据库的安全性。不管您的数据库放在哪里,您都需要所有这些材料。
第二个问题是 Internet 安全性。看来您已经找到 SQL Server:用于 Internet 的策略 <http://support.microsoft.com/support/SQL/Content/SQL65/SQLinet.asp>,这是一篇令人振奋的文章,虽然内容比较笼统。如果在 TechNet 站点的 SQL Server 部分浏览一下,就会发现有很多资源,包括一流的业内人士撰写的很实用的文章 Configuring Proxy Server for SQL Server Replication over the Internet<http://microsoft.com/technet/SQL/intrepl.asp>。该些文章全是讲安全性的。
如果您想从事电子商务,那么,SQL Server 是一个很好的选择。在客户解决方案的案例研究中,请参阅 Madge.web <http://microsoft.com/customers/details.asp?solid=2671>。该公司使用了您列举的很多组件来实施安全的在线帐单处理。
还要记住一件事。那些了解 SQL Server 的人热爱 SQL Server,他们组成的产品互助团体是鼹鼠迄今见到过的最活跃的互助团体之一。如果您有什么问题,请加入到某个讨论组或参加一个定期按计划举行的聊天,这样,就可以把您的问题直接交给一位真正的专家。请单击此处。<http://microsoft.com/technet/SQL/default.asp>,您就会找到很多机会。与这些高手相比,鼹鼠只是一个泛泛之辈。
最后,鼹鼠建议您同您在邮件中提到的 ISP 谈一下。毕竟,您是付他钱的。
祝好。
毛茸茸的那一个
我要用哪个服务器来验证我?
您好,鼹鼠:
最近,我在咖啡馆听说有人开发了一个实用程序,可以让 LAN 管理员直接告诉 WIN 95 客户端工作站,在指定的 Windows NT 服务器上实现验证。它允许按优先级 1、2 等来识别多达三台服务器。
您有这方面的消息吗?这些消息在网上吗?
Don Bews
系统分析员
您好,Don:
鼹鼠此时正在品尝第三大杯 Seattle 上好的 Sumatran 咖啡,即使这样仍改变不了一个现实:他所知道的指派登录服务器的唯一方法是,在 Windows NT Workstation 客户端上使用 %logonserver% 环境变量。关于 Windows 9x 客户端或在热闹的咖啡馆中的传闻,他没有听说过。
您可能会对想研究一下 KiXtart 实用程序,该程序可以免费从 - 还能从哪儿? - KiXtart Web 站点 <http://www.kixtart.to/script/>得到。您可以使用 KiXtart 来实践您的大脑受咖啡因刺激后产生的任何灵感。
您知道鼹鼠在想什么?他认为您在咖啡馆的朋友所谈论的是 System Management Server,该程序的确允许您做您谈到的事情。
实现的方法是,在 Smsls.ini 文件(位于站点服务器的 Sms\Site.srv\Maincfg.box 目录)中,用指定的登录服务器替换 [workgroup] 部分的域条目。
下面是一个示范 [workgroup] 部分,它指定在 WorkgroupA 中的所有用户使用登录服务器 ServerA 或 ServerB;在 WorkgroupB 中的用户使用登录服务器 ServerC:
Systems Management Server 不是一个可下载的小实用程序,它是 BackOffice 套件的一个实实在在的服务器应用程序。请查对。
祝好,
鼹鼠
回音壁:更改默认的邮件客户端
您好,鼹鼠:
刚刚在 TechNet 上阅读了您关于如何判断默认 MAPI 客户端的答复,希望您能再给我一些帮助。我的问题是,在 Outlook Express 5.0 中,当工具、选项、常规下的按钮设置为“该应用程序是默认的邮件处理程序”时,找不到明显的方法来取消该设置。
如何将 Outlook 97/98/2000 重置为默认的 MAPI 客户端?我能找到的唯一方法是重新安装该程序。有没有某个注册表设置保存默认的 MAPI 客户端细节?
向您问好,
Andrew Hicks
技术咨询人
Andrew:
别再折腾注册表或重新安装了。下面的步骤适用于 Outlook 97、98 和 Outlook 2000。要将默认邮件客户端“改用”为 Outlook,请先启动 Internet Explorer。然后,在 Internet Explorer 中:
Internet Explorer 5:
- 在“工具”菜单上,单击“Internet 选项”。
- 单击“程序”选项卡。
- 在“电子邮件”列表中,单击“Microsoft Outlook”。
- 单击“确定”。
Internet Explorer 4.x:
- 在“查看”菜单上,单击“Internet 选项”。
- 单击“程序”选项卡。
- 在“电子邮件”列表中,单击“Microsoft Outlook”。
- 单击“确定”。
您的朋友,
鼹鼠
“Web 匿名用户”帐户密码的位置
问:我们希望向“Web 匿名用户”帐户授予从其他系统上读取信息的访问权;可是,我们不知道该帐户的密码。怎样才能获得该密码呢?
答:IUSR_<计算机名> 帐户就是“Web 匿名用户”帐户,它是在 IIS 的安装过程中创建的。该密码存储在本地 SAM 中(对于 Windows 2000 域控制器而言存储在 Active Directory 中),Metabase 中也存储着该密码。由于该密码存储在 Metabase 中,您就可以使用一个 .vbs 脚本将 IUSR 和 IWAM 这两个帐户的密码提取出来,方法如下:
Dim IIsObject
Set IIsObject = GetObject (\"IIS://localhost/w3svc\")
WScript.Echo \"AnonymousUserName = \" & IIsObject.Get(\"AnonymousUserName\") & vbCrlf & _
\"AnonymousUserPass = \" & IIsObject.Get(\"AnonymousUserPass\") &vbCrlf &vbCrlf &_
\"WAMUserName = \" & IIsObject.Get(\"WAMUserName\") & vbCrlf & _
\"WAMUserPass = \" & IIsObject.Get(\"WAMUserPass\")
Set IIsObject = Nothing
注: 通过此脚本可以显示在主属性级别上针对 Web 服务设置的 IUSR 和 IWAM 帐户密码。如果您已将匿名验证配置为使用另外一个用户帐户来访问网站或目录,那么您必须相应地修改该脚本,以反映所做的更新。
如何在不同计算机之间移动 Metabase
问:有没有文档资料记录 IIS 4.0/5.0 中针对不同计算机的密钥?如果我需要将 Metabase 从一台计算机移到另一台计算机上,应该采用哪种方法?我读了 IISSync 实用工具的说明文档,但不能解决我的问题。我在找一种类似于 MergeINI 文件这样的工具。
答:IIS 4 和 IIS 5 均使用 %systemdir%/system32/inetsrv 中的 metabase.bin 来存储 IIS 配置信息。Metabase 的密钥是针对安装 IIS 的计算机设置的,所以您不能简单地在不同系统间移动 Metabase。正如 2001 年 11 月这一期的 IIS 有问必答专栏 (http://www.microsoft.com/technet/columns/insider/iisi1101.asp) 中指出的那样,您可以使用 Metaedit 2.2 (http://download.microsoft.com/download/iis50/Utility/5.0/NT45/EN-US/MtaEdt22.exe) 从 IIS 4 或 IIS 5 中导出 Metabase,然后再将这些设置导入另一个系统。导入后仍需确保导入系统中的设置正确无误。例如,如果您的 Web 站点主目录位于驱动器 D 上,而您使用 Metaedit 将 Web 站点导入一个新系统中的驱动器 E 上,就会导致 IIS 找不到站点内容。
另一个可用于迁移 Metabase 的实用工具是 IIS Export。这是一个非常实用的迁移工具,位于以下网址:http://www.adsonline.co.uk/IISExport。这个共享件实用工具可以复制文件和权限,并将 Metabase 存储在一个数据库中,以便将配置信息应用到多个系统中。
最后,还可以借助 IIS Migration Tool。该实用工具属于 Windows 2000 资源工具包的一部分,可以从 http://www.microsoft.com/serviceproviders/downloads/migration_toolsP65238.asp 下载。该工具可以通过端口 80 传送 Metabase、文件和权限,但最多传送 4GB 的数据。尽管不支持它作为资源工具包的一个实用工具,但该工具还是非常有用的。
可用于排除 SMTP 服务故障的资源
问:我想询问有关 IIS 5.0 的 SMTP 服务的信息。我使用默认设置无法发出邮件,请问如何解决这个问题?
答:IIS 5 中的 SMTP 服务是 IIS 4 SMTP 服务的增强版本。您可以在很多地方找到非常有用的信息。除了随服务器安装的联机帮助文件,您还可以查阅以下文章:
- How to Configure the IIS SMTP Service to Relay SMTP Mail(如何配置 IIS SMTP 服务以转发 SMTP 邮件,Microsoft 知识库文章 Q230235)
- Setting Up the SMTP Mail Service in Windows 2000 - Part 1(在 Windows 2000 中设置 SMTP 邮件服务 - 第一部分,http://www.asptoday.com/content/articles/20000306.asp)
但我个人更愿意查阅由微软出版社出版的 Running Microsoft Internet Information Server(运行 Microsoft Internet Information Server)一书中相关的一章。本书对所有 IIS 管理员都是必读的,尽管其中介绍的是 Internet Information Server 4,但大量篇幅都适用于 IIS 5,包括涉及 SMTP 的那一章。您可以在 Microsoft TechNet 网站上找到这一章,网址是 http://www.microsoft.com/technet/prodtechnol/iis/iis4/deploy/confeat/mail.asp。
最后,还可以参考 Microsoft 培训课程中有关如何配置 SMTP 服务的一个模块,课程名称为 2295a – Implementing and Supporting Microsoft Internet Information Services 5.0(实施和支持 Microsoft Internet Information Services 5.0)。
如何在系统帐户环境之外运行应用程序
问:我的 IIS 服务器可以运行一个自定义的 mpeg 播放应用程序。该应用程序可以将 mpeg 数据进行流式处理,具体是使用一块特殊的卡将数据解码并以流式输出到投影机上。当 mpeg 源位于本地磁盘上时,这个进程可以正常运行。但现在我需要从 Unix 服务器上提取 mpeg。当 IIS 加载 mpeg 播放应用程序时,总是以 SYSTEM 身份执行加载,但此身份无法访问 NFS(Unix 服务器)共享资源。我需要让 IIS 在启动 mpeg 播放应用程序时使用 SYSTEM 以外的一个用户身份。我已经试过更改 IIS 服务使用的用户帐户,但这样一来问题更多了。如何才能解决这个问题,我到底错在哪里呢?
答:任何进程都总是在帐户的“上下文”中运行的。正如您指出的那样,INETINFO 是由 SYSTEM 帐户所启动的进程,所以 Inetinfo 是在 SYSTEM 帐户上下文中运行的。SYSTEM 帐户不属于典型的用户帐户。SYSTEM 帐户的一个特点之一就是不具备网络访问权,因此,以 SYSTEM 身份运行的应用程序无法访问网络资源。某些情况下,可以对服务进行配置,让它作为由一个指定的用户帐户启动的进程运行,但 IIS 又不支持此项配置功能。
最理想的做法就是让 IIS 服务器中的应用程序切换“上下文”,使用正调用该应用程序的用户的安全身份验证凭据(有关详细信息,请参考以下两本书:由微软出版社出版的 Designing Secure Web-Based Applications for Microsoft Windows 2000(为 Microsoft Windows 2000 设计安全的基于 Web 的应用程序)及 Addison Wesley 出版的 Programming Windows Security(Windows 安全性编程)。
不过,您还可以通过将应用程序配置为在进程外 运行来解决问题。您可以在 IIS 管理单元的 Web 站点或目录属性中配置该设置。在 Internet Information Server 4 中,需要选中“在单独的内存空间中运行(独立进程)”复选框;在 IIS 5 中,需要将应用程序保护级别设置为“中”或“高”。一经配置,应用程序将在 IWAM_<服务器名> 帐户而不是 SYSTEM 帐户的上下文中运行。IWAM 是一个普通的用户帐户,您可以为其分配访问远程网络资源的权限,这样在此环境中运行的应用程序就可以访问这些资源了。
作为多个站点的主机时推荐使用的文件夹结构
问:在选择主目录和主目录的物理文件夹结构时需要注意哪些事项,特别是在作为多个站点的主机时需要注意什么?如果有 A 公司、B 公司或更多公司,它们是应位于 Inetpub 文件夹下还是 wwwroot 之下?换言之,wwwroot 是所有 Web 站点的根目录还是只是安装的默认 Web 站点的根目录?这对访问 Scripts 等文件夹有何影响?
答:以下几点说明可以澄清上述疑问。安装 IIS 后,系统的目录结构将如下所示:
Drive Root
Inetpub
Adminscripts
Ftproot
Iissamples
Scripts
Wwwroot
因为看到 wwwroot 名称中含有“root”,人们往往就会推断它是存储所有 Web 内容的位置,但是,事实并非如此。该文件夹只是“默认 Web 站点”的主文件夹,您应将该名称视为与“DefaultWebRoot”等同。
故此,您最好将新的 Web 站点放入默认 wwwroot 文件夹之外的文件夹中。如果不这样做,所有 Web 站点内容都只能从默认 Web 站点中读取。另外,为安全起见,不应将网站内容放在系统驱动器中。
还应特别注意 Scripts 文件夹。默认情况下,Scripts 文件夹的访问权限设为每个用户 - 完全控制,并允许执行脚本,所以必须使该文件夹的安全控制更严格一些。我建议将 Scripts 文件夹重新定位到新的 webroot 所在的驱动器,并对其重命名。这样如果有人想探查服务器中有没有名为“Scripts”的文件夹,并在找到此文件夹后试图上传负载,那么这种攻击行为将被挫败。
用 IIS 设置并路由子域
问:在 W2K 服务器上,怎样用 IIS 5.0 创建子域?如果我让 BerAult.Com 在根 web 站点,并希望让 Technical.Bertault.com 带我到一个新文件夹或者子站点,应如何设置它?我所能找到的全部信息都是关于如何将 Berault.com/technical 配置成 URL 的。
答:您的 web 站点体系结构及其与 DNS 的集成对于您的 IIS 安装来说当然是一个很关键的部分。正如您说的那样,为 Berault.com/technical 配置一个站点很容易,因为它实际上就是位于 Beralut.com 站点内的一个文件夹或虚拟目录。
而将 technical.bertault.com 配置为一个“子站点”则是另外一回事,这一点您已知道了。按照设计,URL 的构成是这样的:http://domainname.com 应是 http://hostname.domainname.com 的父级域。这是 DNS 的设计使然,DNS 要求 URL 中使用这种名称空间结构。不过,就一个 web 服务器而言,它们是两个完全不同的概念。IIS 并不认为它们之间有什么关系。
因此,您应将 technical.berault.com 作为一个完全不同的 web 站点来看待。在 DNS 中,您可以为 technical.berault.com 添加一条 A 记录,此记录给 technical.berault.com 分配一个与 berault.com 相同的 IP 地址。然后,您可以创建一个 ASP 页,用它检查传入的 URL 并相应地路由请求。如果您想让“子域”路由到您主 web 站点内的一个文件夹,这一点将非常有用。或者,您也可以创建一个全新的 web 站点,用一个新的 IP 地址(它必须在 DNS 中配置)或用 IIS 内的主机标题来标识它。
您可以为您的“子域”创建一个新的 web 站点,使其主文件夹作为其父级域内的一个位置。虽然这样做是可行的,但我建议您不要这样做,因为这样您会发现同一内容将有两个管理界面,而且没有办法使它们保持同步。这样会导致对配置和安全问题进行故障诊断时出现困难。
屏蔽 HTTP 标头(内容-位置)中的 IP 地址
问:在对 IIS 5 服务器进行端口扫描时,它返回以下信息:
HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0
Content-Location: http://192.168.0.44/Default.htm
Date: Tue, 19 Feb 2002 20:19:20 GMT
Content-Type: text/html
Accept-Ranges: bytes
Last-Modified: Tue, 19 Feb 2002 20:04:10 GMT
Content-Length: 16
问题是,Content-Location(内容-位置)标头暴露了 web 服务器的内部 IP 地址。这就为黑客大开了方便之门。是否有办法让 IIS 在扫描过程中不返回服务器的 IP 地址?
答:有,您可以配置 IIS 4 和 IIS 5,使 Content-Location 字段返回 URL 而非 IP 地址,如下所示:
HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0
Content-Location: http://homer.test.bh.tm/Default.htm
Date: Tue, 19 Feb 2002 20:27:20 GMT
Content-Type: text/html
Accept-Ranges: bytes
Last-Modified: Tue, 19 Feb 2002 20:04:10 GMT
Content-Length: 16
要做到这一点,您必须将 UseHostName 这一值添加到 Metabase 中的 W3SVC 键上。最简单的办法是使用默认情况下安装在 Inetpub\Adminscripts 中的 ADSUTIL 程序,如下所示:
adsutil set w3svc/UseHostName True
然后,您必须重新启动 web 服务。有关更多信息,请参阅 Microsoft 知识库文章 Q218180。
更改 CGI 脚本超时时间
问:我们每天都要运行一个 CGI 脚本。开始时它运行一会儿,接着我们就会收到一条消息说“超过了 CGI 的时间限制”。CGI 的时间限制是多长,是否有办法改变它?
答:IIS 确实有一个与 CGI 进程关联的超时限制,默认设置为 300 秒(5 分钟)。此设置可以在用户界面上更改。此设置只在 WWW 服务的 Master 属性中可以看到,所以不易找到它。打开“IIS 管理单元”,右键单击您的服务器并选择“属性”。在选定 WWW Service Master Properties(WWW 服务主属性)后,单击 Edit(编辑)。单击 Home Directory(主目录)选项卡,然后依次单击 Configuration(配置)选项卡、Process Options(进程选项)选项卡,如图 1 所示。在这里可以看到 CGI 脚本超时设置。
如果您的浏览器不支持内嵌框,请单击此处在单独的页中查看。
图 1 Application Configuration(应用程序配置)中的 Process(进程选项)选项卡
从 IIS Lockdown 工具中提取 URLScan
问:我们希望在服务器上安装 URLscan,但又不想运行 IISLockdown 工具。以前,Microsoft 是分别提供这些工具的,而现在它们都在同一个安装中。怎样才能既安装 URLScan 又不运行 IISLockdown 呢?
答:您刚才说过,Microsoft 以前是分开发行 IIS Lockdown 工具和 URLScan 的。IIS Lockdown 工具的 2.1 版在更新之后包含了 URLScan 2.0。在绝大多数情况下,IIS Lockdown 向导应在 IIS 服务器上运行。这样将执行若干个重要步骤以加强您服务器的安全,并将配置和安装 URLScan ISAPI 筛选器。
可以从 IIS Lockdown 安装包中提取 URLScan 组件,并在不运行 IIS Lockdown 的情况下安装它。这将为您提供 URLScan 的 2.0 版本,而不是它的 1.0 版;在本文脱稿时,1.0 版仍可以作为一个单独的可下载软件从 Microsoft 的下载页和通过许多 Microsoft 知识库文章来下载。
如想从 IISLockdown 2.1 中提取 URLScan,请首先下载 IISLockdown 2.1。然后在该工具的位置打开一个命令提示窗口并键入以下命令:
iislockd.exe /q /c /t:c:\lockdown_files
此命令将从安装包中提取这些文件。然后,您就可以将 URLScan.dll 安装为一个 WWW Master 属性级别的 ISAPI 筛选器。确保存放 URLScan.ini 文件的位置与存放 URLScan.dll 文件的位置相同。
您很可能需要为您的服务器手动配置 URLScan.ini 文件。我们建议,只有经验丰富的管理员才可以编辑 URLscan.ini 文件。请阅读从 IIS Lockdown 实用工具中提取的 URLScan.doc 文件中的使用说明。运行 IISLockdown 工具向导来安装 URLScan 的好处之一是,它为您配置了 URLScan.ini 文件。
使用 URL 中的参数重定向请求
问:是否有办法使用 URL 中的参数作为重定向的一部分,而不使用 ASP?换言之,当人们访问我们的站点 www.oursite.com?A=1 时,我们想将此请求转发到 www.theirsite.com?A=1 站点。
答:在 web 站点、目录、虚拟目录或文件的属性中,您可以将文件的位置指定为“本地”、在“另一系统上”(带一个 UNC 路径名),或者将请求重定向。如果您选择重定向请求,您可能要用到鲜为人知但功能十分强大的重定向变量。就您的情况而言,您需要在 Redirect To(重定向至)文本框中输入 http://www.theirsite.com$P。$Q 替换变量将全部问号及其后的参数附加到重定向请求后。
还有许多其他的重定向变量使您能够不用编写代码就可以执行替换和其他操作。您可以在 IIS 联机帮助文件中的 Redirect Reference(重定向参考)部分找到更多有关重定向参数方面的信息。
能否在 Windows XP Home Edition 上安装 IIS 或 PWS?
问:我曾在某处读到过,不能在运行 Windows XP Home Edition(家庭版)的计算机上运行/开发 ASP.Net 应用程序。是否有办法在运行 XP 家庭版的计算机上安装 IIS 或 PWS?我有 VS.Net 专业版,但尚未找到用 ASP.Net 进行开发的方法。
答: Windows XP Home Edition(家庭版)不支持 IIS 的任何版本。据我所知,没有任何可靠的方法能让它运行 IIS。Windows XP Home Edition 不适合用作基于 Web 的应用程序的开发平台。升级到 Windows XP Professional 后将允许您在系统上安装 IIS 5.1,这样您就可以用 ASP.Net 进行开发了。Windows XP Professional 上的 IIS 5.1 是一个全功能的、强大的 Web 服务器,但仅限于使用 10 个同时连接,因为 Windows XP Professional 是一个工作站操作系统而非服务器平台。在将 Windows XP Professional 用作客户端操作系统而非服务器操作系统时,还有其他几点限制。大体上说,这两者的区别,就是将 IIS 5.0 安装在 Windows 2000 Professional 上时与安装在 Windows 2000 Server/Advanced Server 上时您会看到的那些区别。但尽管如此,在使用 .NET 框架开发基于 web 的应用程序时,Windows XP Professional 仍是一种优秀的开发环境。
ISAPI 筛选器能否在独立的进程空间中运行?
问: IIS 5.0 允许 ISAPI 扩展在独立的进程空间运行。ISAPI 筛选器是否也能在独立的进程空间运行呢?在我们安装一个包含 ISAPI 筛选器的软件后,我们一个客户的 IIS 服务器每过两三天就重启一次。最后一次故障转储显示 inetinfo.exe 因为“除以 0 的错误”而崩溃,但它在 ISAPI 筛选器中没有崩溃。如果能在独立的进程空间运行 ISAPI 就好了,这样它就不会与 inetinfo.exe 冲突。
答:再重述一次,针对在 web 服务器上运行这一目的而编写的程序有特定的要求。例如,您不能通过 URL 来调用 Notepad.exe 的一个实例并期望在客户端系统上看到记事本窗口。为让一个可执行文件(不是 CGI)与来自 IIS 的请求交互,需要用 ISAPI 来编写它。ISAPI 的意思是“Internet 服务器应用程序编程接口”。ISAPI 可执行文件分两类--扩展和筛选器。
ISAPI 扩展可从像 http://localhost/myisapi.dll 这样的 URL 直接调用。假定您将 IIS 配置为允许执行目录上的“脚本和可执行文件”而且用户具有 NTFS“执行”权限,则该 dll 将可以运行。IIS 允许您指定让应用程序在进程中运行(作为 inetinfo 的一部分来运行)还是在进程外运行(在 IIS 4 上作为 MTX 的一部分运行,或在 IIS 5.x 上作为 dllhost 的一部分运行)。当一个应用程序在进程外运行时,inetinfo 就会与您所说的那类问题隔离开,不受其影响。如果应用程序失败,则 web 服务器也将失败。
而 ISAPI 筛选器则全然不同。ISAPI 筛选器能够修改传入和传出 IIS 的数据流。所以,它们有强大的能力,可用来实现自定义的日志记录、身份验证,也可用来修改数据流。IIS 5 的 ISAPI 筛选器中实现的功能包括数据压缩、简要身份验证和 URLScan。
因为筛选器在 IIS 中扮演着这样一种重要角色,所以在设计上,它们总作为 inetinfo 的一部分在进程中运行。因此,如您所知,正确构造 ISAPI 筛选器对于服务器的正常运行来说是十分重要的。我的建议是,您可以让 Microsoft 产品支持服务与您一道找出问题所在,因为这类异常的诊查工作可能会相当难。
就这一问题,有几种新技术可能会使您的工作略轻松一点。一是期望使用 IIS 6。由于它采用新的体系结构,所有 ISAPI 筛选器都在进程外运行。这样可让您实现将 web 服务器与反复无常的 ISAPI 筛选器隔离起来的目标,但并没有真正解决问题。为最终解决问题,请评估一下 .NET 语言在实现 ISAPI 筛选器方面的能力。我估计您会发现,用 .NET 实现同样的功能,将比采用 C++ 语言的标准 ISAPI 筛选器设计要简单得多。
使用 WebDAV 从 ASP 编辑文档的代码示例
问:在哪里能找到使用 WebDAV 从 asp 编辑文档的代码示例?
答:在使用 IIS 上的脚本中的 WebDAV 时,您最有可能使用的是 ASP.Net 的 WebClient 类。如果您在使用 Windows XP 或 Windows .NET 服务器,则操作系统中已包含 WebDAV 功能。这使您可以像使用 UNC 路径那样,用 HTTP 来引用一个 web 服务器上的文件。例如,您可以用 NET USE * http://servername/directory 命令来映射一个驱动器,然后用该驱动器符号访问此位置。或者,您也可以创建一个用作 WebDAV 客户端的 COM 对象。您可以用此对象向 IIS 5.x 或 IIS 6.0 发出 WebDAV 操作命令。
另外,如果您在 MSDN 上搜索 WebDAV,您会找到很多关于如何用 XML 为 Exchange 和其他 Microsoft 服务器创建 WebDAV 查询的示例。在 Microsoft Exchange 2000 Server SDK 中有一个 WebDAV 示例应用程序。
尝试用 ASP 访问数据库时“访问被拒绝”
问:我们在使用 ASP 访问一个数据库,但当我们向数据库中写入新内容时,总是出现“访问被拒绝”这一结果。在运行 NT 4.0 工作站和运行与之相当的 web 服务器时 ASP 页没有问题,但升级到装有 IIS 5.1 的 Windows XP Professional 后,它就无法使用了。问题好像出在某些目录的访问权限上,但我们怎样才能确定问题究竟在何处呢?
答:有一种极棒的免费实用工具,叫做 Filemon,可以到 http://www.sysinternals.com 上找到它。在我讲授 IIS 时,我让学生们将此工具保存在软盘上,不管到哪里都随身带着它。我并不完全是在开玩笑。您可以用 Filemon 快速诊断出多数权限问题,因为它可以实时显示服务器上被访问的所有文件、调用进程的名称以及访问结果。这样,对于任何“访问被拒绝”消息,不管问题在嵌套的 include 中埋多深,也不管临时索引有多模糊--都可轻松找出。
如果某一应用程序在一个操作系统上可以使用,而在操作系统升级后它无法工作了,这会让人很沮丧。不过,这类问题往往都很有启发性。IIS 4 和 IIS 5 之间存在的一种差异与 COM 和 COM+ 之间的差异有关。在 IIS 5 中,当一个 COM+ 对象代表用户访问文件时,其默认行为是使用用户的安全上下文进行访问。在 IIS 4 中则不是这样。所以,当您将包含 COM 的应用程序从 IIS 4 迁移到 IIS 5 时,您可能需要提供针对这些文件的用户权限,尽管在 IIS 4 中不要求提供这些权限。有时这可能不大方便,比如您所遇到的情况;但是,在应用程序的安全设计方面,这确实是一项改进。尽管您可能没有使用自定义 COM 对象访问数据库,但 COM 在本机 IIS 组件中的应用很广泛。
体现这一要求的场合,是在需要授予对 Access 使用的临时文件夹的权限以及需要向创建数据库请求的用户授予权限时。有关更多信息,请参阅 Microsoft 知识库文章 Q210457 和 Q271071。
如何在不恢复原设置的情况下运行 IIS 锁定工具
问:我们在我们的服务器上运行了“IIS 锁定”工具,它在对系统执行一些基本的安全设置修改时看起来很成功。但在运行此工具后,我们又给服务器添加了一些功能和内容,然后想再次运行此工具。然而,当我们启动 IIS 锁定向导时,它显示:
如果您的浏览器不支持内嵌框,请单击此处在单独的页中查看。
在这种情况下,我们不想还原到以前的设置,因为这样做会让我们丢掉存储在元数据库中的、对 IIS 配置所做的更改。我们怎样才能再次运行 IIS 锁定工具而又不用先执行还原呢?
答:在我看来,IIS 锁定工具是 Microsoft 真正的压轴戏。如您所说,此工具让您能够轻松而又显著地增加您服务器的安全性。运行此工具后,它将其操作历史存储在位于以下位置的一个文件中:<系统驱动器>\<系统目录>\system32\inetsrv。您将可以在以下文件中找到此信息:
- Oblt-rep.log
- Oblt-once.md0
- Oblt-mb.md0
如果您运行了上面显示的“撤销”任务,则还会有一个 Oblt-undone.log 文件。
如果您删除这些文件,则将启动向导,好像没有运行过 IIS 锁定工具一样。据我所知,重复执行此过程没有什么风险。但在这样做之前,一定要为 metabase.bin 制作一个副本。
因为这一方法能够让您像没有运行过锁定工具那样再次运行它,但又不撤销该锁定工具第一次运行时实现的设置或对它们“解除锁定”,所以对于您所说的情形,此方法应当行得通。
如何发送用以实现重定向的查询字符串信息
问:在我们最初的Web服务器配置方案中,多个文件夹中均包含称作browse.asp的页面。为简化设计方案,我们目前只在单一文件夹中保留了一个browse.asp文件。然而,服务器目前仍然接受来自用户且要求在原先位置上寻找borwse.asp文件的服务请求。我希望将这些请求重定向到存放browse.asp文件的新位置上。通过使用IIS所内建的重定向功能,这项工作看起来似乎非常简单,然而,在实际处理过程中,查询字符串信息好像总是被丢失。举例来说,我们将针对http://servername/oldfolder/browse.asp的请求重定向至http://servername/newfolder/browse.asp。当用户向服务器发送形式为http://servername/oldfolder/browse.asp?cat=135的URL时,重定向操作虽然能够执行,但却无法传递查询字符串。请问是否存在某种方式能够允许IIS发送从原始请求URL中提取的查询字符串信息?
答:在指定IIS如何对URL进行重定向方面,IIS为您提供了相当程度的灵活性。IIS中所包含的一项鲜为人知但却非常实用的特性能够允许您在重定向过程中使用变量,从而实现了能够精确指定向目标URL传递哪些内容的高级控制能力。举例来说,在您所描述的情况下,右键单击原有browse.asp文件,在“文件”选项卡上选择“重定向至URL”并输入http://servername/newfolder/browse.asp$Q。这种设置方式将使用内建服务器重定向变量$Q将原有URL中所包含的查询字符串部分内容发送到新的位置上。以下表格列出了在线IIS 5帮助文件以及编号为Q313074的Microsoft知识库文章中所包含的有关查询字符串的详细信息。
缓存溢出攻击事件中术语“在进程以内”与“在进程以外”的区别
问:能否澄清一下不同运行方式之间的区别所在?
在进程以内运行的应用程序与在进程以外运行的应用程序相比,如果遭到缓存溢出攻击的话,分别将会出现何种情况?
答:我始终认为“在进程以内”这一术语存在一些混淆。所有应用程序均在某个进程中运行,因此,实际上并不存在所谓“在进程以外”运行的应用程序。然而,我们经常在有关IIS应用程序的参考文献中见到这个术语,那么,它究竟代表何种含义呢?在IIS 4与IIS 5.x中,包含一个名为inetinfo的进程。当Web应用程序“在进程以内”运行时,该应用程序将在inetinfo进程内部运行。对于IIS 4应用程序来说,缺省情况下,应用程序将在inetinfo进程内运行。
与此相对应,“在进程以外”运行的应用程序是指那些并非在inetinfo进程中运行的应用程序。对于IIS 4,“在进程以外”运行的应用程序宿主于一个名为MTX的进程;对于IIS 5.x,此种应用程序则宿主于一个名为dllhost的进程。
所有进程均在某个用户帐号的安全环境中运行。Inetinfo进程在System帐号下运行。MTX(IIS 4)和dllhost(IIS 5.x)则在IWAM_ 现在,我们已经对回答您的问题所涉及的相关概念进行了解释。在一次成功的缓存溢出攻击事件中,攻击者可能会在托管失败应用程序的进程安全环境中运行相关代码。因此,如果您的应用程序在进程以内(在inetinfo进程中)运行,攻击者将在具备全面服务器访问权限的System安全环境中运行。如果您的应用程序在进程以外(在MTX或dllhost进程中)运行,攻击者将在仅仅具备有限服务器访问权限的IWAM帐号安全环境中运行。
需要特别注意的是,在缺省配置方案中,IIS 5按照中等应用程序保护设置(在进程以外模式下采用池分配方式)“在进程以外”运行所有应用程序。由于前面所提到的原因,这种运行方式与在进程以内运行应用程序相比要安全可靠得多。与缺省设置相比,由于通过System帐号访问服务器在IIS 5上所导致高发性缓存溢出攻击使服务器极易遭受攻击。在针对IWAM与IUSER帐号应用严格限制条件的同时,通过运行IIS Lockdown工具还可实现额外的安全性。
顺便提及一下,(作为Windows .NET Server 2003的组成部分之一)IIS 6采用这样一种配置方式,即在缺省的工作进程独立模式下,缓存溢出攻击根本无法通过具备高级权限的用户帐号对服务器进行访问。
如何在重建站点后继续使用原先的日志文件
问:我有一个与IIS元数据库文件相关的问题。当您在IIS 5服务器上创建一个新的Web站点时,日志文件夹将随该Web站点一同创建。IIS通过增量方式对这个文件夹进行命名。这种方式有效避免了日志文件夹命名不当或遭到意外破坏的情况。然而,当您删除并重新安装一个‘站点’时,您将丢失所有先前使用的元数据。同时,日志文件夹位置也将随之丢失。此文件夹现在将是按照增量方式最后创建的日志文件夹。[如果前一个取值为W3SVC8,那么,当前日志文件夹应为W3SVC9]。请问是否能够通过某种方式对元数据库进行编辑,以便使IIS将站点属性指向原有日志文件夹名称?
答:您描述了一个非常有趣的问题,但是您所建立的假设需要进行澄清。是的,IIS确实创建一个日志文件夹,通常情况下,这个文件夹是c:\windows\winnt\logfiles目录。同时,正如您敏锐观察到的那样,如果删除并重建一个Web站点,日志文件夹名称将发生变化。然而,IIS并非为避免与原先日志文件产生冲突而采用增量方式对日志文件夹进行命名。与此相反,用以保存日志文件的文件夹名称是基于元数据库中所存储的Web站点“站点编号”--有时也称作实例编号--生成的。您所创建的每个站点均拥有一个独立编号,当您每次创建新的Web站点时,这个编号将依次递增。您可以通过MetaEdit工具清楚的观察到这一点,该工具以文件夹1、2、3的形式(此种情况下为元数据库键值)来显示各个Web站点,通常情况下,1代表缺省Web站点,2代表管理Web站点,以此类推。(具体情况请查看图1)。
由此可见,如果您拥有1、2、3三个站点,当您删除站点2并希望通过从IIS控制台创建一个新的Web站点来“重建”原有站点时,IIS将为其分配下一个取值最大的站点编号,当前情况下为5。此后,日志文件将被放置在名为w3svc5(而非w3svc3)的文件夹中。
一旦创建完毕后,由于其它键值(如站点根路径)需要对其进行引用,因此,建议您最好不要对站点ID进行修改。在这种情况下,您只需将日志文件从原先使用的日志文件夹中复制到新建日志文件夹中。
然而,如果您通过脚本而非用户界面来创建Web站点的话,您可以指定希望针对“还原”Web站点所使用的站点ID。通过此种方式,您可以实现预先期望的目标。您可以从\Inetpub\Adminscripts文件夹中找到一个缺省安装的名为mkw3site.vbs的脚本。在记事本或其它文本编辑器中打开这个脚本以查看其中所使用的语法,您会发现其中的参数之一为Sitenumber。这个参数允许您使用自己指定的站点编号而非通过IIS控制台以增量方式确定的下一个站点编号来创建Web站点。
图1. MetaEdit用户界面
如何在IIS上运行除ASP以外的其它类型脚本
问:我们希望在自己的IIS服务器上运行PHP和Perl程序,但我们始终无法找到允许这些脚本程序正常工作的正确方式。我们手中拥有大量非常实用的脚本,但如何才能允许IIS运行除ASP以外的其它类型脚本呢?
答:Microsoft公司在Windows 2000资源工具包中提供一种版本的Perl解释程序,但如需获取最新版本且功能最为完善的解释程序,您应从站点http://www.activestate.com/上下载该产品的最新发布版本。从那里,您将能够获得一个称作ActivePerl的软件包,该软件包中包含能够针对.pl和.plx文件创建应用程序映射关系的安装例程,从而允许您对上述类型的脚本文件进行管理。换言之,如果您希望针对所有脚本使用.pl文件类型,那么,您可以删除针对.plx文件的应用程序映射关系。在条件允许的情况下,您应尽可能使用perl.dll解释程序来替代perl.exe解释程序以获得更加优异的性能与可伸缩性。除此之外,您还可以从站点http://www.iisanswers.com/Top10FAQ/t10-installperl.htm上以及编号为Q245225的知识库文章中获取有关这一主题的操作指导文章,
您可以从站点http://www.php.net/上下载PHP解释程序以及大量相关文档与在线资源。
针对java应用程序的JRUN可以从站点http://www.macromedia.com/software/jrun上获取。
ASP.net可以通过站点http://gotdotnet.com/或Windows更新服务获得。
如何检测哪台计算机上安装了IIS
问:我想知道是否存在一种工具能够检测出某台PC机上是否安装了IIS。我们目前拥有3000多台PC,我需要通过一种方式来确定哪些计算机上安装了IIS。
答:Microsoft提供了两种允许您对子网进行扫描的工具。HFNetChk和Microsoft Security Baseline Analyzer(MSBA)将在您的网络中对所有装有Microsoft网络客户端和文件与打印共享服务,以及正在运行服务器、工作站和远程注册表服务的系统进行扫描,以标识出“特定”类型的系统。如果这些服务无法正常工作,您还可以借助诸如fport(这种工具可以从站点http://www.foundstone.com/上进行下载,它将告诉您网络中各个系统上有哪些端口处于打开状态)之类的工具进行端口扫描。当然,由于IIS能够对用户所选择的任意端口进行监听,因此,您无法通过这种端口扫描操作来判断与每个端口相关联的服务;尽管如此,根据经验判定,如果80端口处于可用状态,那么,它很可能正在被IIS使用。来自Foundstone公司的另一种免费实用工具Superscan能够以“标语”形式显示出由您所连接到的服务返回的信息。这项细微改进能够快速完成网络扫描并报告所发现的内容。
除以上所介绍的方法外,当用户通过自己的帐号进行登录时,您还可以从用户的登录脚本中测试出IIS是否存在。凭借Internet上针对这一目的所提供的各种选择方案与可用工具,您将实现一个良好的开端。
在添加Internet服务后是否需要重新应用热修补程序和服务软件包?
问:我们在Windows 2000服务器上安装了IIS,但没有安装任何其它类型的Internet服务。现在,我们需要为一个要求从服务器上发送电子邮件的Web应用程序添加SMTP服务。如果我们添加SMTP服务的话,是否需要重新应用最新的服务软件包和热修补程序?
答:在Windows NT 4.0中,当您向操作系统中添加诸如SMTP之类的服务时,您需要重新安装服务软件包和热修补程序。在Windows 2000中,这种情况得到的明显改善,当您安装软件、服务或更新程序时,通常情况下无需重新应用服务软件包。举例来说,您可以安装不含IIS的Windows 2000操作系统,并应用服务软件包x(其中x为最新服务软件包编号),此后,当您安装IIS时,其二进制(程序)版本编号将自动与服务软件包(SP)x保持相同的级别。这项特性在添加诸如SMTP之类的服务时为您减少了大量工作。然而,热修补程序和滚动升级程序又产生了另一个问题。尽管您的SMTP服务能够与SP x处在同一级别上,但您还需要重新应用与该服务相关的热修补程序和滚动升级程序。举例来说,当您卸载或重新安装IIS时,在最近应用的服务软件包发布后出现的所有IIS热修补程序与滚动升级程序都必须重新加以应用。
确保您已经应用所有必要热修补程序和服务软件包的最佳方式是在系统中使用HFNetChk或Microsoft Security Baseline Analyzer(MSBA)。这是确定需要在服务器上应用哪些热修补程序及更新程序的最可靠方式。由此可见,正确的操作过程是首先安装SMTP,之后,运行上述工具之一以确定需要应用哪些热修补程序。
重新命名IUSR帐号
问:重新命名IUSR帐号将导致何种后果?
答:IUSR帐号通常称作“Web匿名用户”帐号或“Internet来宾”帐号。IUSR帐号是一种常用的简写形式,该帐号的实际格式为IUSR_ 由于此帐号的名称是众所周知的,因此,为加大网络黑客在服务器上猜测用户名称与口令的难度,建议您在那些对安全性要求较为严格的环境中对IUSR帐号名称进行修改。对于需要具备高度安全性的服务器而言,这是一项非常良好的建议,然而,有几种注意事项您必须时刻牢记。
当修改匿名用户帐号名称时,您必须同时在Internet Information Services管理器和针对本地计算机的用户与组中对其进行修改(假设针对匿名用户使用本地帐号)。如果您在用户与组中删除IUSR帐号或对其名称进行修改,但未在Internet服务管理器中分配新的匿名用户帐号,那么,IUSR帐号将会在下次重新启动系统时自动重建。我经常简单的禁用当前IUSR帐号并创建一个新的帐号,之后在Internet服务管理器中针对匿名访问分配新建帐号。如果您正在使用IIS Lockdown工具的话,请将新建用户帐号设置为Web匿名用户本地组中的成员。
当您针对匿名用户创建新的用户名称与口令时,请一定确保使用一个难以破解的口令。Windows 2000操作系统中的匿名用户帐号是一个随机生成的由14个字母与数字所组成的字符串。通常情况下,按照人的一般习惯,事后创建的口令在保密效率上要远远低于匿名用户最初所使用的口令,因此,您一定要确保创建一个不易破解的口令。
只要心中牢记这些注意事项,在修改帐号的过程中就不会节外生枝,最后,请一定不要忘记在Internet Information Services管理器中指定新的匿名用户帐号。
查看以往的专栏文章:2001年12月:“如何确保IUSR帐号安全性。”
利用FrontPage Server Extensions管理您的NTFS权限
问:我们在自己的IIS 4和IIS 5服务器上装载了FrontPage Server Extensions 2000。我们发现,一旦载入FrontPage Server Extensions 2000,服务器上的NTFS权限便会遭到修改。新的权限中将包含对网络与交互组的使用。您能否解释一下这些组的作用以及FrontPage Server Extensions如何管理NTFS权限?
答:当您在Web服务器上安装FrontPage Server Extensions(FPSE)时,需要确定允许FPSE自动管理相关权限,还是希望手工管理相关权限。缺省情况下,FPSE将自动对其所处Web站点的权限进行管理。如果需要的话,您可以禁用这种自动管理方式,为此,您只需在Internet Information Services管理器中的服务器图标上右键单击鼠标,选择“Server Extensions”选项卡,并选定“手工管理权限”复选框。请注意,这是一个服务器级选项,它无法针对各个站点采取不同的设置。在此,我强烈建议您从允许FPSE自动管理权限或手工管理权限这两种方式中选择其一,而不要尝试同时使用这两种方式。
位于网址http://officeupdate.microsoft.com/frontpage/wpp/serk/上的FPSE 2000资源工具包提供了关于由FPSE所分配并维护的相关权限的详细信息。这些权限中包含您在问题中所提到的针对网络与交互组的使用情况。
网络组是一种自动进行维护的本地组,它由所有包含某种网络登录类型的用户所组成。网络组中的成员通常通过网络进行登录。交互组同样是一种自动进行维护的本地组,它由所有包含某种本地登录类型的用户所组成。本地组包含在计算机控制台上进行登录的用户以及通过基本身份验证功能实现身份验证的用户。
从多种身份验证方法中进行选择
问:IIS 5允许您针对Web站点选择多种不同的身份验证方法。当您同时选择匿名身份验证、基本身份验证和集成化Windows身份验证方法时,请问IIS将如何选择针对特定用户的身份验证机制?
答:针对这一问题的背景情况比较复杂,但其可以通过几条规则来加以总结。这些规则同时适用于IIS 4和IIS 5。有关身份验证方法的第一条不变规则是“如果可能的话,您将首先以匿名用户的身份通过验证。”从资源角度考虑,这种方式只要求在服务器上启用匿名身份验证方式--即确保匿名用户拥有访问请求资源的权限。针对这条规则的唯一例外情况是,用户已经以匿名用户以外的其它用户身份通过验证,且系统支持除匿名验证方式以外的其它身份验证方式。
假设您已经选择了多种身份验证方法,且用户无法凭借匿名用户身份通过验证,那么,如何确定所需采用的身份验证方法呢?答案是IIS将向客户端提供一份身份验证方法列表,由客户端自行选择何种方法最为安全可靠。当您同时选择基本身份验证和集成化Windows身份验证(或者IIS 4中的Windows NT 质询/响应身份验证方法)时,由于无法执行集成化Windows身份验证,Netscape将选择基本身份验证方法。相反,对于Internet Explorer来说,如果提供同样的选项,它将选择集成化Windows身份验证方法。在IIS 5服务器上,IIS与IE将进一步确定是否支持Kerberos,如果支持的话,最终将选择使用Kerberos身份验证方法。对于包括IIS 4在内的其它情况,将使用Windows NT 质询/响应身份验证方法。
重新命名IIS Server将会导致何种后果?
问:作为对11月份所提问题的延续:“请问对IUSR帐号进行重命名将会产生何种后果?”,我希望了解重命名服务器时针对IIS服务器所产生的后果。
答:服务器名称是在Windows 2000安装过程中分配的,此名称可以在安装完成后进行修改。从技术上讲,服务器名称、计算机名称和主机名称这三种术语均可用于描述计算机的Betbios名称。您可以在命令行窗口中使用“hostname”命令来确定当前服务器名称。
在Microsoft网络中,此名称用于通过WINS、DNS(在Windows 2000中)或使用Netbios名称表查找方式将服务器名称解析为IP地址。IIS并不使用这种服务器名称,因此,您可以任意对其进行修改。然而,这并不意味着其它应用程序或应用程序中所包含的COM对象均独立于服务器名称。举例来说,如果运行IIS 4的服务器上安装了Site Server 3,那么,系统便不支持您修改服务器名称。当您在运行IIS 4的服务器上修改服务器名称时,需要完成一些必要的内部管理工作,如需获取有关这些工作的详细描述信息,请参阅http://support.microsoft.com/default.aspx?scid=kb;EN-US;234142&sd=tech。相比之下,IIS 5的处理方式则截然不同,我经常对运行IIS 5的Windows 2000服务器进行服务器名称修改操作,且从未遇到过任何异常现象;但是,尽管如此,我还是建议您不要轻易执行这项操作。
如需修改服务器名称,请右键单击“我的电脑”,在随后出现的快捷菜单中选择“属性”并单击“网络标识”。此后,单击“属性”按钮以查看“计算机名称”设置。
在执行此类修改操作后,请牢记,服务器名称以及IUSR_<服务器名称>和IWAM_<服务器名称>用户帐号仍将反映原有的服务器名称。这些对象未被更新为反映新的服务器名称。然而,这与IIS没有任何关联,匿名身份验证过程(以及由此衍生而来且以IWAM用户帐号身份运行的处理应用程序)仍将顺利执行。如果使用诸如远程MMC控制台、脚本或终端服务客户端之类需要查找原先服务器名称的远程应用程序,那么,您还需要进行其它一些修改。此外,通过IIS服务器上的文件共享方式进行内容发布的客户端需要使用新的服务器名称对其共享文件夹连接进行更新。
请记住,安装证书服务的Windows 2000服务器无法修改自身标识。在对相应计算机名称进行修改,或者将其加入到域中或从域中剥离之前,您必须首先卸载证书服务。
“语法分析程序错误消息”具有何种含义?
问:我拥有一台装有最新补丁程序的IIS 5服务器,这台服务器总是收到内容为“语法分析程序错误消息:这是一个由于在应用程序层上使用注册为allowDefinition=‘MachineToApplication’的部分所导致的错误。这个错误可能是由一个在IIS中未被配置为应用程序的虚拟目录所造成的。”的出错信息。请问这是为什么?
答:我喜欢这些内容详细的ASP.NET错误消息!它们不仅描述了出现问题的原因,同时还经常为您提供解决方案。如果您的ASP.NET应用程序被配置为需要使用那些在元数据库定义好的“应用程序”的特性(如或 如何分析URLScan日志文件?
问:为确定我们的服务器所遭受的攻击类型并对其进行分类,我们目前正在着手对W2SVC和URLScan的日志文件进行分析。虽然我们已经找到了能够载入W3SVC日志文件的产品,但这些工具却无一能够对URLScan的日志文件进行扫描。请问Microsoft公司是否提供了能够帮助我们对URLScan日志文件进行分析的产品或工具?
答:请问一种允许您针对URLScan日志、W3SVC、事件查看器记录或其它任意一种基于文本的日志文件(如防火墙或入侵监测系统日志)进行数据挖掘、格式变化并生成分析报告的免费实用工具是否能够满足您的需要?Microsoft所提供的免费日志分析器工具正是专为满足那些需要收集并报告从具有不同文件格式的日志文件或其它数据源中所提取重要信息的IIS管理员、系统管理员和安全管理员的日常工作需求而设计的。
日志分析器可以将采用多种不同格式的日志文件当作“数据源”进行处理,这些日志文件包括:
日志分析器包含一种允许您通过运行SQL查询语句的方式生成分析报告或重新格式化信息结构的查询引擎。某些通过SQL语法实现的技巧将为您提供极大的便利。
例如,您可以通过以下语句针对某个Web站点汇总每小时处理的请求个数以及所发送的字节数量: 当然,您还可以通过单独文件夹或文件以及日志文件中所提供的诸如日期、时间之类的参数来缩小查询范围。
按照相同的方式,您便可以对URLScan日志进行查询。以下示例将报告通过某一客户端IP地址所拒绝的请求次数: 日志分析器还提供了许多其它特性,其中包括将结果输出至XML文件的功能、提供日志分析器功能的Active X对象(通过ADO实现)、以及通过自定义模板格式化输出结果的能力。
显而易见,这是一种功能非常强大的实用工具,它将顺理成章的成为广大IIS管理员“工具包”文件夹中的一员。
SELECT TO_STRING(TO_TIMESTAMP(date, time), 'yyyy-MM-dd hh') AS Hour,
COUNT(*) AS Total,
SUM(sc-bytes) AS TotBytesSent
FROM ex*.log
GROUP BY Hour
ORDER BY Hour
SELECT ClientIP,
COUNT(*)
FROM URLSCAN
WHERE Comment LIKE 'Url%'
GROUP BY ClientIP
本文地址:http://www.cg3000.com/html/cgTutorials/Website/SERVER/20070930/IIS_youwenbida_38502.shtml


当前位置 :