Tenho uma situação aqui e espero que você possa me ajudar. Tenho um banco de dados em execução em um Windows Server 2012 R2 com uma conta de usuário específica. A mesma conta de usuário está executando um serviço do Windows. Este serviço faz algum trabalho e algumas atualizações no banco de dados. Isso funciona muito bem até agora.
Agora este serviço terá que executar um processo externo em algum momento. E eu faço isso com ProcessStartInfo
And Process.Start
. O que dá a seguinte exceção:
System.ComponentModel.Win32Exception (0x80004005): O acesso é negado em System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo) em System.Diagnostics.Process.Start() em System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
De acordo com issoresposta stackoverflowTenho que adicionar este usuário (usuário do Active Directory) ao servidor. Do jeito que está agora, o usuário não tem acesso ao servidor.
E na verdade quero manter assim e apenas dar ao usuário acesso para iniciar processos (programas) sem ter acesso ao servidor.
Isso é possível ou estou no caminho errado?
Painel de controle >> Contas de usuário >> Gerenciar contas de usuário >> Adicionar... provavelmente fará o trabalho, mas não tenho ideia de qual nível de acesso devo escolher na lista de níveis de acesso.
Responder1
Ok, acho que a exceção é um pouco enganadora. Parecia que o usuário não tinha permissão para executar o aplicativo, mas o verdadeiro problema era que o usuário não tinha acesso ao diretório onde o aplicativo estava localizado.
- Alterar as configurações de segurança da pasta para permitir
Read & Execute
direitos ao usuário resolverá esse problema.
Desta forma não há necessidade de adicionar o usuário ao servidor.