Mapear unidade de rede para o usuário SYSTEM no Windows

4

Eu tenho um software que precisa de acesso a arquivos como se eles fossem locais para a máquina, então eu apenas mapeei a unidade de rede como uma letra usando net use . Isso funciona como esperado, no entanto, o software em si é executado como um serviço com a conta de usuário do sistema, isso não é opcional nem configurável. Atualmente tenho a unidade mapeada no usuário do qual eu executei o net use .

Então, minha pergunta é: como mapear uma unidade para que a conta SYSTEM tenha acesso a ela?

Como apontado em esta questão não há como mapear uma unidade para todos os usuários.

Em um caso mais geral, como você monta um local remoto no sistema de arquivos local para todo o sistema (no momento da inicialização está perfeitamente ok), da mesma forma como é feito no Linux.

    
por Javier Mr 14.05.2014 / 16:32

3 respostas

3

Solução simples através do cmd (com admins privs) sem nenhum arquivo batch seria:

schtasks /create /tn "my_mount" /tr "net use V: \hostname\directory /persistent:yes" /sc onstart /RU SYSTEM

seguido por um reinício do seu servidor ou executando:

schtasks /run /tn "my_mount"

EDITAR: usuário alfa_989 suturas following extensão de comando, que eu não testei. Mas ainda pode ser útil para alguém:

schtasks / criar / tn "my_mount" / tr "uso net V: \ nome do host \ diretório / persistente: sim" / sc onstart / SISTEMA RU / RL MAIS ALTO

    
por 16.06.2016 / 18:47
2

Eu tive o mesmo problema em que um Bulk Copy Job (BCP) no SQL Server precisava gravar um arquivo em outro servidor, gerenciado por um grupo diferente na organização.

O truque é obter a unidade mapeada como o usuário que o trabalho BCP está usando. Você mapeia a unidade como uma conta de diretório ativo dedicada que tem permissões para o destino desejado, o que alguns chamam de uma conta de serviço. Eu tive que trabalhar com meu pessoal AD para obter uma configuração. Para descobrir qual conta de usuário está sendo usada pelo BCP, execute este comando em uma janela Consulta do SQL Server:

EXEC xp_cmdshell 'ECHO %USERDOMAIN%\%USERNAME%

Ao mapear a unidade, use whoami no prompt de comando.

No meu caso, não consegui entrar no SQL Server como a conta SYSTEM, então construí um trabalho em lotes que poderia então ser executado pelo Agendador de Tarefas, mas executar como a conta SYSTEM . Eu coloquei comandos no trabalho em lote para gravar os resultados em um arquivo de texto, já que eu não conseguiria vê-lo.

** Trabalho em lote abaixo **

ECHO ON

ECHO This will map the drive, but is being run by task scheduler AS the user SYSTEM

ECHO which should make it accessible to the user SYSTEM

ECHO List the existing drives first.

net use >> c:\Test\SystemNetUseOutput.txt

net use R: \MyRemoteServer\MyDirectory\ /P:Yes /u:MyDomain\MyUsername pa$$word

ECHO the /P switch makes the drive remain after reboot

ECHO List the existing drives with the new mapping

net use >> c:\Test\SystemNetUseOutput.txt

ECHO See what user this batch job ran under

whoami >> c:\Test\SystemNetUseOutput.txt

ECHO need to exit to allow the job to finish

EXIT

** Espero que isso ajude alguém **

    
por 22.10.2014 / 23:40
2

Encontrei esse problema ao tentar usar o CrashPlan para fazer backup de um compartilhamento de rede. Como o serviço do CrashPlan é executado como um usuário SYSTEM , ele não pode acessar compartilhamentos de rede que foram mapeados de contas de usuário. CrashPlan fornece uma solução alternativa em computadores Windows. A solução resolveu o problema para mim e permitiu que o serviço do CrashPlan acessasse meus compartilhamentos de rede. Isso também deve estar relacionado ao seu problema, pois tem a mesma causa raiz.

Artigo do CrashPlan sobre este assunto :
link

Solução alternativa do CrashPlan para Windows :
link

Resumo :

  1. Crie um arquivo em lote que monte sua unidade (inclua o comando net use que você já estava usando).
  2. Use o Agendador de Tarefas para criar uma tarefa que execute automaticamente esse arquivo em lote na inicialização. A tarefa pode ser configurada para ser executada como o usuário SYSTEM .
por 14.05.2014 / 16:39