为什么我无法在 Windows Server 2008 中的记事本中拖放文件进行编辑?

为什么我无法在 Windows Server 2008 中的记事本中拖放文件进行编辑?

运行记事本时,我可以拖放文件来打开它,但无法保存文件。当我运行提升的记事本来保存文件时,我无法再拖放文件来打开它。

我知道将文件从未升级的程序拖拽到升级的程序中存在安全风险;但是,当我也运行升级的资源管理器时,我仍然无法拖放到升级的记事本中。

为什么操作系统不允许两个高级程序通过拖放来交换信息?我正在认真考虑重新使用 Windows Server 2003。

编辑:似乎两个提升权限的程序可以交换信息;只是 Explorer 无法提升权限。一旦 Explorer 提升权限,就可以将文件从 Explorer 拖到提升权限的记事本中。

答案1

无法从资源管理器“拖放”到提升的记事本窗口,这是用户界面特权隔离的表现(用户界面接口) 功能。操作系统中存在此功能,用于防止较低权限的应用程序向另一个较高权限的应用程序发送任意“消息”(在操作系统/应用程序进程间通信的意义上)。如果较高权限的应用程序处理消息不当,较低权限的应用程序可能会导致较高权限的应用程序代表其执行任意代码(这些类型的攻击称为破碎攻击,这是 2002 年的一篇描述当时 Windows 版本中的攻击方法的论文中命名的)。

您可以将其想象成在以较低“完整性级别”(非特权)运行的应用程序与以较高完整性级别(提升)运行的应用程序之间的“防火墙”。

如果你真的想要提升 Windows 资源管理器权限,请执行以下操作:

  • 启动提升的命令提示符并保持其打开。
  • 启动任务管理器,通过转到“进程”选项卡并单击“显示所有用户的进程”来提升它。
  • 使用任务管理器突出显示并终止 Explorer.Exe 的所有实例。
  • 在仍然打开的提升命令提示符窗口中,输入“Explorer”并按<ENTER>。

Explorer 将重新打开提升。

答案2

如果您不想禁用 UAC,您可以尝试禁用 UIPI(用户界面特权隔离)。

打开 regedit 并转到:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System

添加一个新的DWORD (32-bit) Value名称EnableUIPI并将其设置为0

重新启动机器并查看它是否按照您希望的方式运行。

答案3

这是 Vista 上的问题,我猜它也出现在了 Server 2008 上。基本上,您无法以提升权限运行 Explorer。您可以使用安全选项来执行此操作,并且这样做似乎有效,但实际上您最终仍会得到一个标准(非提升权限)Explorer 窗口,这就是您遇到的问题。

我过去不得不使用的解决方法是,要么在提升的记事本会话中使用另存为资源管理器窗口,因为这也是提升的,要么使用提升的命令提示符来创建文件,但显然这些都无法解决您的拖放问题。这是一个相当糟糕的错误,已经存在了一段时间,我不知道他们为什么不修复它,这样您就可以运行提升的资源管理器实例。

答案4

我猜测,负责整理拖放所需详细信息的代码与 UI 的其余部分(包括 Explorer)一起在未提升的上下文中运行,因此它将无法访问两个进程之间的管道信息。

相关内容