Не удается перетащить файлы из Проводника в Notepad ++, работающий от имени администратора в Windows 8


22

Если у меня Notepad ++ работает от имени администратора, я не могу перетащить в него файлы из проводника (они отклоняются курсором «стоп»), и если я пытаюсь использовать расширение проводника, щелкните правой кнопкой мыши «Редактировать с помощью Notepad ++» и вы получите ошибку ,

Открытие файлов с помощью диалогового окна «Открыть» в Notepad ++ или даже двойной щелчок по ним в Проводнике работает как следует. (Обратите внимание, что двойной щелчок не является решением, так как очень немногие файлы, которые я хочу открыть, по умолчанию являются Notepad ++)

У меня UAC установлен на «никогда не уведомлять».

Использование взлома, когда UAC «режим одобрения администратором» отключен, устраняет проблему, но лишает возможности использовать приложения Metro.


Почему вы используете Notepad ++ в качестве администратора?
киноюф

1
Я больше не нахожусь, но на момент вопроса это было легко отредактировать файл hosts (то, что мне сейчас не нужно трогать, как часто)
Luke F

1
Он также запускается как администратор после обновления плагина. Я оказался здесь раньше, а потом посмотрел на строку заголовка окна. Да Админ. Исправлено: просто перезапустите его.
CAD bloke

Ответы:


31

Процессы с более низким уровнем целостности не могут передавать сообщения более высоким уровням.

Вы обнаружите, что это относится к любому процессу с повышенными правами, начиная с Windows Vista и выше.

Процессы работают с определенными токенами доступа и уровнями целостности. Проводник работает под ограниченным токеном вашей учетной записи пользователя со средним уровнем целостности, и когда вы повышаете уровень процесса, работая от имени администратора, он будет использовать другой неограниченный токен безопасности с высоким уровнем целостности.

Частью перестройки безопасности, которая пришла с Vista, была Изоляция привилегий пользовательского интерфейса , которая не позволяет процессам более низкого уровня отправлять сообщения в высокоуровневые (поскольку сообщения могут быть вредоносными, как в случае атак с разбивкой).

Таким образом, в этом случае Windows не позволит Explorer отправлять сообщение перетаскивания в Notepad ++ (на самом деле он возвращает «успех», но удаляет сообщение).

Более подробную информацию о токенах доступа, уровнях целостности и UIPI см. В разделе « Механизм целостности Windows» .


7

Луи объяснил, почему вы не можете перетащить из проводника не в режиме администратора в Notepad ++ в режиме администратора, а magicandre рассказал вам, как обойти это, запустив проводник в режиме администратора.

После того, как я сам столкнулся с подобной проблемой, я должен спросить: почему вы в первую очередь используете Notepad ++ в режиме администратора? В моем случае это было потому, что плагин HTML Tidy, который мне нравится использовать, должен обновлять файл cfg в папке Program Files программы Notepad ++; а в Windows 8 программные файлы заблокированы как сумасшедшие.

В итоге я разблокировал папку «Программные файлы Notepad ++», как показано здесь: http://forums.auran.com/trainz/entry.php?115-Removing-the-security-restrictions-from-a-folder-in-the -Программа-Files папка

Тогда я мог бы с удовольствием запустить Notepad ++ как обычный пользователь, а затем я мог перетаскивать или снова использовать удобное контекстное меню из проводника без режима администратора в Notepad ++ без режима администратора.

Я надеюсь, что это поможет вам в некотором роде.


1
Когда я столкнулся с этой проблемой, это был реальный ответ, который я искал. Я не знаю, что случилось, но АЭС так не получалось до самого последнего обновления пару дней назад.
darkpbj

Как разработчик программного обеспечения и системный администратор, мне часто приходится редактировать файлы с разными правами доступа. Запускать мой редактор от имени администратора гораздо удобнее, чем изменять разрешения до и сбрасывать после.
Алекс Макмиллан


2

В большинстве случаев (когда у вас есть права на чтение, но не на запись от имени обычного пользователя), есть лучший подход, чем запуск Notepad ++ с правами администратора:

Установите плагин «Сохранить как администратор» (см. Менеджер плагинов Notepad ++).

Теперь просто запустите Notepad ++ от имени обычного пользователя и откройте файлы, которые вы хотите редактировать. Поскольку у вас есть доступ для чтения, это будет работать без проблем.

Теперь каждый раз, когда вы пытаетесь сохранить файл, у которого нет разрешения на запись, плагин «Сохранить как администратор» будет повышать привилегии для сохранения. Поэтому, если вы сейчас выполните команду сохранения, появится диалоговое окно UAC, и если вы выберите «да» в этом диалоговом окне, файл будет сохранен с правами администратора.


1

Другим обходным решением является использование автономной (заархивированной) версии Notepad ++ вместо версии установщика.

  1. Удалить / Удалить Блокнот ++
  2. Перейдите на страницу загрузки Notepad ++ и загрузите пакет .zip или .7z (не exe)
  3. Распакуйте содержимое этого пакета где-нибудь в вашем пользовательском каталоге

Недостатком этого обходного пути является то, что вам, конечно, нужно будет создать свои собственные ярлыки и вручную обновить текстовый редактор по умолчанию, если это необходимо. И у вас не будет пункта контекстного меню для блокнота, если вы сами не взломаете его там.


0

Изменение разрешений для задач с повышенными правами, установленных службой установщиков с повышенными правами, в лучшем случае затруднено. Windows 7 x64. Я выбрал предложенный путь. Я использовал Панель управления »Программы и компоненты для удаления Notepad ++.

Затем зашел на сайт Notepad ++ и скачал архивную версию без инсталлятора .

Затем использовал проводник Windows для извлечения всех файлов по пути C:\Program Files (x86)\Notepad++- так же, как исходный путь установщика.

Затем я создал группу папок в разделе « Все программы » меню «Пуск».

  • Нажмите Пуск меню
  • Щелкните правой кнопкой мыши Все программы
  • Открыть всех пользователей
  • Нажмите Программы
  • Щелкните правой кнопкой мыши, New »Папка , введитеNotepad++

Затем я использовал другое окно Проводника, чтобы создать ярлык для notepad++.exe, затем перетащил этот ярлык в C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Notepad++, отвечая на диалоговое окно « Отказ в доступе к папке назначения» с помощью кнопки «Продолжить» .

Затем отключите функцию AutoUpdate для плагинов на Notepad ++, как и большинство программ в наши дни, «Обновления» часто являются «враждебными» и несут реальную степень риска. Для приложения, которое я предпочитаю знать, когда происходит обновление ... это не сервис, поэтому рискованно доверять разработчикам правильное тестирование их кода.

Перейти »Плагины» Менеджер плагинов »Показать плагины» Настройки (в левом нижнем углу), снимите флажок Уведомлять об обновлениях плагинов при запуске .

Теперь я могу перетащить снова.

Теперь процесс Notepad ++ не запускается как задача с повышенными правами, и другим приложениям, таким как Explorer, разрешено перетаскивать файлы в открытое окно программы Notepad ++, чтобы открывать их.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.