Conseguindo o console2 funcionar bem com o UAC

18

Eu gostaria que o console2 funcionasse bem com o UAC

Problemas específicos que gostaria de abordar:

  • Se eu começar não elevado, tenha um jeito de elevar enquanto estiver correndo. Seria especialmente bom se eu pudesse elevar as guias individuais
  • Gostaria de obter uma coloração diferente para admin / não-admin, semelhante a: este link . Basicamente, se eu conseguir que o console execute um comando na inicialização (semelhante ao valor de registro HKLM \ Software \ Microsoft \ Command Processor \ AutoRun), isso é tudo que eu preciso

Como faço para que isso funcione? Eu teria que modificar o código-fonte para que isso funcionasse, ou posso usar configurações de abas / hacks diferentes com executáveis shell?

Estou usando o Windows 7, embora imagino que qualquer solução de trabalho também funcione no Vista.

    
por Merlyn Morgan-Graham 01.09.2010 / 08:01

3 respostas

6

Você quer tentar ConEmu ? Eu sou um autor deste emulador de console. Você pode executar as guias selecionadas como elevadas ou sob as credenciais especificadas. E você pode especificar uma paleta diferente para consoles elevados (ou aplicativos especificados).

    
por 11.06.2012 / 18:30
4

Eu resolvi parte disso.

I would like to get different coloring for admin/non-admin

Por algum motivo, o bcdedit.exe não está aparecendo no diretório system32 ao executar dentro do Console2 (Não tem certeza do porquê?). Então, eu tive que encontrar outro comando em vez de usar o que eu encontrei em o link na minha pergunta . Eu encontrei outro comando "do-nothing" que me permite diferenciar entre admin / não-admin, que é visível no Console2.

No Console2, eu defino a opção shell para:

%ComSpec% /k secedit /validate %ComSpec:cmd.exe=%ieuinit.inf >nul 2>nul && (color FC && title ADMIN) || (color 07 && title NONADMIN)

Em relação a essa pergunta ...

If I start non-elevated, have a way to elevate while running. It'd be especially nice if I could elevate individual tabs

Já há um recurso planejado e solicitações de recursos relacionadas.

Você não pode contornar isso neste momento. Você não pode iniciar o aplicativo como LUA e simplesmente elevar prompts específicos, porque o Console2 não pode incluir aplicativos com acesso de nível superior. Só funcionará ao contrário. Eu acho que isso exigiria que o programa fosse executado de forma elevada, mas inicie por meio de um processo não elevado, para que ele possa ajustar e iniciar um processo não elevado. Às vezes, isso é chamado de um bootstrap .

Eu tentei o PsExec e não funcionou corretamente. Ele removeu alguns direitos de administrador, mas ainda estava usando um token elevado.

Basicamente, não será possível obter consoles elevados e de LUA nas guias da mesma sessão do Console2, sem uma alteração de fonte. Mas você pode simplesmente clicar no ícone da barra de tarefas ou no atalho com Ctrl + Shift + Click para iniciar como administrador em uma sessão separada.

Editar: descobri que, se você estiver usando o ansicon junto com uma linha de comando ferramenta que produz cores (como git ), então isso será um pouco quebrado. Experimente este comando:

%ComSpec:cmd.exe=%secedit.exe /validate %ComSpec:cmd.exe=%ieuinit.inf >nul 2>nul && (color FC && title ADMIN) || (color && title NONADMIN)

Se você estiver no modo de administrador, a cor vermelha substituirá as cores que o comando gera, mas não há uma maneira fácil de corrigir isso. No entanto, acho que você não deveria estar fazendo muito trabalho no modo de administração de qualquer maneira. Daí o UAC e, portanto, as cores especiais que estamos adicionando.

    
por 01.09.2010 / 11:54
0

Se você estiver disposto a lidar com um pop-up do UAC sempre que criar uma guia, vá para Editar > Configurações > Guias, na seção Shell, selecione Executar como usuário, em seguida, insira um nome de usuário e, agora, um pop-up aparecerá e você poderá alterar o nome. Se você é um administrador e login, ele será elevado; se você é padrão e login, será padrão :) Espero que ajude.

    
por 09.02.2013 / 04:07

Tags