Como posso definir um programa para ser executado como Admin ao abrir do arquivo?

4

Ok, eu preciso entrar um pouco no essencial do registro, então aqui está o que eu tenho e o que eu quero.

Estou usando um pequeno suplemento do Word que converte letras latinas em cirílicas, transliteração direta. Agora, esse complemento deve ser um pouco menos do que idealmente compatível, pois aumenta o tempo de inicialização do Word, além de aumentar massivamente o tempo de fechamento, paralisando por 15 segundos antes de finalmente ser fechado. Outras vezes também mexe com o template normal.dot de alguma forma, perguntando se alguma mudança deve ser salva ... bem, eu posso consertar tudo isso quando eu executo o Word como Admin. Dado que não bastava simplesmente executar como Admin a partir de configurações de compabilidade, eu esbarrei no Invoker através do Application Compatibility Toolkit.

Agora é aqui que está tudo errado - quando eu inicio o Word como autônomo primeiro e, em seguida, abro um arquivo de dentro dele, é tudo inchado, sem falhas, atrasos ou solicitações desordenadas. No entanto, se eu começar a palavra de um determinado arquivo através do explorador, ele será executado sem os privilégios de administrador. Mesmo se eu abrir um documento por meio de duplo clique enquanto a instância elevada já está em execução, isso abre uma instância não administrativa.

Agora eu fui e adicionei uma entrada de shell que me dá a opção de clicar com o botão direito de abrir um arquivo de palavras como Admin, mas prefiro que ele seja executado através do clique duplo padrão.

Então, o que eu quero é direitos elevados de administrador ao abrir diretamente do arquivo por meio do doubleclick antigo comum sem depender de extensões de shell. Onde preciso preciso cavar no registro para fazer essa mágica acontecer?

    
por Dunfisch 05.12.2016 / 12:44

1 resposta

0

O que parece até agora que você teria que fazer é ...

1) Encontre uma maneira para carregar o programa como administrador ...
2) Associe a extensão do programa ao comando anterior.

1) O comando seria parecido com powershell -Command "Start-Process 'word.exe' %1 -Verb runAs" .
2) Isso pode ser feito clicando com o botão direito do mouse no arquivo e alterando o programa associado ou indo para o painel de controle e alterando-o para lá. Tenho certeza de que há mais maneiras de fazer isso.

Agora, tudo bem, mas aparentemente o Windows não quer mais do que o nome do programa (para que os argumentos precisem ser removidos). Isso pode ser resolvido com a criação de um arquivo .bat que funcione como um programa, use um nome de arquivo como argumento e passe-o para o Powershell.

Em seguida, o arquivo bat é apenas este comando powershell -Command "Start-Process 'word.exe' %1 -Verb runAs" . Agora, tudo o que resta é associar a extensão que você quer com este arquivo bat e ter nele.

Aviso: Por um segundo antes do prompt do UAC aparecer, você verá o carregamento do prompt de comando para executar o arquivo em lote. Depois de aceitar o prompt do UAC, o prompt de comando desaparecerá e o Windows Power Shell executará o programa com privilégios administrativos.

Estas são algumas poucas imagens que considerei úteis para configurar este sistema.

    
por 08.12.2016 / 17:00