Independentemente do método que você está usando (pelo menos para aqueles que eu conheço), sempre haverá uma maneira de os usuários mal-intencionados abusarem dele e executarem um programa diferente com sua conta de administrador. Portanto, se você tiver usuários com pouca experiência em tecnologia, tente bloquear a conta de administrador que você usa da melhor maneira possível (ou, se possível, ajuste os locais onde seu programa deseja gravar, para que não administradores possam escrever lá e o programa funciona sem admin-privs; use o ProcMon para encontrá-los).
-
O CPAU pode ser usado para armazenar um programa com credenciais em um arquivo criptografado e executar novamente o programa com as credenciais sem interação do usuário (por exemplo, de um atalho)
- Existe um programa chamado Win-SUDO que pretende emular o SUDO para Windows - mas, na verdade, também armazena apenas as credenciais criptografadas no registro em um local legível pelos usuários que podem usar o Win-SUDO.
- Salvar as credenciais com o comando runas com
savecred
também funciona, mas você também pode executar outros programas como administrador dessa maneira.
- Você também pode criar uma tarefa "programada" que está agendada para ser executada nunca e é executada com as credenciais do usuário, além de iniciá-la manualmente quando necessário; Esse método também armazena as credenciais do usuário que deve executar a tarefa, mas, ao contrário do comando runas, não é tão fácil reutilizar as credenciais para diferentes processos. Observe que não é possível executar um processo interativo dessa maneira no Windows XP (ou pelo menos você não pode interagir com ele).
De qualquer forma, a solução correta é tentar obter o programa original em execução sem privilégios de administrador ou executá-lo como um serviço em segundo plano, caso não seja necessária interação do usuário. Ou tente fazer com que o fornecedor forneça uma versão fixa que funcione sem privilégios de administrador ou use um serviço para as partes que precisam deles.