当记事本运行时,我可以拖/放一个文件来打开它,但它不能保存文件。 当我运行记事本提升保存文件,我不能再拖/打开文件。
我知道将文件从非升级程序拖到升级程序存在安全风险; 然而,当我运行资源pipe理器提升以及,我仍然不能拖/放高记事本。
为什么操作系统不允许两个高级程序通过拖放来交换信息? 我正在认真考虑回到这个使用Windows Server 2003。
编辑:似乎两个提升的程序可以交换信息; 探险家只是没有提升。 一旦资源pipe理器被提升,文件可以从资源pipe理器拖到一个高架的记事本。
无法从资源pipe理器“拖放”到提升的记事本窗口是用户界面特权隔离( UIPI )function的一个难题。 它是在操作系统,以防止较低特权的应用程序发送任意“消息”(在操作系统/应用程序进程间通信的意义上)到另一个更高权限的应用程序。 如果较高特权的应用程序不适当地处理消息,那么对于权限较低的应用程序来说可能会导致较高特权的应用程序代表它执行任意代码(这些types的攻击被称为碎裂攻击,在2002年的论文描述当时Windows版本的攻击方法)。
您可以将它看作有点像“防火墙”,在运行时使用较低的“完整性级别”(非特权级别)和具有较高的完整性级别(提升)的应用程序。
如果您真的想要一个提升的Windows资源pipe理器,请执行以下操作:
资源pipe理器将重新打开高架。
如果您不想禁用UAC,则可以尝试仅禁用UIPI(用户界面特权隔离)。
打开registry并转到: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
添加一个名为EnableUIPI的新DWORD (32-bit) Value ,并将其设置为0 。
重新启动机器,看它是否按照您的要求运行。
这在Vista上是一个问题,我想它也是到了2008年。 基本上你不能运行资源pipe理器提升。 你得到安全选项来做,而且这样做似乎已经奏效了,但是实际上你最终还是会得到一个标准的(非提升的)浏览器窗口,因此你有这个问题。
过去我必须使用的解决方法是在升级的记事本会话中使用保存为资源pipe理器窗口,因为这也被提升了,或者使用提升的命令提示符来创build文件,但是这些都不能解决你的拖动问题,明显下降的问题。 它是一个非常糟糕的bug,已经有一段时间了,我不知道他们为什么不修复它,所以你可以运行一个提升的资源pipe理器实例。
我认为问题在于,当你以pipe理员身份运行程序时,他们仍然与其他所有程序一样运行在同一个窗口工作站中。 资源pipe理器只允许在任何窗口站点运行一次,即explorer.exe的一个实例,所以你不能运行资源pipe理器的升级副本。
对用户访问控制的侵入方面有抱怨的倾向,但是安全性总是要付出代价的。 我必须承认,我在很lesslogin的服务器上closuresUAC,因为我相信自己不要做任何愚蠢的事情。 我确实将UAC留在了terminal服务器上,我非常乐意承受这个小麻烦。
JR
在猜测中,我会说负责编组drag-n-drop所需的细节的代码与其余的UI(包括Explorer)一起运行在未提升的上下文中,所以它不能够访问两个进程之间的pipe道信息。
编辑configuration数据库中的副本,然后将新版本复制到主机上覆盖旧版本(或者如果可以的话,让configuration数据库为您完成所有工作);)
或者,如果你不想升级浏览器,直接从高架记事本打开文件。
编辑系统文件不是一个点击,拖放的东西 – 至less不是我所看到的。 另外也没有太多的问题禁用UACpipe理会议要么你应该只做pipe理工作在服务器无论如何(无论是terminal服务器还是什么)所以当你唯一想做的事情需要提升任何方式为什么要打扰UAC?
UAC并不是一个真正的安全边界,因为应用程序有几种避开它的方法。 这就是为什么你应该正常运行作为一个普通的权利,如果没有提供额外的凭据不可能提升的正常权利的标准用户 – 就像之前引入UAC。
在我看来,UAC引入了一些更智能的友好的runas对话框,它不应该被用来以pipe理员身份运行并且感觉安全。