欢迎光临 Enjoy IT (ITECN.NET) 登录 | 注册 | 帮助

Windows Server 2008中全新的仲裁/见证模式

Quorum Disk,又名仲裁磁盘,其目的是在协调集群节点间的故障转移(Failover)Windows Server 2003年代的集群中,对于单一的仲裁设备服务器群集是否执行failover,quorum disk说了算,也就是说这是一种独裁者的方式。当然了对于单一节点集群,由于不需要故障转移,自然也没必要使用quorum。至于多数节点集,虽然有对应于每个节点的单一quorum,但是quorum实际是不起作用的。

那么很显然,对于单一的仲裁设备服务器群集,是存在quorum disk的单点失败问题的,也就是说如果是quorum disk本身出了问题,无法协调控制failover过程,导致整个集群出现群龙无首的状况,对这个场景的改良,在即将发布的Windows Server 2008中有一个新的特性:Majority based cluster membership其目标就是给节点投票权,按照少数服从多数的原则避免可能存在的 quorum disk单点失败的问题,而且尽可能避免设置quorum磁盘。在Windows Server 2008可以按照以下原则选择集群模式:

l 不需要避免quorum disk单点失败的,采用Disk Only方式,在这种模式中,仅有quorum disk具备投票能力,其实就是之前Windows Server 2003的单一仲裁设备服务器群集

l 需要避免quorum disk单点失败的,采用Node And Disk Majority模式,在这种模式中,quorum disk和各节点都一个vote

l 需要避免共享数据存储磁盘单点失败的,采用Node Majority模式,这种模式中每个节点有独立的存储设备,用来存放共享的数据信息,而且在硬件上实现存储设备间的数据同步,因为在这种模式中,不存在也不需要quorum disk,各个vote凭借自己的一票就可以对failover过程进行协调,这种场景主要是应用于银行金融行业的异地灾备方案

l 需要支持GeoClusters(节点处于不同地理位置的集群方式)而且应用对共享数据记录要求不高的前提下比如设计DHCP Services的高可靠性时,采用Node And File Share Majority模式,这种模式是选择节点之外服务器上的共享文件夹做见证,此见证共享文件夹和集群中各节点各持有一个vote,在出现故障的时候,通过投票机制实现failover

发表于 作者 chengzh | 3 评论
归档在:

Vista多媒体播放和网络吞吐率

前段时间网上新出现了一条新闻,在Windows Vista中播放多媒体文件会导致网络性能降低。结果证明这个问题确实存在,但确实设计特性。今天看到Mark Russinovich(Windows领域的大牛,相信很多人对他都有不少的了解)的一篇Blog,对这个问题进行了比较合理的解释。

我翻译了这篇Blog,希望对英文不好的朋友有所帮助。当然,水平有限,翻译的内容难免会存在疏漏,还望大家指正。

通过这篇文章我们有什么体会?

1,对于百兆网络,或者只安装了一块网卡的电脑,完全不用担心这个问题

2,如果是千兆网络,或者有多块网卡,那么问题比较棘手。尤其是有多块网卡的百兆网络,希望相关的补丁能尽快发布。

3,看来那个售价超贵的“杀手级”游戏网卡还是有必要存在的。

下面是原文内容:

几周前,在2CPU 论坛由dloneranger发布的帖子介绍了在他的Vista系统中播放音频或视频文件时网络吞吐量降低的情况。其他人也提到自己遇到了同样的问题,同时上周大家的注意力被其他站点就同一个问题的讨论所吸引,包括Slashdot以及Zdnet博客Adrian Kingsley-Hughes

很多人的推测是正确的,在播放多媒体文件时网络性能的降低确实是由于Multimedia Class Scheduler ServiceMMCSS)服务的工作原理导致的,这是Windows Vista中的新功能,我在TechNet Magazine有关Windows Vista内核变化的一系列文章中进行过介绍。多媒体播放需要有一个恒定的媒体流传输速率,而如果无法满足这个要求,播放就会变得断断续续或不连贯。MMCSS服务由通用服务宿主进程Svchost.exe承载,并且要比音频和视频文件播放时的优先级更高,只有这样才能防止其他任务干涉播放软件对CPU的使用:

当一个多媒体应用程序开始播放的时候,改程序使用的多媒体API会调用MMCSS服务以提高播放线程的优先级为“实时”,这个范围内的优先级在16-31之间,在时间上对应每10ms的间隔内最多8ms,当然,具体还取决于播放线程需要多少CPU时钟周期。因为其他线程以动态优先级运行,往往是低于15的,因此哪怕是对CPU时钟周期需求很多的程序也不会干扰到播放。

要看到这个现象,你可以在Windows Media PlayerWMP)中播放一个音频或视频剪辑,同时运行性能和可靠性监视器(开始-运行-Perfmon),选择性能监视器节点,在对象实例中为所有Wmplayer实例添加Priority Current计数器。随后将图表垂直比例的最大值设置为31Windows上最高的优先级),随后你就能直接看到被提升了优先级的线程,如下图所示的21

除了可能被其他线程影响外,媒体文件的播放还可能被网络活动所影响。当一个网络数据包到达系统后,会触发一个CPU中断,这将导致数据包到达的设备的驱动程序执行一个Interrupt Service RoutineISR)操作。当这个ISR运行的时候,其他设备的中断会被临时阻止,因此ISR通常会进行设备book-keeping操作,然后用一个更耗时的操作将数据从收到的设备传输到启用了设备中断的延迟过程调用(Deferred Procedure CallDPC)中。虽然DPC的执行是允许中断的,不过在运行了这些东西的处理器上,它的优先级要比其他任何线程还要高,无论线程的优先级是什么,这就有可能影响到播放媒体文件的线程。

网络DPC的接收操作是最“昂贵”的,因为这个过程中包括了将数据包传递给TCP/IP驱动的过程,而这个过程有可能导致很大的运算量。TCP/IP驱动会验证每个数据包,判断数据包所用的协议,更新连接状态,找到接收数据包的应用程序,然后将收到的数据复制到应用程序的缓冲中。下面的Process Explorer截图显示了当我从别的系统上复制大文件的时候用于DPCCPU时钟周期是如何变化的:

