Introdução:
Eu tenho um script que copia alguns dados do servidor local (Servidor A) para outro servidor (Servidor B) através de um caminho UNC, o compartilhamento no Servidor B foi criado para um disco rígido externo que é alterado todos os dias, depois que o HDD externo é trocado, o novo HDD é montado usando o comando mountvol, a letra atribuída é a mesma, mas como você já deve saber, o nome do volume de cada HDD é diferente.
O problema como eu entendi (passo a passo):
Se eu abrir o Explorer no Servidor B e ir para o caminho UNC, o que significa que no Servidor A há uma sessão do Servidor B para o meu (Usuário X), no cmd eu executo usando outra conta (Usuário Y) por exemplo:
dir \path"
e eu vejo os arquivos, então, neste ponto, há duas sessões do mesmo computador e usuários diferentes.
Curiosity: a sessão do usuário Y permanecerá até que na linha de comando você escreva outro comando ou a janela cmd perderá o foco - em vez de fechar a sessão logo após o comando dir ser concluído.
Com a curiosidade acima, a segunda sessão do usuário Y pode ser ignorada nesse caso, isso nos deixa uma sessão no servidor A para o usuário X
Eu vou para o Servidor B, desmonto o HDD usando o mountvol (também pode ser feito no Gerenciamento do Computador), troco o HDD e depois montei o novo HDD.
Eu volto para o servidor A, na janela do cmd eu executo novamente o comando DIR com qualquer usuário da conta X ou Y, e fico:
The system cannot find the file specified.
Se eu for para a janela do explorador aberto e atualizar a janela, os arquivos também não aparecerão.
- Encontrei na internet que depois de reiniciar o processo do explorer no Servidor B, os arquivos compartilhados ficam visíveis novamente, ou seja, excluindo as sessões no Servidor A (todas as sessões?), outro truque era apenas excluir a sessão no Servidor B.
Solução possível - > Eu quero sua ajuda aqui:)
Como o script (script em lote) é automático e não quero verificar se há alguma sessão de bloqueio do Servidor B no Servidor A, gostaria de forçar o encerramento de todas as sessões de suspensão de um determinado compartilhamento em Servidor A MAS gostaria de fazê-lo a partir do meu script no Servidor B, o "net sess (ion (s))" é para fins locais.
Se você tiver alguma outra sugestão, com isso eu quero dizer outra possível solução, por favor me avise. Obrigado.
Informações técnicas:
Server A: Windows Server 2008 R2 Enterprise SP1
Server B: Windows Server 2003 Enterprise SP2
Notas:
Me corrija se eu estiver errado, mas acho que:
-
Atualizar a exibição na janela do Explorer para um caminho UNC não funciona, pois o nome do volume é diferente, desmontá-lo e montá-lo novamente (o mesmo HDD) faz com que a atualização funcione normalmente. Isso é talvez um funcionamento de segurança? Ou isso é um bug? ou estou faltando alguma coisa?
-
Depois de executar dir para um caminho unc e recuperar a lista de arquivos, feche imediatamente a sessão, pois não há mais "processamento" com ela.
-
Depois de executar o diretório para um caminho unc, as sessões permanecem abertas, mas quando você clica em outra janela (a janela cmd perde o foco), a sessão desaparece.