Executar exe de compartilhamento de rede, com / sem privilégios de administrador?

1

Estou tentando executar um exe Win7 que está em um compartilhamento de rede (um servidor CIFS do Linux). O compartilhamento foi criado por um não-administrador (consulte problema do Windows 7 para acessar a pasta compartilhada ). Eu posso ler e editar e gravar arquivos na pasta que contém o exe. Eu posso ler (ou seja, copiar) o exe.

Mas quando tento executar o exe, ou clicando duas vezes e dando OK no diálogo do UAC, ou clicando com o botão direito em "Executar como administrador", obtenho:

Windows cannot access the specified device, path, or file. You may not have the appropriate permissions to access the item.

Devo copiar o exe para o disco local antes de poder executá-lo?

Eu segui a receita na resposta (ainda não aceita)

(Estrategicamente relacionado: Não é possível executar o .exe da Network Drive .)

    
por Camille Goudeseune 15.09.2015 / 23:07

3 respostas

0

Isso é esperado (embora incomum) comportamento.

Quando você executa um programa a partir de um compartilhamento de rede, isso pode ser feito de algumas maneiras.

  1. O compartilhamento é mapeado para uma unidade de rede: por exemplo, g: - > %código%
  2. 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.

    
por 15.09.2015 / 23:35
1

Você precisa definir o valor EnableLinkedConnections como 1, conforme descrito neste artigo da base de conhecimento:

As unidades mapeadas não estão disponíveis em um prompt elevado quando o UAC está configurado para "Solicitar credenciais" no Windows
link

  1. In Registry Editor, locate and then click the following registry subkey:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System

  2. In the right pane, right-click New, and then click DWORD (32-bit) Value.

  3. Name the new registry entry as EnableLinkedConnections.
  4. Double-click the EnableLinkedConnections registry entry.
  5. In the Edit DWORD Value dialog box, type 1 in the Value data field, and then click OK.
  6. Exit Registry Editor, and then restart the computer.
    
por 16.09.2015 / 06:29
1

Alguns instaladores precisam estar acessíveis por NT AUTHORITY\SYSTEM , mas as unidades de rede são específicas do usuário. EnableLinkedConnections não ajuda neste caso.

Exclua sua unidade de rede existente e mapeie-a novamente no nível do sistema. Para isso, crie uma tarefa agendada com ação: net.exe e argumentos: use z: \host\share\ (forneça a senha, se necessário) e altere a conta para executar essa tarefa em NT AUTHORITY\SYSTEM . /PERSISTENT:yes parece não funcionar, então você precisa agendá-lo para ser executado na inicialização

Depois de executá-lo, todo o sistema verá a unidade de rede. No Windows Explorer, ele será exibido como desconectado, mas funcionará mesmo assim.

    
por 20.07.2016 / 13:21