Vista的开发过程中对MMCSS的测试显示,就算有线程优先级提升(thread-priority boosting)功能,较重的网络通讯依然可能导致需要足够长时间执行的DPC妨碍到播放线程对多媒体文件的流畅播放,最终的播放结果可能会断断续续。因此MMCSS的“反停顿”机制被扩展为包含了对网络活动的调节。这个功能是通过给NDIS设备驱动天价了一个指令实现的,而NDIS是将网络适配器收到的数据包传输给TCP/IP驱动的主要组件,通过添加指令,NDIS每毫秒可以“标示”或者传递最多10个数据包(也就是每秒10000个)。

因为标准以太网Frame大小是1500字节左右,每秒将数据包数量限制为10000等于将网络吞吐率限制在最大15MB/s。百兆网络最多可以实现的吞吐量是12MB/s,因此如果你的系统在百兆网络中,你可能看不到任何影响。然而,如果你有千兆网络,而且发送端和你的Vista接收端都有千兆网络适配器,那么你的网络吞吐率会被降低到正常情况的15%

然而NDIS调节功能的代码中很不幸有一个Bug,如果你有多个网卡,这会导致调节幅度被增大。例如,如果你的系统中同时安装了有线和无线网络适配器,NDIS每秒钟会处理最多8000个数据包;如果安装了三块网络适配器,每秒钟可以处理的数据包数量会降低到6000个。每秒6000个数据包等于9MB/s,这个结果甚至在百兆网络中的影响都是很明显的。

在一台安装了三个网络适配器的笔记本电脑上,我从其他系统中复制一个大文件,同时用WMP播放歌曲,借此让调节功能生效。下面的任务管理器截图显示了复制的吞吐量占用原本有大概20%,但是在开始播放歌曲的时候在千兆网络上降低到只有6%

你可以在性能监视器中,在Network类别下添加“packets received per second”计数器来监控由NDIS收到的数据包数量。下图中,你可以看到收到的数据包数量的变化趋势和我上面提到的结果是完全一样的。NDIS处理的数据包数量并不满足理论上的最大6000个的结论,很可能是因为和远程系统握手的缘故。

尽管调节功能的限制程度如此之大,互联网通讯,哪怕最好的宽带连接都不会受到影响。那是因为在你的系统和互联网上其他系统之间的中间连接(intermediate connection)的多样性,以及传输的数据包片段可能降低数据包传输速度,因此对这类数据包的影响远不如系统传输数据时的影响大。

Vista使用的调解率的标准来自多次实验,并能确保在一颗CPU的百兆网络中保持尽可能高的数据包接受率的条件下防止播放过程产生停顿。这个硬性的限制对于当今的,具有多核高速CPU以及千兆网络的系统来说影响是很微弱的,而除了修复在安装了多个网络适配器上的系统中存在的Bug,我们的网络Team正在和MMCSS Team合作,希望将对网络速度的影响降到最低,但同时尽可能保证播放的流畅感受。

更多详细信息请关注我的Blog

发表于 作者 Liu_hui | 5 评论
归档在:

分辨率的故事

本文已发表在《个人电脑》杂志,请勿随意转载

在前几年,LCD显示器还是一种比较奢侈的产品,售价很高,而且性能参数很差,属于低性价比产品的典型。然而技术的发展是很快的,短短几年时间,LCD面板的生产技术得到了长足进步,大屏幕LCD显示器性能越来越好,售价越来越低,感兴趣的人则越来越多。
然而很多购买了LCD显示器,尤其是大屏幕LCD显示器的人买回来之后才发现,怎么LCD显示器不如自己想象中的好。
例如,原本在CRT显示器上显示很好的文字内容,在LCD显示器上为什么变得那么小,看起来很费眼睛。买了一台24寸的宽屏LCD后却发现,很多网页无法适应这么大的分辨率,将浏览器窗口最大化之后,网页内容只能居中显示或者靠左显示,旁边有很大一部分面积都被浪费了。想要在LCD显示器上玩一些低分辨率的老游戏,可是游戏的显示效果为什么那么差劲。
本文会告诉你在遇到这些问题后该如何解决。

显示器的技术指标是什么意思

 在买显示器之前,很多人都会详细了解显示器的性能参数,例如显示面积、分辨率、点距、色深等,然而这些参数分别有什么作用?对显示器的显示效果有什么影响?因为本文着重讨论显示面积、分辨率以及点距对显示器的影响,因此主要会介绍这三个参数。同时本文的主要内容仅适合LCD显示器。
在介绍之前,首先说一个很现实的问题。前两天我买了一台22寸的宽屏LCD显示器。在试用了新显示器后,我父亲很疑惑,为什么显示器尺寸变大了,显示的文字反而更小了?不像电视机,尺寸越大,显示的内容就越大?
其实对很多新手,这些问题是很常见的。这就要从显示器的分辨率和点距说起。从显示器的工作原理可以知道,其实显示器是由很多小点组成的,这些最小的点就是我们常说的“像素”。例如,对于分辨率为800×600的显示器,这表示显示器上横向是由800个像素点组成的,纵向由600个像素点组成,那么整个显示器上就有800×600=480000个像素。
对于最古老的模拟CRT电视机,无论电视机的尺寸有多大,分辨率一般都不会超过300线,也就是说,模拟电视上,纵向像素数一般都是低于300的。而且因为电视信号的分辨率通常都是固定的,因此电视机的分辨率不会随着屏幕尺寸的增大而增大(增大的只是每个像素的大小,可以理解为点距)。所以在看电视的时候我们会发现,同样的视频信号,在屏幕越大的电视机上观看,显示的内容会越大,但是越不清晰。大屏幕电视机往往远距离观看效果更好。
计算机显示器就不同了,随着屏幕尺寸的增大,分辨率往往都是增大的(点距的变化很小)。因此在计算机显示器上,无论屏幕的大小,显示内容看起来清晰度几乎是一样的。然而这却存在一个问题,因为LCD显示器的画面是由很多像素点组成的,因此像素点越小(点距),显示结果就越细腻。然而太小的像素点会导致文字内容一样很小,看不清文字内容。同时像素点越小,对LCD面板的制造工艺要求就越高,产品也就越贵。那么怎样在点距、分辨率、尺寸以及成本之间取舍?
目前市场上常见的计算机LCD显示器尺寸有19寸、19寸宽屏、22寸、24寸(大于19寸的几乎都是宽屏),这些尺寸和点距以及分辨率之间的关系如下表所示。

尺寸

分辨率

点距

19

1280×1024

0.294mm

19寸宽屏

1440×900

0.285mm

22

1680×1050

0.282mm

24

1920×1200

0.270mm

从这些尺寸的对比正好对应了大部分人对这些显示器的感觉。默认分辨率下,19寸显示器显示的文字比较大,但是图片内容不够细腻,很“毛糙”;24寸显示器显示的图片内容很细腻,但是文字内容又太小;19寸宽屏和22寸显示器则处于比较“折衷”的位置。正因为如此,22寸被很多人成为LCD显示器的“黄金尺寸”。
显示器的硬件指标很复杂,但我们只需要了解这么多。下面一起讨论一下,怎样能够更加充分地利用好已经买回来的LCD显示器。

使用ClearType技术增强显示效果

最早在Windows XP中,微软提出了一种叫做ClearType的显示增强效果,可以用于增强LCD显示器的显示质量,提高文字可读性。那么这个功能到底有什么作用?
前面已经说过,显示器上显示的图案实际上是由一个一个像素组成的,而像素是有大小的(点距),如果我们希望用像素组成一个字母“C”,很明显,因为有弯曲的线条,因此在使用像素组合的时候,在弯曲的地方会留下明显的锯齿。
ClearType技术则可以在组成文字的象素点之间填充过渡色,以达到给文字“抗锯齿”的效果。对比下面两张图片,左侧一张是关闭ClearType技术后拍摄的显示器显示内容,而右侧是开启该技术后获得的。很明显,在应用了ClearType技术之后,字体的边缘显示更加平滑,当然,文字也就更加赏心悦目了。

 

该技术在Windows Vista下是默认启用的,不过在Windows XP中可能没有启用。如果想要在Windows XP下启用该功能,请在桌面空白处单击鼠标右键,选择“选项”,打开显示选项对话框。接着打开“外观”选项卡,单击“效果”按钮,打开效果对话框。选中“使用下列方式使屏幕字体的边缘平滑”选项,接着在下拉菜单中选择“清晰”即可。要注意,大部分情况下,该功能只对LCD显示器有效,同时需要设置显卡使用32位色才可以使用。
如果在启用ClearType后发现显示效果并不好,这时候可以试试看使用微软的提供的程序进行微调。用Internet Explorer浏览器访问http://www.microsoft.com/typography/cleartype/tuner/Step1.aspx ,在这里安装一个ActiveX加载项,然后根据网页上的显示选择你觉得最“好看”的图片,即可完成调整过程。

调整dpi

