无法将文件从资源管理器拖到Windows 8上以管理员身份运行的Notepad ++中


22

如果我以管理员身份运行Notepad ++,则无法将文件从资源管理器拖到该文件上(它们会被“停止”光标拒绝),并且如果我尝试使用资源管理器扩展名,请右键单击“用记事本++编辑”,这会引发错误。

使用记事本++“打开”对话框打开文件,或者甚至在资源管理器中双击它们都可以正常工作。(请注意,双击不是一种解决方案,因为我要打开的文件很少是默认的Notepad ++)

我已将UAC设置为“从不通知”。

使用禁用了UAC“管理员批准模式”的黑客程序可以解决此问题,但会终止使用Metro应用程序的功能。


为什么要以管理员身份运行Notepad ++?
kinokijuf 2014年

1
我已经不在了,但在提出问题时,是轻松地编辑主机文件(这是我现在不需要经常触摸的内容)
Luke F

1
更新插件后,它也以管理员身份运行。我之前在这里结束,然后查看了窗口标题栏。是的管理员。修复:只需重新启动即可。
CAD bloke'July

Answers:


31

完整性较低的进程无法将消息传递给较高级别的进程。

从Windows Vista开始,您会发现所有提升过程都是这种情况。

进程在某些安全访问令牌和完整性级别下运行。资源管理器以中等完整性级别在用户帐户的受限令牌下运行,并且当您通过以管理员身份运行来提升流程时,它将使用具有较高完整性级别的另一个不受限制的安全令牌。

Vista附带进行的安全性改革的一部分是用户界面特权隔离,它可以防止较低级别的进程将消息发送到较高级别的进程(因为消息可能是恶意的,例如在粉碎攻击中)。

因此,在这种情况下,Windows将不允许资源管理器将拖放消息发送到Notepad ++(它实际上返回“成功”,但会丢弃消息)。

有关访问令牌,完整性级别和UIPI的更多详细信息,请参阅Windows完整性机制设计


7

Louis解释了为什么您不能从非管理模式的资源管理器拖到管理模式的Notepad ++中,而magicandre告诉您如何通过在管理模式下运行资源管理器来解决它。

我自己遇到类似的问题后,我不得不进一步问:为什么首先要在管理员模式下运行Notepad ++?就我而言,这是因为我喜欢使用的HTML Tidy插件必须更新Notepad ++的Program Files文件夹中的cfg文件才能正常工作。Windows 8疯狂地锁定了程序文件。

所以最后,我按如下所示解锁了Notepad ++程序文件文件夹:http : //forums.auran.com/trainz/entry.php?115- Removing-the-security-restrictions-from-a-folder-in-the -程序文件文件夹

然后,我可以以普通用户身份愉快地运行Notepad ++,然后可以从非管理员模式浏览器拖放到非管理员模式Notepad ++中,或者再次使用快捷菜单。

希望这对您有所帮助。


1
当我遇到这个问题时,这是我一直在寻找的真正答案。我不知道发生了什么,但是直到两天前的最新更新,NPP才变得如此。
darkpbj 2014年

作为软件开发人员和系统管理员,我经常不得不使用不同的权限/所有权来编辑文件。以管理员身份运行我的编辑器比在修改权限然后在重置之后方便得多。
亚历克斯·麦克米伦


2

在大多数情况下(您具有普通用户的读取(但没有写)访问权限)是比以管理员身份运行Notepad ++更好的方法:

安装插件“另存为管理员”(请参阅Notepad ++插件管理器)。

现在,以普通用户身份运行Notepad ++并打开要编辑的文件。当您具有读取访问权限时,它将正常工作。

现在,每次您尝试保存文件时,您都没有写权限,“另存为管理员”插件将提升保存权限。因此,如果现在执行save命令,将显示UAC对话框,如果在该对话框上选择“是”,则将使用管理员权限保存文件。


1

另一个解决方法是使用Notepad ++的独立(压缩)版本而不是安装程序版本。

  1. 卸载/删除记事本++
  2. 转到Notepad ++下载页面并下载.zip或.7z软件包(不是exe)
  3. 将该软件包的内容解压缩到用户目录中的某个位置

缺点是,您当然需要创建自己的快捷方式,并根据需要手动更新默认的文本编辑器。除非您自己在其中记事本,否则您将没有记事本的上下文菜单条目。


0

最多很难更改由高级安装程序服务安装的高级任务的权限。Windows 7 x64。我采取了建议的方法。.我使用控制面板»程序和功能来卸载Notepad ++。

然后转到Notepad ++网站并下载没有安装程序压缩版本

然后使用Windows资源管理器将所有文件提取到该路径C:\Program Files (x86)\Notepad++-与原始安装程序路径相同。

然后,我在“开始”菜单的“ 所有程序”部分中创建了一个文件夹组。

  • 点击开始菜单
  • 右键单击所有程序
  • 打开所有用户
  • 点击程序
  • 右键单击,新建»文件夹,输入Notepad++

然后,我使用了另一个“资源管理器”窗口来创建的快捷方式notepad++.exe,然后将该快捷方式拖放到,并使用“ 继续”C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Notepad++回答“ 目标文件夹访问被拒绝”对话框。

接下来,禁用Notepad ++上插件的自动更新功能,就像如今的大多数软件一样,“更新”通常是“敌对的”,并具有一定程度的风险。对于一个应用程序,我更喜欢知道更新何时发生..它不是一项服务,因此信任开发人员正确测试其代码的风险更大。

转到»插件»插件管理器»显示插件»设置(左下角),取消选中启动时通知插件更新

现在,我可以再次拖放。

现在,Notepad ++进程不再作为提升的任务运行,并且其他应用程序(如资源管理器)被允许在打开的Notepad ++程序窗口中拖放文件以打开它们。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.