2

Слегка связанный с этим вопросом Network Share, заставляющий Cygwin работать медленно после 'ls', я хотел бы написать небольшой командный файл, который я могу выполнить, чтобы отключить хост от любых сетевых ресурсов, и впоследствии другой пакетный файл для повторного подключения. В идеале это может быть что-то, что я могу выполнить с терминала PuTTY, SSHed в коробку с запущенным Cygwin.

Я почти уверен, что командные файлы могут быть легко записаны, но я не знаю, как выполнить их с терминала PuTTY. В любом случае, мне все равно нравятся пакетные файлы.

Для простоты мой процесс будет:

  1. Войти на сервер через PuTTY
  2. Запустите пакетные файлы для отключения общих ресурсов
  3. Делай то, что мне нужно сделать
  4. Запустите пакетные файлы, чтобы восстановить связь
  5. Выездная сессия, закрытие PuTTY

2 ответа2

3

Попробуйте это - не знаю, как это будет работать в Cygwin ... но это BATCH, который должен работать, если выполняется в 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
2

Обратите внимание, что следующее должно выполняться с учетной записью в локальной группе администраторов, предпочтительно с учетной записью, имеющей доступ к сопоставляемым общим ресурсам.


Основные команды

Чтобы отключить диски:

net use /d * /y

Сломать:

  • net use - это утилита для изменения сетевых подключений дисков из командной строки.
  • /d для "удаления", чтобы отключить любое отображение диска, указанное в параметрах команды.
  • * Подстановочный знак, для запуска команды на всех подключенных в данный момент дисках.
  • /y для "да", чтобы обойти интерактивное подтверждение команды.

Для повторного подключения дисков:

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

(Повторите для каждого сопоставления.)

Сломать:

  • net use - (см. выше)
  • [driveletter]: - Замените это на любую букву диска, которую вы хотите использовать. Снимите скобки, сохраните двоеточие. Вы можете полностью удалить это, если вам не нужно связывать общий ресурс с буквой диска.
  • "\\[servername]\ - замените его именем или IP-адресом компьютера, на котором размещен общий ресурс. Снимите скобки. Держи обратную косую черту. Кавычки не обязательны, если путь не содержит пробелов.
  • [sharename] - замените его именем общего ресурса, к которому вы обращаетесь. Снимите скобки.
  • \[subfolder-path] - (Необязательно) Замените его оставшимся путем к любой подпапке, которую вы хотите сопоставить по адресу. Оставьте это, если вы хотите, чтобы сопоставление указывало на корень общего ресурса. Снимите скобки. При необходимости используйте обратную косую черту.
  • " - Оставьте заключительную цитату, если вы сохранили начальную цитату. Удалить в противном случае.
  • /p:y - это для "Persistent:YES", что означает, что сопоставление диска будет сохранено при перезагрузке.

Образец пакетного файла с комментариями

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.

Обратите внимание, что это может быть легко разделено на два отдельных пакетных файла, если необходимо, с разделением, помещенным сразу после первой PAUSE . Я настоятельно рекомендую сохранять команды PAUSE на концах пакетных файлов, даже если они разбиты, чтобы вы могли подтвердить, что пакетные команды были успешными до их завершения.


Отображение как другой пользователь

Если вы не можете запустить команду net use как пользователь с доступом к общим ресурсам, для каждого сопоставления потребуется дополнительный параметр и дальнейшее взаимодействие с пользователем.

Для удаления сопоставлений дисков никаких дополнительных параметров не требуется.

Чтобы повторно подключить диски как другой пользователь, добавьте в каждую команду следующий параметр:

/user:[domain\username]

ИЛИ ЖЕ

/user:[username@domain]

ПРИМЕРЫ:

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

ИЛИ ЖЕ

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

ИЛИ ЖЕ

net use \\myserver\logs /user:me@mysubdomain.mydomain.tld /p:y

Для каждого сопоставления вам будет предложено ввести пароль. Я считаю, что есть дополнительный параметр, который позволяет вам включить ваш пароль в команду. Однако, поскольку командные файлы хранятся в открытом тексте, я настоятельно рекомендую не использовать его.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .