Posso modificar um ambiente do Windows 7 para permitir que um programa .NET seja sempre executado como Administrador?

6

Estamos prestes a lançar várias centenas de novas máquinas com o Windows 7 x64, com o SO instalado por meio do WDS . no momento em que podemos fazer alterações e sysprep eles na construção.

O problema é uma aplicação .NET que escrevemos anos atrás e que gera um shell de comando modificado. Esse shell executa um aplicativo DataFlex (DataFlex 3.2 dfruncon) que precisa ser executado com permissões elevadas.

Não concedemos aos usuários direitos gerais de administrador.

Existe um mecanismo em que podemos pré-permitir que nosso aplicativo .NET seja executado como administrador para que o controle de comando seja executado como Administrador?

Estou ciente das alterações que posso fazer no arquivo app.manifest para exigir que o programa seja executado como Administrador. Eu não estou ciente de como eu posso (como um administrador) configurar a máquina para permitir que isso aconteça sem dar ao usuário mais direitos ou credenciais do que eu gostaria que eles tivessem. Existe algo equivalente a CasPol para permitir que eu especifique que um determinado arquivo EXE pode ser executado como administrador? Se não, como eu iria descobrir exatamente quais direitos o usuário precisa para permitir que o dfruncon do DataFlex seja executado?

    
por Andiih 30.12.2011 / 13:26

2 respostas

4

O que você pode fazer é:

  1. Crie uma tarefa agendada e configure-a para ser executada com privilégios elevados como uma conta de administrador
  2. programe para nunca executar e, em seguida, coloque um atalho para executar a tarefa a partir do dekstop de usuários padrão.

Dessa forma, o usuário pode executar o programa específico com um token de administrador, mas nenhum outro (se os usuários tentarem modificar a tarefa agendada, eles não poderão aplicar as alterações sem as credenciais de administrador).

Existe um guia explicativo passo a passo nos fóruns do win7: link

    
por 30.12.2011 / 15:29
4

Uma abordagem melhor seria determinar quais recursos seu aplicativo personalizado e o aplicativo Dataflex estão acessando e conceder as permissões de Autenticar Usuários a esses recursos. Você pode até mesmo conceder acesso usando a diretiva de grupo. Isso não é específico do Dataflex, essa é a abordagem que deve ser executada com o todo aplicativo.

Os recursos são normalmente arquivos, pastas e chaves de registro. Com menos frequência, também pode ser necessário executar funções especiais, como criar seções globais na memória, que é um direito do Windows que pode ser concedido por meio da diretiva de grupo.

Você pode determinar os recursos que são acessados usando o Process Monitor do SysInternals.

Se você achar que um aplicativo precisa ter acesso de gravação a uma pasta e essa pasta tiver executáveis que você prefere que o usuário não tenha acesso de gravação, um truque é deserdar o acesso dos arquivos executáveis da pasta pai e conceder usuários autenticados somente ler e executar a esses arquivos.

    
por 30.12.2011 / 17:36