arquivo em lotes para desabilitar o compartilhamento de rede no Windows XP

2

Vagamente relacionado a essa questão Network Share fazendo com que o Cygwin seja executado lentamente após 'ls' , Gostaria de escrever um pequeno arquivo em lote que eu possa executar para desconectar o host de qualquer compartilhamento de rede e, posteriormente, outro arquivo em lote para reconectar. Idealmente, isso seria algo que eu posso executar a partir de um terminal PuTTY, SSHed na caixa executando o cygwin.

Tenho certeza de que os arquivos em lote podem ser gravados facilmente, mas não sei como executá-los em um terminal PuTTY. Independentemente disso, eu ainda gostaria dos batchfiles de qualquer maneira.

Por uma questão de simplicidade, meu processo seria:

  1. Faça login no servidor via PuTTY
  2. Executar arquivos em lote para desconectar compartilhamentos
  3. Faça o que eu preciso fazer
  4. Executar arquivos em lote para reconectar compartilhamentos
  5. Sair da sessão, fechando o PuTTY
por Robb 24.06.2011 / 18:06

2 respostas

2

Observe que o seguinte precisa ser executado com uma conta no grupo Administrador local e, de preferência, um que tenha acesso aos compartilhamentos que estão sendo mapeados.

Os comandos básicos

Para desconectar unidades:

net use /d * /y

Divisão:

  • net use é o utilitário para alterar os mapeamentos de unidade em rede a partir da linha de comando.
  • /d é para "excluir", para desconectar qualquer mapeamento de unidade especificado nos parâmetros de comando.
  • * é um curinga, para executar o comando em todas unidades atualmente mapeadas.
  • /y é para "sim", para ignorar a confirmação interativa do comando.

Para reconectar unidades:

net use [driveletter]: "\[servername]\[sharename]\[subfolder-path]" /p:y

(Repita para cada mapeamento).

Divisão:

  • net use - (veja acima)
  • [driveletter]: - Substitua isto por qualquer letra de unidade que você queira usar. Remova os suportes, mantenha o cólon. Você pode remover isso completamente se não precisar associar o compartilhamento a uma letra de unidade.
  • "\[servername]\ - Substitua isto pelo nome ou IP da máquina que hospeda o compartilhamento. Remova os suportes. Mantenha as barras invertidas. As aspas são opcionais se o caminho não incluir espaços.
  • [sharename] - Substitua isto pelo nome do compartilhamento que você está acessando. Remova os suportes.
  • \[subfolder-path] - (Opcional) Substitua isso pelo caminho restante para qualquer subpasta a ser endereçada pelo mapeamento. Deixe de fora se você quiser apenas que o mapeamento aponte para a raiz do compartilhamento. Remova os suportes. Use barras invertidas quando apropriado.
  • " - Deixe a cotação de fechamento se você manteve a cotação de abertura. Remova de outra forma.
  • /p:y - Isto é para "Persistent: YES", significando que o mapeamento da unidade será mantido através de uma reinicialização.

Arquivo de lote de amostra com comentários

REM The first line below keeps the batch commands from "echoing" on the command line.  Only command output is displayed.  Delete or comment out that line for debugging.
@echo off
REM The next command deletes all drive mappings.
net use /d * /y
REM The next two lines print a message stating what the previous line should have done (check command output to verify) and what the user should do next.
echo Drive mappings DELETED!
echo Press any key to restore drive mappings.
REM The next line pauses the batch job, pending user input.  Leave the batch window open, and go on to do your work.  Return to the batch window and press any key to continue.
PAUSE
REM The next command is an example of connecting to a share path that does not include subfolders or spaces, and will not be mapped to a drive letter.
net use \myserver\logs
REM This next command is an example of mapping a drive letter to a path that includes a subfolder, but no spaces.
net use R: \myserver\myapp\reports /p:y
REM This next command is an example of mapping a drive letter to a path  that does include sub-folders and spaces.  Note the requisite quotation marks.
net use P: "\myserver\c$\Program Files\My Application\"
REM The next two lines print messages similar to the previous two "echo" commands, this time informing the user that the drives should be re-mapped.
echo Drive mappings RESTORED!
echo Press any key to exit.
REM This last line inserts a final pause in the batch job.  Use this opportunity to check the command output and verify that the previous commands completed succesfully.
PAUSE
REM The batch window should automatically exit after this, or return to the command prompt if the file was run from within an existing console.

Observe que isso pode ser facilmente dividido em dois arquivos de lote separados, se necessário, com a divisão imediatamente após o primeiro PAUSE . É altamente recomendável manter os comandos PAUSE nas extremidades dos arquivos em lote, mesmo se eles estiverem divididos, para que você possa confirmar se os comandos em lote foram bem-sucedidos antes de sair.

Mapeando como outro usuário

Se você não puder executar o comando net use como um usuário com acesso aos compartilhamentos, será necessário um parâmetro adicional e alguma interação posterior com o usuário para cada mapeamento.

Nenhum parâmetro adicional é necessário para excluir os mapeamentos de unidade.

Para reconectar unidades como um usuário diferente, adicione o seguinte parâmetro a cada comando:

/user:[domain\username]

OR

/user:[username@domain]

EXEMPLOS:

net use R: \myserver\reports /user:mydomain\me /p:y

OR

net use P: "\myserver\c$\Program Files\My Application" /user:mysubdomain.mydomain.tld\me /p:y

OR

net use \myserver\logs /user:[email protected] /p:y

Para cada mapeamento, você deve inserir sua senha. Eu acredito que há um parâmetro adicional disponível que permite incluir sua senha no comando. No entanto, como os arquivos em lote são armazenados em texto não criptografado, sugiro que recomende o contrário.

    
por 24.06.2011 / 19:44
3

Tente isto - não tem idéia de como isso funcionará no Cygwin ... mas esse é o BATCH que deve funcionar se for executado normalmente no Windows.

REM Delete all existing connections
NET USE * /DELETE /Y
REM Map connections to the X, Y, Z letters for the shares
NET USE X: \SERVER1\SHARE1
NET USE Y: \SERVER1\SHARE2
NET USE Z: \SERVER2\SHARE1
    
por 24.06.2011 / 19:11