Como executo um arquivo de lote em uma rede local como Administrador? (Vista)

2

Eu tenho alguns arquivos em lote que devem ser executados como administrador. Eu posso fazer isso se eles estiverem na minha máquina, mas quando eu colocá-los na rede e, em seguida, tentar executá-los como administrador, o prompt de comando simplesmente não mostra nenhuma saída e termina, aparentemente sem executar qualquer um dos códigos. Quando eu executo os arquivos em lote da rede normalmente, eu pelo menos recebo um monte de mensagens de erro dizendo que o acesso é negado.

Alguma idéia de como corrigir esse comportamento?

Estou executando esses arquivos em lote via atalho e os atalhos não usam caminhos UNC. Eu também configurei o atalho para ser executado como Administrador.

    
por Paul Williams 16.06.2009 / 18:22

6 respostas

3

Os mapeamentos de unidade de rede existem por sessão de usuário, portanto, quando seu atalho é executado no contexto de segurança do administrador, não existem mapeamentos de unidade.

Tente chamar o script em lote no seu atalho via UNC, em vez de fazer referência a uma letra de unidade.

    
por 16.06.2009 / 18:41
1

Eu estou supondo que as unidades estão mapeadas? Os atalhos não salvam credenciais dentro deles, isso não está dentro de suas capacidades. Se a sua rede estiver em um domínio, você pode fazer o atalho usar o runas / noprofile / user: Administrator {Shortcut} Isso solicitará sua senha toda vez, mas garantirá que ela seja executada como administrador.

A outra opção é usar psexec \ {computer} -s -c {arquivo em lote}, que copiará o arquivo em lote para o computador remoto e o executará como a conta do sistema. Você tem que ter privilégios administrativos na máquina remota para usar o psexec, ou você pode especificar um usuário / passe que use.

Mais informações: runas: link psexec: link

    
por 16.06.2009 / 18:31
1

Cooper no serverfault respondeu à minha pergunta:

Os mapeamentos de unidade de rede são salvos por sessão, portanto, quando seu atalho é executado no contexto de segurança do administrador, não existem mapeamentos de unidade (a menos que o administrador tenha uma sessão atual, por meio de outras runas ou por meio de uma sessão atual da área de trabalho remota).

Tente chamar o script em lote no seu atalho via UNC, em vez de fazer referência a uma letra de unidade.

    
por 16.06.2009 / 18:48
0

Não sei bem o que você está perguntando.

No entanto:

runas / user: mymachine \ administrador cmd

Geralmente é a maneira que você quer fazer isso (se você ainda não é um administrador). Você também pode precisar certificar-se de que está especificando:

runas / user: mydomain \ mydomainadmin cmd

como o administrador local pode não ter permissão para o recurso que você está tentando acessar.

Também ocorreu a mim que seus arquivos de lote podem não estar esperando nomes UNC como \server\path\filename.txt , eles podem estar esperando apenas drive:\path\filename.txt . Você precisará ter certeza de que eles não estão assumindo que qualquer informação de caminho estará em um formato específico.

    
por 15.06.2009 / 22:34
0

você também pode tentar criar atalhos dos arquivos em lote e, em seguida, marque a opção "Executar como administrador" para o atalhos (propriedades avançadas) e executá-los se é possível. Funciona, mas eu recomendo usar 'runas' ...

    
por 15.06.2009 / 22:37
0

Como mencionado na resposta anterior e no comentário acima, eu já havia colocado essa questão no serverfault. Migrá-lo aqui também simplesmente criou uma duplicata. Se alguém que ler isso tiver a capacidade de excluir perguntas, exclua esta.

    
por 16.06.2009 / 21:23