Executar aplicativo em qualquer usuário entrar / efetuar logon com privilégios elevados

1

Estou tentando executar um aplicativo em qualquer login de usuário (ou conexão de sessão, seja local ou remoto) com privilégios elevados, mas sem o prompt do UAC. Quando um novo usuário é adicionado, o aplicativo também deve ser executado nos seus sinais, sem configuração adicional.

Eu configurei a máquina do Hyper-V com o Windows 10 Enterprise v.1709 para fins de teste. Nela eu tenho a conta principal (referenciada como "Admin"), que está no grupo Administradores, e uma conta (referenciada como "Usuário") que está somente no grupo Usuários.

Eu criei uma aplicação WPF simples que mostra o usuário atual e se ele tem privilégios de administrador. A aplicação final também será o WPF.

Eu usarei o WiX para criar o instalador do meu pacote de aplicativos (aplicativo mencionado acima, serviço do Windows, talvez algo mais). O comportamento do título deve ser definido automaticamente durante a instalação. Na instalação, posso fazer o que quiser, sendo limitado apenas pelos recursos do WiX, mas ele permite que eu execute o aplicativo personalizado (C #) durante a configuração, portanto, acho que não há restrições. A instalação será executada a partir da conta com privilégios de administrador.

Abaixo está o que eu tentei e qual foi o resultado:

App em C: \ ProgramData \ Microsoft \ Windows \ Menu Iniciar \ Programas \ StartUp

  • "Executar este programa como administrador" não verificado

    Admin: Inicia, sem privilégios de administrador

    Usuário: Inicia, sem privilégios de administrador

  • "Executar este programa como administrador" verificado para todos os usuários

    Admin: não inicia

    Usuário: não inicia

Entrada em HKLM \ Software \ Microsoft \ Windows \ CurrentVersion \ Run

  • "Executar este programa como administrador" não verificado

    Admin: Inicia, sem privilégios de administrador

    Usuário: Inicia, sem privilégios de administrador

  • "Executar este programa como administrador" verificado para todos os usuários

    Admin: não inicia

    Usuário: não inicia

Agendador de Tarefas, gatilho "Ao fazer logon de qualquer usuário"

  • Nenhuma outra opção

    Admin: não inicia

    Usuário: não inicia

  • "Executar com privilégios mais altos" marcado

    Admin: Inicia, privilégios de administrador

    Usuário: não inicia

  • "Executar este programa como administrador" verificado para todos os usuários

    Admin: não inicia

    Usuário: não inicia

  • "Executar este programa como administrador" verificado para todos os usuários, "Executar com privilégios mais altos" marcado

    Admin: Inicia, privilégios de administrador

    Usuário: não inicia

Como isso pode ser feito? O Visualizador de Eventos parece não registrar nenhuma informação específica quando o aplicativo não é executado. Deveria estar lá ou esses registros podem ser colocados em outro lugar? Onde então?

Target: Windows 8+, Server 2012 +

    
por Mars 18.10.2018 / 16:32

1 resposta

3

Se você precisar de uma GUI, a maneira correta de lidar com isso é ter um aplicativo de GUI e um serviço de sistema separado. O serviço faz o trabalho real e a GUI apenas passa comandos para ele. A representação pode ser usada para permitir que o serviço atue como o usuário.

Se a única razão pela qual você precisa de acesso de administrador é gravar em uma chave HKLM, o acesso de administrador é a maneira errada de fazer isso. Em seu instalador, crie a chave do Registro e altere a ACL na chave para que os usuários tenham acesso de gravação. Não há direitos de administrador necessários para executar o aplicativo dessa maneira.

    
por 18.10.2018 / 19:27