Não é possível arrastar arquivos do Explorer para o Notepad ++ em execução como administrador no Windows 8

22

Se eu tenho o Notepad ++ em execução como administrador, não consigo arrastar os arquivos do explorer para ele (eles são rejeitados com o cursor 'stop') e se eu tentar usar a extensão do explorer, clique com o botão direito do mouse em 'Edit with Notepad ++', emite um erro .

Abrir os arquivos usando a caixa de diálogo 'Abrir' do Notepad ++ ou até clicar duas vezes neles no Explorer funciona como deveria. (Nota: clicar duas vezes não é uma solução, pois poucos dos arquivos que desejo abrir são padrão para o Notepad ++)

Eu tenho o UAC definido como 'nunca notificar'.

O uso do hack no qual o 'modo de aprovação de administrador' do UAC está desabilitado corrige o problema, mas reduz a capacidade de usar aplicativos Metro.

Luke F
fonte
Por que você está executando o Notepad ++ como administrador?
kinokijuf
1
Eu não sou mais, mas no momento da pergunta era facilmente editar o arquivo hosts (algo que eu não precisa tocar o mais rápido agora)
Luke F
1
Também é executado como administrador depois de atualizar um plugin. Eu acabei aqui antes e depois olhei para a barra de título da janela. Sim Admin. Correção: Apenas reinicie.
CAD bloke

Respostas:

31

Os processos de menor integridade não podem passar mensagens para os de nível superior.

Você descobrirá que esse é o caso de qualquer processo elevado desde o Windows Vista em diante.

Os processos são executados sob certos tokens de acesso de segurança e níveis de integridade. O Explorer é executado no token restrito da sua conta de usuário com um nível de integridade médio e, quando você eleva um processo executando como administrador, ele usa um token de segurança irrestrito diferente, com um alto nível de integridade.

Parte da revisão de segurança que veio com o Vista foi o Isolamento de privilégios da interface do usuário , que impede que processos de nível inferior enviem mensagens para outros de nível superior (porque as mensagens podem ser maliciosas, como no caso de ataques de fragmentação).

Portanto, nesse caso, o Windows não permitirá que o Explorer envie a mensagem de arrastar e soltar para o Notepad ++ (na verdade, retorna "sucesso", mas descarta a mensagem).

Para obter informações mais detalhadas sobre tokens de acesso, níveis de integridade e UIPI, consulte Design do mecanismo de integridade do Windows .

Louis
fonte
7

Louis explicou por que você não pode arrastar do explorador que não é do administrador para o Notepad ++ do modo de administrador, e magicandre disse como contornar isso executando o explorer no modo de administrador.

Depois de enfrentar um problema semelhante, preciso perguntar mais: por que você está executando o Notepad ++ no modo de administrador em primeiro lugar? No meu caso, foi porque o plug-in HTML Tidy que eu gosto de usar precisa atualizar um arquivo cfg na pasta Arquivos de Programas do Notepad ++ para funcionar; e o Windows 8 tem arquivos de programas bloqueados como loucos.

Portanto, no final, desbloquei a pasta Arquivos de programas do Notepad ++, conforme descrito aqui: http://forums.auran.com/trainz/entry.php?115-Removing-the-security-restrictions-from-a-folder-in-the -Program-Files-folder

Então, eu poderia executar o Notepad ++ como um usuário comum e arrastar e soltar ou usar o menu de contexto sempre útil novamente, do explorador que não é do administrador para o Notepad ++ do que não é do administrador.

Espero que isso ajude você de alguma forma.

Ollie J
fonte
1
Quando me deparei com esse problema, esta é a resposta real que eu estava procurando. Não sei o que aconteceu, mas a NPP não ficou assim até a atualização mais recente há alguns dias.
darkpbj
Como desenvolvedor de software e administrador de sistemas, muitas vezes tenho que editar arquivos com permissões / propriedades variadas. Executar o meu editor como administrador é muito mais conveniente do que modificar permissões antes e redefinir depois.
Alex McMillan
2

Na maioria dos casos (em que você tem acesso de leitura, mas não de gravação, como usuário comum), existe uma abordagem melhor do que executar o Notepad ++ como administrador:

Instale o plug-in "Salvar como administrador" (consulte Gerenciador de plugins do Notepad ++).

Agora basta executar o Notepad ++ como um usuário comum e abrir os arquivos que você deseja editar. Como você tem acesso de leitura, isso funcionará sem problemas.

Agora, toda vez que você tenta salvar um arquivo, você não tem permissões de gravação, o plug-in "Salvar como administrador" aumentará os privilégios para salvar. Portanto, se você agora executar o comando salvar, uma caixa de diálogo do UAC será exibida e se você selecionar "sim" nessa caixa de diálogo, o arquivo será salvo usando as permissões de administrador.

Robert
fonte
1

Outra solução alternativa é usar a versão autônoma (zipada) do Notepad ++ em vez da versão do instalador.

  1. Desinstalar / excluir Notepad ++
  2. Vá para a página de download do Notepad ++ e baixe o pacote .zip ou .7z (não o exe)
  3. Descompacte o conteúdo desse pacote em algum lugar dentro do diretório do usuário

A desvantagem desta solução alternativa é que você obviamente precisará criar seus próprios atalhos e atualizar manualmente seu editor de texto padrão, se desejar. E você não terá a entrada do menu de contexto para o bloco de notas, a menos que você a hackear lá.

Muhammet Ilendemli
fonte
0

Alterar as permissões em uma tarefa elevada instalada pelo serviço de instaladores elevados é difícil, na melhor das hipóteses. Windows 7 x64. Peguei o caminho sugerido. Usei o Painel de Controle »Programas e Recursos para desinstalar o Notepad ++.

Em seguida, foi ao site do Notepad ++ e baixou a versão compactada sem instalador .

Em seguida, usou o Windows Explorer para extrair todos os arquivos para o caminho C:\Program Files (x86)\Notepad++- o mesmo que o caminho do instalador original.

Em seguida, criei um grupo de pastas na seção Todos os Programas do menu Iniciar.

  • Clique no menu Iniciar
  • Clique com o botão direito do mouse em Todos os programas.
  • Abrir todos os usuários
  • Clique em Programas
  • Clique com o botão direito do mouse em Novo »Pasta , digiteNotepad++

Em seguida, usei outra janela do Explorer para criar um atalho e notepad++.exe, em seguida, arrastei e soltei esse atalho no C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Notepad++, respondendo à caixa de diálogo Acesso negado à pasta de destino negado com Continuar .

Em seguida, desabilite a função Atualização automática para plug-ins no Notepad ++, como na maioria dos softwares atuais, as "Atualizações" costumam ser "hostis" e apresentam um risco real. Para um aplicativo, prefiro saber quando ocorre uma atualização. Não é um serviço, portanto, é mais arriscado confiar nos desenvolvedores para testar adequadamente seu código.

Vá em »Plug-ins» Gerenciador de plug-ins »Mostrar plug-ins» Configurações (canto inferior esquerdo), desmarque a opção Notificar atualizações de plug-ins na inicialização .

Agora eu posso arrastar e soltar novamente.

Agora, o processo do Notepad ++ não está sendo executado como uma tarefa elevada e outros aplicativos como o Explorer podem arrastar e soltar arquivos na janela aberta do programa Notepad ++ para abri-los.

John Willis
fonte