Isso é esperado (embora incomum) comportamento.
Quando você executa um programa a partir de um compartilhamento de rede, isso pode ser feito de algumas maneiras.
- O compartilhamento é mapeado para uma unidade de rede: por exemplo,
g:
- > %código% - O compartilhamento é acessado diretamente pelo compartilhamento:
\server\share
O primeiro já pode causar um problema quando você executa um programa como Administrador e eu explicarei isso abaixo.
O que acontece quando eu executo um programa como administrador?
Quando você executa um programa como administrador, um novo ambiente é criado e o perfil para Administrador é carregado. Embora use os direitos que seu usuário possui, obviamente tem direitos adicionais para o usuário administrador. Como um conceito, qualquer mapeamento para uma unidade de rede não é criado e, portanto, seu usuário Administrador não possui nenhum mapeamento de rede adicional presente em seu perfil, portanto, o g: não existe.
É possível até mesmo se as configurações de segurança no compartilhamento forem muito restritas, o usuário administrador também não tem permissão.
Como solucionar problemas e superar o problema?
Obviamente, você pode simplesmente copiar o arquivo localmente e executá-lo, mas vamos assumir que você não quer fazer isso.
Você pode iniciar um prompt de comando como administrador primeiro. De lá, digite o seguinte comando:
net use g: \server\share
Substitua a unidade e compartilhe para que correspondam ao compartilhamento existente.
Enquanto esta janela do prompt de comando estiver aberta, você poderá executar o executável como administrador e ele funcionará com segurança.
Se o seu usuário não tiver direitos sobre o \server\share
, o uso da rede falhará com um erro informando exatamente isso, para que você saiba onde está esse problema.
Se os direitos forem bons, você pode alternativamente acessar o executável acessando \server\share
e executando o executável como administrador. Isso elimina o requisito de ter um compartilhamento de rede primeiro em um ambiente diferente.