很多人在买了大屏幕LCD分辨率后,因为点距的原因,使用默认分辨率觉得文字变得太小,不利于阅读,往往会在大屏幕显示器上使用低分辨率,例如让24寸LCD显示器工作在1440*900的分辨率上。其实这样做就是大材小用,我们可以通过其他方法让显示器使用默认分辨率,但同时让文字更大,更易于阅读。
前面已经说过点距和分辨率对显示效果的影响,其实这里还有一个很重要的参数:dpi(dot per inch,每英寸点数)。该参数定义了像素的密度,也可以理解为解析度。简单来说,dpi决定了显示器上一条一英寸长的线条是由多少像素点组成的。一般情况下,我们可以买到的非专业LCD显示器都是96dpi的,这意味着在大部分显示器上,一英寸长的线条实际上是由96个像素点组成。
那么只要人为调整Windows的dpi数,就可以在显示器上获得更好的显示效果。所有新版本Windows都具有这个功能,不过Windows Vista是其中做得最好的。我们一起试试看怎样在Windows Vista中进行调整。
为了能够对调整前后的效果进行对比,首先在默认设置下,对整个屏幕抓图,如下图 所示。

  (大图

这是在一台22寸宽屏LCD上,使用默认的1680×1050分辨率截取的。
在桌面的空白处单击鼠标右键,选择“个性化”,打开个性化窗口,然后单击窗口左侧“任务”列表中的“调整字体大小”链接,打开DPI缩放比例对话框(如下图所示)。

 

 在这里直接选择“更大比例”选项即可,这样可以设置Windows使用120pdi的精度,而因为显示器的pdi数是固定的,因此越大的Windows dpi设置就会让Windows下显示的文字越大。同时,如果希望使用其他pdi设置,可以单击“自定义PDI”按钮,在随后出现的自定义DPI设置对话框中选择希望使用的比例。
设置后单击“确定”,并重启动系统。这时候整个桌面的截图成了下面的样子。对比图2可以明显感觉到,在分辨率相同的情况下,更高的dpi带来了更大的显示文字(开始菜单和控制面板窗口中的文字),但同时图像等内容(屏幕右侧的Windows边栏)依然细腻,整个显示结果的可读性都很好。

 (大图

 并排显示或放大网页

很多使用大屏幕LCD显示器的人还会遇到另外一个问题,这主要发生在浏览网页的时候,那就是,将浏览器窗口最大化后,很多网页都占据屏幕中央或者左侧的一部分区域,显示器上大量区域都被浪费了。
其实这样做是有原因的。毕竟大部分人依然在使用老的显示器,因此在设计网页的时候,大部分设计师都会以1024×768分辨率为标准进行设置,这样网页才可以在大部分人的浏览器中显示。
这时候很多人都希望能让浏览器放大显示网页,例如在Internet Explorer的“查看-文字大小”菜单中选择“较大”、“最大”等设置。然而这个设置对有些网页并不会生效,因为这些网页往往使用CSS来定义网页字号,并不是用浏览器的设置。同时这种方法只能放大文字内容,对于版面比较复杂的网页,例如包含了较多图形或者表格,还有可能导致网页内容错位。
这种情况下,如果你用了Internet Explorer 7,那么可以试试看Internet Explorer的网页缩放功能。在Internet Explorer 7窗口底部的状态栏有一个缩放工具,直接单击该工具就可以让网页的完整内容按顺序以125%、150%、100%的比例显示。如果希望自定义缩放比例,只需要单击该工具右侧的箭头,即可在弹出菜单中进行选择。或者也可以单击“自定义”,手工输入要使用的缩放比例。

 

让我们试试看实际的显示结果。将显示器分辨率设置为1680×1050,使用默认的96dpi,并将Internet Explorer 7浏览器窗口最大化,下面6图是100%显示的网页,图7是150%显示的网页。很明显,不仅文字,所有图片内容被放大了,而且网页的结构基本上都能保持原样。

   

除了可以让网页缩放显示外,我们还可以在宽屏幕显示器上并排显示多个窗口。例如,要写文章,但同时还要查资料,那就可以让Word窗口和Internet Explorer窗口并排显示,这样就不用在多个窗口之间切换,间接提高工作效率。除了并排显示外,我们还可以让Windows对窗口进行层叠或者堆叠。
假设需要并排显示窗口,可以这样操作:如果桌面上打开了多个窗口,首先将所有不需要并排显示的窗口全部最小化(注意,该功能只能对没有被最小化的窗口使用),同时让所有需要并排显示的窗口处于最大化或者还原状态。接着用鼠标右键单击Windows任务栏的空白处,从右键菜单中选择“并排显示窗口”,这样虽有没有被最小化的窗口都会自动被Windows并排显示在一起。基本上,22寸或24寸的宽屏显示器,并排显示两个A4的Word文档问题都不大。

  (大图

 除了并排显示,选择“层叠窗口”或者“堆叠显示窗口”命令,Windows还可以帮我们以其他方式自动排列没有被最小化的窗口。通过灵活使用这些排列方式,大屏幕显示器可以更好地帮助我们完成工作。在使用了任何一种显示方式后,再次在任务栏空白处单击鼠标右键,任务栏菜单中会显示相应的撤销命令,例如并排显示窗口后,就会出现“撤销并排显示”的命令,选择该命令后窗口的排列方式就会被复原。
如果你系统中安装了微软的鼠标驱动(不一定非要有微软的鼠标),那么在按下鼠标滚轮或者中键后,所有打开的窗口(包括被最小化的)都会并列显示在屏幕上,将鼠标指针移动到相应的窗口后,该程序的窗口就会被放大显示,这时候按下鼠标左键即可切换到该窗口。个人感觉这个功能要比Windows Vista自带的Flip 3D功能更实用。

 (大图

 让老游戏更适合新显示器

在使用LCD显示器,尤其是高分辨率LCD显示器玩老游戏的朋友,最头疼的可能是分辨率不匹配的问题。自己的显示器已经可以达到宽屏的1680×1050的分辨率,而游戏最高只支持非宽屏的1024×768分辨率。这时候,游戏往往被放大以全屏显示。但这又带来另一个问题,显示器是宽屏的,游戏能支持的分辨率并不是,那么游戏画面被放大后会变形,而在有些游戏里,画面显示比例不准确可能会严重影响到我们的发挥。
这种情况下可以考虑调整显卡的设置。以ATI显卡的催化剂驱动为例,打开催化剂控制中心的高级模式,依次进入“数字面板属性-属性”,在“图像缩放”选项下选择“使影像居中显示”,这样以后玩低分辨率的游戏,游戏的画面就会居中显示在显示器的中央,同时画面四周会显示黑边。

 

 对于nVidia或者S3等品牌的显卡,安装最新的驱动后,也能在设置程序中找到类似的选项。

杜绝电影中讨厌的黑边

 现阶段,很多购买宽屏显示器的人都是为了更好的电影欣赏效果。因为大部分电影在宽屏显示器上都可以全屏显示,不会像非宽屏显示器那样在画面上下留下难看的黑边。然而,当你买回宽屏显示器后可能发现,有些电影依然存在黑边。
原因是多方面的,主要是因为电影的画面比例目前还不统一,而宽屏计算机显示器的显示比例一直都是16:10,因此黑边也就在所难免了。这时候有两种选择,第一种,舍弃电影画面中的部分内容,全屏显示电影画面;第二种,充分利用画面下方的黑边显示字幕。下文会以KMPlayer播放软件为例进行介绍。其他播放器可能也具有类似的功能。
如果完全不希望看到黑边,但可以接受可视范围的损失,那么可以设置过扫描输出。这种工作方式的原理是,将比例和显示器不一致的电影画面进行剪裁,减掉画面四周的区域,然后将剪裁到一致的画面全屏显示在显示器上。
在KMPlayer中,用鼠标右键单击画面,然后指向“屏幕控制”,接着选择“全屏幕(过扫描)”,对比下图,虽然过扫描方式损失了画面四周的内容(主要是左右两侧),但至少讨厌的黑边看不到了(上下两侧)。

   

 如果不希望画面的可视范围有任何损失,那么对某些电影,就只能留着讨厌的黑边,但我们可以把黑边充分利用起来,用来显示字幕,这样字幕就不会遮盖电影画面的内容。要注意,这个方法仅适合外挂的字幕,对于已经嵌入到电影画面内的“硬字幕”无效。
还是以KMPlayer为例,首先需要将视频渲染器设置为VMR9窗口化,方法是在画面上单击鼠标右键,依次指向“视频(高级)-视频渲染器”,然后选择“VMR9窗口化”。然后设置字幕描绘到覆盖表面,方法是在画面上单击鼠标右键,指向“字幕”,然后选择“描绘到覆盖表面”。接着在播放电影的过程中,按下“Ctrl-[”或“Ctrl-]”组合键即可调整字幕在垂直方向上的位置,前者可以降低字幕的高度,后者可以升高。只要将字幕的高度降低到屏幕底部的黑边范围内即可。同时为了更加充分地利用黑边的范围,我们还可以调整字幕文字的大小,直接按下“Alt-[”和“Alt-]”快捷键即可放大或缩小文字。

    

其实大屏幕的LCD显示器,尤其是宽屏幕显示器的显示比例更符合人眼的视角,长时间观看要比非宽屏更舒适。只不过都是一些软件以及设置上的缺陷导致很多人觉得大屏幕或者宽屏没什么太大用处。相信通过本文,你已经了解了如何设置软件才能更好地满足大屏幕显示器的需要。那么下次换显示器的时候,何不考虑一下呢?

发表于 作者 Liu_hui | 6 评论

看清Windows Vista中的安全提示信息

本文已发表在《个人电脑》杂志,请勿随意转载

当我们在使用Windows执行大部分操作的时候,Windows都会用提示信息告诉我们操作的执行结果。例如,操作是成功完成还是失败了,如果失败了,那么失败原因是什么,或者在操作过程中需要注意的事项等。看清这些提示信息(尤其是错误信息和注意事项)有助于我们更好地完操作。因此本文将会对Windows Vista中一些常见的安全提示信息进行说明。

 Internet Explorer中的各种信息

 在Windows Vista中,和Internet Explorer有关的信息大部分都出现在地址栏和信息栏(图1),这些信息可以告诉我们当前访问的网站是否有安全问题,是否是欺诈网站,以及是否有其他一些需要注意的信息。

 

下文会将Internet Explorer中常见的提示信息分为安全证书相关、安全设置相关、控件相关这三个类别来介绍。

和安全证书有关的提示信息

为了保护我们的在线隐私,很多网站,尤其是银行和证券公司等提供金融服务的网站都会使用安全证书加密我们的浏览器和网站服务器之间的通信,这样双方的网络通信就算被其他人截获也不会造成损失。因此很多人在访问网站的时候,如果发现网站使用了加密通讯,往往都会觉得很安全,自己的隐私受到了保护。
通常,判断一个网站的通讯是否被加密的方法有两个:

1,网站的地址是否是“https”开头的,因为只有加密网站的地址才以“https”开头。
2,IE浏览器的状态栏是否有一个黄色的锁头图标,因为只有访问加密网站的时候才会出现该图标。

然而有时候就算一个网站同时满足了这个条件,也有可能是有问题的。

不信任的证书
因为加密网站需要用到安全证书,而一些诈骗网站可能会使用伪造的或者颁发给别人的安全证书来加密自己的网站通讯。
例如当我们访问一个网站的时候,IE显示了图2所示的错误信息,告诉我们这个网站的安全证书不被信任。这意味着网站可能并不是自己宣称的角色。例如,如果你单击电子邮件中的链接进入某个银行的网站时IE显示了这样的页面,那就表示该网站提供的加密证书无法证明自己的合法身份,有可能是假的(少数情况也有可能是真的)。这时候,最好的办法就是关闭该网站。而如果依然希望看看这个网站的内容,则可以单击“继续浏览此网站(不推荐)”链接。

 

单击“继续浏览此网站”链接后,我们可以看到网站的内容,不过IE这时候会用更明显的方式提示我们注意。如图3所示,整个地址栏都变成了红色,并且带有“证书错误”字样的按钮,单击该按钮后可以看到一个弹出菜单,里面显示了详细的错误信息。

 

 对于这类站点,如果不希望单击“继续浏览此网站”链接就能继续访问,而是希望不提供任何选项,直接禁止访问,可以配置组策略(注意,只有Windows Vista商业版、企业版和旗舰版可以使用组策略功能)实现。运行gpedit.msc打开组策略编辑器,定位到“计算机配置-管理模板-Windows组件-Internet Explorer-Internet控制面板”,启用“阻止忽略证书错误”这条策略即可。
但是还需要注意,有时候正常网站也会遇到这类错误。一个网站被加密,通常有两个原因:保护网站服务器和客户端浏览器之间的通讯不被窃听,或者证明自己的身份。例如,某个网络交易网站,不仅需要保护通讯不被窃听,还要保证客户能相信这个网站就是该商户的官方网站。对于这种用途,网站使用的安全证书必须是经过证书颁发机构信任的,这类证书往往都需要付费购买。另一种情况,有些人可能只希望保护自己服务器和客户端浏览器之间的通讯不被窃听,至于身份是否真实可靠,这不是重点。这种时候就没必要在证书颁发机构那里购买昂贵的安全证书,这类网站往往使用自己颁发给自己的证书。而这类证书往往会被IE认为是有问题的,并显示图2和图3的错误。对于这类错误,目前没有什么好的解决办法,只能通过单击“继续浏览此网站”链接浏览。

被冤枉的网站
还有另一种情况。假设一个网站的地址是www.example.com(这是一个虚构的地址),网站已经申请了安全证书,这个证书表明该证书被颁发给了“www.example.com”,但如果我们使用类似“https://example.com”这样的地址去访问,虽然我们知道这还是那个网站,但IE会认为“example.com”这个网站使用了另外一个网站“www.example.com”的数字证书,是假冒的(图4)。

 

 对于这种情况,我们只要给访问的网站域名里添加“www”字样,将域名补充完整即可避免看到证书错误。

正常状态的证书
如果在访问一个加密网站的时候,IE的地址栏没有出现红色背景,而是出现一个黄色的锁头图标(图5)或者地址栏变为绿色(图6,这种情况目前还很少,以后估计会逐渐增多),那就证明该网站是安全可靠的。对于这类网站,我们可以放心浏览,并提交相应的个人信息。但这也只能保证我们给网站提交信息和浏览页面的过程是安全的,至于提交的个人信息如何使用,这取决于访问的网站。

 

和安全设置有关的错误信息
在IE中,很多选项的默认设置都很保守,可以最大程度实现安全性。然而很多时候我们可能因为不了解某些选项的具体作用而做出了错误的设置,不仅会影响IE的使用,还有可能会导致一些安全问题。而更严重的是,我们根本不知道自己的哪些操作会让IE变得不安全,而有时候如果其他软件修改了IE的设置,我们也无从得知具体修改了哪些设置。


安全设置检查
在IE 7中,当我们在Internet选项对话框中对一些选项进行设置的时候,如果自己的设置会降低IE的安全性,那么IE会使用红色的背景将这些选项标记出来,提醒我们注意。同时,一些修改后可能会降低IE安全性的选项,还会用文字注明“不安全”,如图7所示。

对于这类选项,如果在知道会影响IE安全性的情况下依然想要使用不安全的设置,那么在应用了设置后,IE会用一个信息栏提示我们当前的设置不安全,同时再次打开Internet选项对话框后也可以看到安全设置提示(图8)。不仅如此,在Windows Vista的系统通知区域也会出现一个红色的盾牌图标提示我们注意。

 

 要解决安全问题,我们有三种办法:

1,打开Internet选项对话框,依次打开每个选项卡,看哪个选项卡上标有“安全设置导致计算机存在安全风险”的提示,如果某个选项卡上有,则打开该选项卡上的每个选项,找到背景是红色的选项,将其修改为安全的设置(这个方法比较麻烦)。
2,单击IE窗口上的黄色信息栏,选择“修复设置”选项(这个方法最简单)。
3,双击系统通知区域中的红色盾牌图标,打开Windows安全中心窗口,单击“其他安全设置”类别下的“还原设置”按钮(这个方法相对简单)。

如果因为一些特殊的需要,必须使用某些不够安全的设置,但又不想看到安全性提示,那么可以运行gpedit.msc打开组策略编辑器,定位到“计算机配置-管理模板-Windows组件-Internet Explorer”,启用“关闭安全设置检查功能”这一策略。

混合内容
在访问一些加密网站的时候,我们有时候可能会看到图9所示的对话框。这是什么意思?

 假设这种情况:我们正在访问某个网络交易网站,因为使用了加密技术,因此我们可以完全信任网页上显示的内容,并提供自己的信息。但如果该网站被攻击者破坏了,正常网页中嵌入了来自其他站点的内容(可能是骗人的图片或者给用户系统中安装间谍软件的恶意脚本或者木马),因为我们是在访问加密网站,因此从心理上就没有足够的防备,因而自己的系统也被成功入侵。
为了防范这种问题,IE可以在我们访问包含了非加密内容的加密网页时发出提示。简单说,假设我们正在访问https://www.example.com这个网站的首页,按理来说,访问的所有内容(文字、图片、脚本等)都应该位于www.example.com的服务器上,同时必须通过SSL加密线路传送到我们的浏览器。但如果这个网站的页面上包含了一些到非加密网站的文件(可能是网站设计的疏忽,或者攻击者的篡改),那么IE就会显示图9所示的对话框。如果希望显示非安全内容,可以单击“是”,否则可以单击“否”,这样安全的网页内容依然会被加载,但是不安全的内容会被过滤。
这是一个好功能,但如果你经常在访问一些重要网站的时候遇到,也可以进行一些设置来避免。打开Internet选项对话框的安全选项卡,单击“可信站点”,然后单击“站点”按钮,在随后出现的可信站点对话框中将你经常访问但遇到这类信息的网站地址添加到可信站点区域。然后在Internet选项对话框的安全选项卡上选中可信站点,单击“自定义级别”按钮,在随后打开的安全设置对话框中找到“显示混合内容”选项,选中“启用”。

注意:为什么要现将目标站点添加到可信站点区域后才设置?不能直接设置Internet区域吗?其实这也是为了安全。毕竟希望进行这样设置的都是我们经常访问的,信任的网站,而网上其他无法被充分信任的网站还有很多。因此先把目标网站添加到可信站点区域再设置,这样该设置就只能对我们经常访问的网站生效,对其他大部分网站还会首先进行提示,这样在保证易用性的同时还保持了一定的安全性。 

和控件有关的提示


很多网页为了实现特殊的功能,往往会需要给IE中安装控件。例如要在IE中显示Flash动画,就需要安装Adobe的Flash控件;要进行Windows正版验证,就要安装微软的WGA控件。然而,并不是所有控件都是我们需要的,有很多网站以控件的形式诱骗用户安装所谓的“流氓软件”,这类软件一旦安装到系统中,就不容易彻底卸载,而且这类软件一般还会进行一些不够道德的操作,例如记录并发送用户的网页浏览习惯、在系统中显示广告,劫持并锁定IE首页等。为了防范不良控件,IE中增加了很多专用功能。

不带数字签名的控件
要正常安装控件,那么控件的安装文件必须包含有效的数字签名,这样IE才会询问我们是否安装;如果不带数字签名,那么IE根本不会询问,直接就会禁止安装。
数字签名有两个作用:1,证明该控件的来源和作用,例如从数字签名中,我们可以知道该控件是哪家公司开发的,有什么作用;2,证明该控件在发布后没有被篡改,例如,如果一家公司开发了一个没有恶意的控件,放在自己的网站上供人下载,但有人攻破了该公司的网页服务器,给控件中捆绑了恶意代码,这就会导致控件的数字签名失效(哪怕文件只有一个字节的变动,都会导致数字签名失效),因此也就不会被提示安装。
如果访问的网页需要安装不带数字签名的控件,那么我们首先会看到IE的信息栏告诉我们说Internet Explorer已经停止从此站点安装ActiveX控件到计算机。如果单击该信息栏,选择“安装ActiveX控件”选项,随后可以看到图10所示的界面,这样不带数字签名的控件根本无法安装。

 

当然,这种限制有效地保护了系统安全,但有时候我们可能确实需要安装某个不带签名的控件,这时候又该怎么办?打开Internet选项对话框的安全选项卡,选中Internet区域,单击“自定义级别”按钮,在随后出现的安全设置对话框中找到“下载未签名的ActiveX控件”选项,选择“启用(不安全)”。随后关闭所有对话框,刷新网页,单击信息栏,指向“已阻止的安装”,接着选择“安装ActiveX控件”选项即可。安装好后记得将该选项恢复为默认的安全设置。
带有数字签名的控件
带有数字签名的控件很简单,只要单击相应的选项进行安装即可。不过在安装的时候一定要注意看自己安装的控件是谁开发的,有什么作用。因为现在很多以控件形式存在的流氓软件也是带有数字签名的,因此并不能凭借是否带有数字签名为标准判断某个控件是否是流氓软件。

UAC的各种提示信息 

在Windows Vista中,我们最多遇到的可能并不是Internet Explorer的各种安全提示,而是UAC的提示。基本上,在安装或运行某些软件,或者对系统的一些设置进行调整的时候,都会看到和UAC有关的提示。
UAC的提示信息主要有两个类别。如果当前登录的是管理员帐户,那么UAC提示信息就是一个简单的对话框,上面显示了要执行的操作,并提供了按钮供我们选择继续操作或者禁止操作;如果当前登录的是非管理员帐户,那么UAC提示信息就是一个类似登录对话框的界面,上面显示了要执行的操作以及本机现有的管理员帐户,我们需要单击其中一个帐户 ,输入正确的密码,才能继续。
现在有关UAC的介绍已经有很多,因此本文不打算过多讨论。本文只打算介绍各种UAC提示信息的含义以及如何设置能在保证安全性的同时将UAC对我们的影响降低到最小。

打开或关闭安全桌面
默认情况下,当显示UAC界面的时候,整个屏幕会变黑,然后除了UAC对话框外,其他内容都会变暗显示,无法操作,只有UAC对话框可以操作,这就是安全桌面。
使用安全桌面的主要目的是为了防止其他恶意软件制造假的UAC提示框骗取用户的密码,因为在安全桌面上,只有系统自己的UAC对话框可以操作,其他程序的界面都只能观看,无法操作。因此就算恶意软件伪造了一个惟妙惟肖的UAC对话框,因为无法伪造安全桌面,因此也无法得逞。然而在一些配置不够高的计算机上,显示安全桌面的时候会导致系统段时间的停顿,因此很多人并不喜欢这一功能。如果希望禁止安全桌面,请运行secpol.msc打开本地安全策略控制台,定位到“本地策略-安全选项”,禁用“用户帐户控制:提示提升时切换到安全桌面”这一策略即可。
优化提升提示
Windows Vista中定义了两种等级的用户帐户:标准帐户和管理员帐户,同时还为应用程序定义了两种模式(运行级别),分别是标准用户模式和管理员模式。标准用户帐户可以使用大部分软件,可以更改不影响其他用户以及系统整体安全性的系统设置,而管理员帐户则对计算机拥有完整的控制权,并且可以修改任何设置。当用户启动一个程序的时候,他的访问令牌以及相关联的管理员特权就会传递给这个程序,这等于把自己在本机上的所有权力和特权都给了这个程序。进一步说,所有程序在安装过程中都被配置为只能运行在特定的模式下,任何标准模式下运行的程序执行的任务在需要得到管理员特权的时候都必须通过用户的允许,而这一允许过程就叫做提升提示。
在本地安全策略控制台的“本地策略-安全选项”下有几个以“用户帐户控制”字样打头的策略,这些策略控制了提升提示的详细情况,其中比较重要的有:

用户帐户控制:标准用户的提升提示行为 决定了使用标准用户帐户登录的用户在运行管理员模式的程序时是否可以看见提升提示。默认情况下,使用标准用户帐户登录的用户在运行管理员模式的程序时会被要求输入管理员帐户的登录凭据,但通过配置这个选项,这样用户就不会看到提示。在这种情况下,用户将无法通过提供管理员帐户的登录凭据获得提升后的权限。但该设置并不能阻止用户用鼠标右键单击程序的快捷方式,然后选择以管理员身份运行的方式进行提升。
用户帐户控制:管理员批准模式中的管理员提升提示行为 决定了受限于管理员批准模式的管理员帐户在运行管理员模式的程序时是否可以看到提升提示,同时还决定了提升提示的工作方式。默认情况下,管理员在运行管理员模式的程序时会被要求批准,只要配置了该选项,那么管理员就必须输入自己的密码,就好像标准用户那样。你还可以通过配置这个选项让管理员看不到任何提示,这种情况下,管理员也将无法提升自己的特权。不过这样做并不能防止管理员用鼠标右键单击一个程序的快捷方式,然后选择以管理员身份运行。
用户帐户控制:用于内置Administrator帐户的管理员批准模式 决定了使用内置的本地Administrator帐户登录的用户和进程是否受限于管理员批准模式。默认情况下这个功能是启用的,这意味着内置的Administrator帐户也受限于管理员批准模式,并且还进一步受限于针对管理员帐户的提升提示行为设置。如果禁用该设置,使用内置Administrator帐户的用户和进程将无法受限于管理员批准模式,因此也不受限于针对管理员帐户的提升提示行为设置。 

 不同颜色的提升提示对话框
当我们运行一个程序的时候,如果需要使用管理员权限,那么UAC会显示提升提示对话框,然而根据程序性质的不同,对话框的样式也会有所不同。例如图11和图12就是两个不同的提升提示对话框,从图中可以看出,这两个对话框的主要区别在于程序的类型以及对话框的背景颜色。

图11显示的是我们试图打开计算机管理控制台时候的提升提示对话框。因为这是一个Windows自带的工具,因此带有微软的数字签名,同时被认为是可信的。这个对话框的背景(顶部的色块)是蓝色。

 

 图12是当我们试图以管理员身份运行一个第三方软件时看到的提升提示对话框,因为该程序没有包含有效的数字签名,因此Windows Vista将其显示为“未能识别的程序”,同时对话框顶部的色块是黄色的,而且带有一个盾牌图标。
根据发行者的不同,Windows Vista会将应用程序分为下列类别:

Windows Vista
发行者已验证(已签名)
发行者未验证(未签名)

接下来,为了帮助我们快速判断安装或运行应用程序可能导致的潜在危险,取决于应用程序所属类别的不同,权限提升的提示窗口会使用不同的颜色和特定信息进行区分:

如果应用程序来自被禁止的发行者或者被组策略所禁止,权限提升的提示窗口会显示红色的背景,并显示“应用程序被禁止运行”的字样。
如果应用程序是管理性质的(例如计算机管理控制台),权限提升的提示窗口会显示蓝色/绿色的背景,并显示“Windows需要您的许可才能继续”的字样。
如果应用程序带有数字签名,并且该签名被本机所信任,权限提升的提示窗口会显示灰色的背景,并显示“程序需要您的许可才能继续”的字样。
如果应用程序不带数字签名(或者带有签名,但不被信任),权限提升的提示窗口会显示黄色的背景和红色的盾牌图标,并显示“一个未能识别的程序要访问您的计算机”的字样。 

通过不同颜色的区别,再根据提升提示对话框上显示的详细信息,我们就能判断出要运行的程序到底是什么身份,并决定是否允许该程序以管理员身份运行。

强制以管理员身份运行
因为有了UAC功能,很多老程序可能无法在标准用户帐户下运行。这主要是因为程序可能为了实现特殊的功能而要访问系统底层的内容或设置,或者程序设计不合理,毫无根据地要求用户具有管理员权限。这类程序在Vista下运行可能会遇到问题。
兼容Windows Vista的应用程序的安装文件使用了一个包含运行级别信息的应用程序清单文件(Application manifest)帮助操作系统了解该程序所需的特权。应用程序清单文件通过下列方式定义应用程序需要的特权:

RunAsInvoker 使用和当前用户同样的特权运行应用程序,这样任何用户都可以运行该程序。对于标准用户或者隶属于管理员组的用户,该程序会使用标准访问令牌运行,只有在启动该程序的父进程(parent process)具有管理员访问令牌的时候,程序才会使用更高的特权运行。例如,如果你运行了一个提升后的命令提示符窗口,然后从该窗口下启动了一个程序,该程序才会以管理员访问令牌运行。
RunAsHighest 使用当前用户具有的最高特权运行应用程序,这样的程序可以被管理员用户和标准用户运行。可以被程序执行的任务取决于用户的特权,对于标准用户,程序会使用标准访问令牌运行;对于隶属于拥有更高权限用户组,例如backup operators组、server operators组或者account operators组的用户,程序会使用只包含用户当前具有的特权的访问令牌运行;对于隶属于管理员组的用户,程序会使用完整的管理员令牌运行。
RunAsAdmin 使用管理员特权运行应用程序,只有管理员才能运行该程序。对于标准用户或者隶属于拥有更高权限用户组的用户,只有在用户可以通过提升获取更高的权限以进行提升,或者程序通过提升后的父进程启动的情况下(例如通过提升后的命令提示符窗口运行该程序),该程序才可以运行;对于隶属于管理员组的用户,该程序会使用管理员访问令牌运行。 

因此如果一个程序带有清单文件,Windows Vista就能根据文件的信息判断出程序正常运行所需的权限,并对比用户具有的权限,判断是否需要提升权限。但如果程序不带清单文件,Windows Vista将以标准用户的身份启动程序,这是导致一些老程序无法正常使用的主要原因。
对于这类程序,解决起来也很简单,只要强制让该程序每次都使用管理员身份运行即可。只要在该程序的快捷方式上点击鼠标右键,选择属性,打开属性对话框的兼容性选项卡,接着选中“请以管理员身份运行该程序”选项即可。

实际上Windows Vista中和安全性有关的各种提示还有很多,不过陷于篇幅本文无法一一介绍。但在遇到其他本文未涉及的安全提示的时候,只要仔细查看说明,并配合Windows的帮助文件,就可以了解该提示的具体含义以及才怎样操作。希望通过合理使用这些安全功能,你的系统可以更加安全。

发表于 作者 Liu_hui | 3 评论

[Windows Vista]安全桌面凭什么那么安全?

写了三篇系列《Windows Vista如何以SYSTEM权限启动进程》小文章,借着这股劲,再来简单分析一下安全桌面。

安全桌面,大家应该不会感到陌生。UAC的权限提升提示对话框、用户网络凭据的保存对话框,还有欢迎登录界面,都是运行在安全桌面上。

究其本质,安全桌面,也叫做Winlogon桌面,实际上是WinSta0窗口站里默认具有的三个桌面之一。另外两个桌面,一个是Default桌面,也就是用户桌面,就是我们平时登录后所在的桌面,还有一个是屏保桌面(且不去管它)。

那么为什么安全桌面那么安全,以至于Windows把那么重要的任务都交给它?

难道是因为它的名字?当然不会!Windows并没有因为它的名字里有“安全”,就放心地把安全攸关的任务交给它(就这一点来说,很有点类似湖南卫视的武警战士,并没有因为某位超女的名头大,就随便放行)。

1. 一切还是得看安全权限设置

和窗口站一样,桌面也是一个安全对象,也需要通过安全描述符对其进行安全保护。

怎么才能查看Winlogon桌面的安全权限?

很简单,只需通过Process Explorer查看Winlogon进程的句柄表,里面会有一个\Winlogon的句柄,查看其安全属性。可以发现只有SYSTEM帐户才有所有可能的权限,而Administrators组帐户,只有有限的一些权限,如附图所示。

这就充分说明,在安全桌面上,只有以SYSTEM权限运行的进程,才可以读取安全桌面上的内容;其他进程呢,哪怕是以Administrators身份运行(够大了吧),还是不行。

所以UAC对话框运行在安全桌面上,真的是安全得很哪!只有SYSTEM运行的进程,才有可能读写UAC对话框的窗口。当然用户本身自然也可以,安全桌面本身也属于WinSta0,可以接受用户键鼠事件。

2. Mark Russinovich说过桌面才是安全边界

还记得盆盆翻译过一篇来自大牛Mark Russinovich的文章《Windows Vista用户帐户控制、PsExec和安全边界》吗?里面就曾经强调过,桌面才是Windows的安全边界,而UAC和IE保护模式都不是安全边界(充其量只是大大提升了安全级别,但并不是安全边界)。

如果理解桌面的ACL,就可以很好地理解桌面是安全边界这句话。

3. 其他桌面呢?

可以用Process Explorer查看其他桌面的安全权限设置情况,其中默认用户桌面\Default的安全权限和WinSta0窗口站完全一样。这没什么,默认用户桌面本来就是继承WinSta0的权限。

发表于 作者 ahpeng | 1 评论

[抢先揭密]Windows Vista为什么不允许两个用户同时登录(远程桌面)?

在写《Windows Vista如何以SYSTEM权限启动进程(3)》时,就在纳闷,为什么Windbg不能转储完整的WinSta0窗口站的安全描述符?为什么会少了登录SID和登录帐户的对应ACE?

盆盆很快发现,原来是我自己搞错了。为了方便,我用远程桌面连接到另外一台实验用Windows Vista机器,这时候由于是远程桌面登录的,拿到的是会话2。但是我在Windbg里检查的却是\Sessions\1\Windows\WindowStation\WinSta0。

也就是说,盆盆实际上是检查的会话1里的WinSta0窗口站,而不是远程桌面里的WinSta0窗口站(会话2)!!

难怪检查出来的结果,发现WinSta0窗口站里居然没有登录SID和Admin的对应ACE!!

1. 完整的WinSta0安全描述符

为了验证这个结果,盆盆重新做实验,这次直接控制台登录(会话1),再查看WinSta0的安全描述符,果然发现完整了,有附图为证!


图中棕色加粗的部分,就是登录会话SID和登录帐户Admin所拥有的ACE,这里可以看到登录会话SID拥有所有可能的权限,而Admin则几乎没有任何访问权限。

问题到这里并没有结束。

为什么会出现先前那篇文章里的错误?从中可以猜测到哪些结论?

2. 为什么只允许一个交互用户登录?

这里盆盆大胆假设Windows Vista(XP)为什么只能允许一个交互用户登录到系统(包括远程桌面)。原来是和WinSta0窗口站的权限有关!

当新的用户登录进来后,原来用户会话里的WinSta0的安全权限会发生变化,登录SID和登录帐户的ACE(访问控制项)会被删除。难怪我们看不到先前登录用户的桌面!

可以在远程桌面的环境里打开Process Explorer,查看一个在先前用户环境里打开的进程(例如Explorer),可以发现其句柄列表里没有WinSta0窗口站,如附图所示。

从图中可以看出,当前的用户桌面,会话2里的Explorer进程句柄表里包含WinSta0窗口站,所以可以和用户进行交互;而先前的登录用户,会话1里的Explorer进程句柄表里,没有WinSta0窗口站,所以虽然这些进程还在运行,但是无法和用户进行交互。

为什么先前的用户会话里的进程没有WinSta0的句柄,现在应该很明白了,因为该会话里的WinSta窗口站对象的ACL定义发生了变化,现在不再授予登录会话SID访问。

这一切看来和WinSta0窗口站的安全权限有关。可见,登录会话、窗口站的概念有多重要了。

知道了这个原因,从理论上,我们可以通过修改先前会话里的WinSta0窗口站的安全权限,来突破同一时刻只能允许一个用户交互登录的限制。但是实际上没有那么简单,盆盆能够想到的,微软肯定早就已经想到了。

网上貌似有通过替换一个文件(termsrv.dll)的方法,让Windows Vista支持多个用户交互登录。如果这个方法能够成功,其原理必然还是和WinSta0窗口站的权限有关。

发表于 作者 ahpeng | 2 评论