Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Проверка доступности сетевой папки

Ответить
Настройки темы
CMD/BAT - Проверка доступности сетевой папки

Новый участник


Сообщения: 20
Благодарности: 1

Профиль | Отправить PM | Цитировать


Доброго времени суток. Возникла следующая задача: нужно проверить доступность сетевой папки (Например: 10.80.1.1\shared).
Я думаю проверять доступность, созданием файла 10.80.1.1\shared\log.txt, а затем его удаление.
Если не сложно, напишите код скрипта, буду благодарен за любую помощь.

Отправлено: 20:21, 23-02-2015

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
if exist "\\10.80.1.1\shared\." (
    echo Доступна
) else (
    echo Не доступна
)
Это сообщение посчитали полезным следующие участники:

Отправлено: 20:40, 23-02-2015 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Новый участник


Сообщения: 20
Благодарности: 1

Профиль | Отправить PM | Цитировать


Может в курсе кто, необходимо размонтировать контейнер в программе TrueCrype. Смонтированный на диск Z.
Нашел пример TrueCrypt /q /dz, но не работает.

Отправлено: 20:50, 23-02-2015 | #3


Новый участник


Сообщения: 20
Благодарности: 1

Профиль | Отправить PM | Цитировать


Если кому интересно, то вот... контейнер монтируется, если сетевая папка доступна. И демонтируется, как доступ до папки пропадает.

@Echo Off
if not exist "\\10.80.1.10\shared" (
if exist "Z:" (
"C:\Program Files\TrueCrypt\TrueCrypt.exe" /q /s /d Z
)

) else (
if not exist "Z:" (
"C:\Program Files\TrueCrypt\TrueCrypt.exe" /q /lZ "C:\12.tc" /k "\\10.80.1.10\logs\1.png"
)
)
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:38, 24-02-2015 | #4


Пользователь


Сообщения: 122
Благодарности: 6

Профиль | Отправить PM | Цитировать


Добрый день.

Имеется проблема с проверкой доступности сетевой папки. Исходные тестовые данные такие. К Wi-Fi роутеру подключена флешка с NTFS и настроен доступ по Samba по аккаунту. Подключение, отключение и проверку произвожу с CMD-файла запущенного в уже открытом окне командной строки из ограниченной учётной записи в Win 10 Pro x64 Ru и Win 7 Ult x64 Ru (это два разных «железных» компьютера подключенных к роутеру по кабелю и ситуация у них одинаковая).
После успешного отключения от сетевой папки (сообщается «успешно удален.»), проверка показывает, что доступ есть. При этом, если не закрывая окна командной строки закомментировать строчку в CMD-файле с установкой соединения и запустить его повторно, то тот же код по проверке наличия доступа к папке показывает, что доступа нет. Изначально доступ к сетевой папке проверял через создаваемую папку и файл в ней после отключения от сетевой папки. Результат был такой же.
Привожу полностью код тестового CMD-файла и результат его работы (логин и пароль я заменил).
И, соответственно, вопрос — в чём ошибка и как это исправить?

Код CMD-файла
Код: Выделить весь код
Echo On

Rem Выставляем кодовую страницу "Кириллица OEM 866".
CHCP 866

Rem Включение расширенной обработки команд (EnableExtensions)
Rem и отложенного расширения переменных среды (EnableDelayedExpansion)
SetLocal EnableExtensions EnableDelayedExpansion

Set "Check=Empty"

Net.exe Use "\\192.168.1.1\Test" "Пароль" /User:"Логин" /persistent:no

TimeOut.exe /T 2

Net.exe Use "\\192.168.1.1\Test" /delete

TimeOut.exe /T 2

Net.exe Use "\\192.168.1.1\Test" /delete

TimeOut.exe /T 2

Echo %Check%

If Exist "\\192.168.1.1\Test\." (
 Set "Check=Y"
) Else (
 Set "Check=N"
)

Echo %Check%


Результат работы CMD-файла
Код: Выделить весь код
Test.cmd

Echo On

Rem Выставляем кодовую страницу "Кириллица OEM 866".

CHCP 866
Текущая кодовая страница: 866

Rem Включение расширенной обработки команд (EnableExtensions)

Rem и отложенного расширения переменных среды (EnableDelayedExpansion)

SetLocal EnableExtensions EnableDelayedExpansion

Set "Check=Empty"

Net.exe Use "\\192.168.1.1\Test" "Пароль" /User:"Логин" /persistent:no
Команда выполнена успешно.


TimeOut.exe /T 2

Время ожидания 0 сек., нажмите любую клавишу для продолжения ...

Net.exe Use "\\192.168.1.1\Test" /delete
\\192.168.1.1\Test успешно удален.


TimeOut.exe /T 2

Время ожидания 0 сек., нажмите любую клавишу для продолжения ...

Net.exe Use "\\192.168.1.1\Test" /delete
Не удалось найти сетевое подключение.

Для вызова дополнительной справки наберите NET HELPMSG 2250.


TimeOut.exe /T 2

Время ожидания 0 сек., нажмите любую клавишу для продолжения ...

Echo Empty
Empty

If Exist "\\192.168.1.1\Test\." (Set "Check=Y" )  Else (Set "Check=N" )

Echo Y
Y





Test.cmd

Echo On

Rem Выставляем кодовую страницу "Кириллица OEM 866".

CHCP 866
Текущая кодовая страница: 866

Rem Включение расширенной обработки команд (EnableExtensions)

Rem и отложенного расширения переменных среды (EnableDelayedExpansion)

SetLocal EnableExtensions EnableDelayedExpansion

Set "Check=Empty"

TimeOut.exe /T 2

Время ожидания 0 сек., нажмите любую клавишу для продолжения ...

Net.exe Use "\\192.168.1.1\Test" /delete
Не удалось найти сетевое подключение.

Для вызова дополнительной справки наберите NET HELPMSG 2250.


TimeOut.exe /T 2

Время ожидания 0 сек., нажмите любую клавишу для продолжения ...

Net.exe Use "\\192.168.1.1\Test" /delete
Не удалось найти сетевое подключение.

Для вызова дополнительной справки наберите NET HELPMSG 2250.


TimeOut.exe /T 2

Время ожидания 0 сек., нажмите любую клавишу для продолжения ...

Echo Empty
Empty

If Exist "\\192.168.1.1\Test\." (Set "Check=Y" )  Else (Set "Check=N" )

Echo N
N

Отправлено: 01:55, 02-05-2019 | #5


Ветеран


Сообщения: 3806
Благодарности: 824

Профиль | Отправить PM | Цитировать


Цитата Andrey_Vladimirovich:
вопрос — в чём ошибка и как это исправить? »
ошибка в подходе и смешивании понятий

SMB не предназначен для сессионного использования, к тому же /delete по определению - ненадёжное средство, т.к. не рвёт используемые соединения. Хотите ограниченный доступ - используйте другой протокол, либо заведите отдельного пользователя и от его имени запускайте скрипт (и больше ничего).

Отправлено: 11:26, 02-05-2019 | #6


Пользователь


Сообщения: 122
Благодарности: 6

Профиль | Отправить PM | Цитировать


Busla
правильно ли я понимаю, что пока работает запущенный CMD-файл, нет возможности отключиться от подключённой сетевой папки и, соответственно, команда "/delete" и не должна работать, несмотря на её предназначение?

Последний раз редактировалось Andrey_Vladimirovich, 02-05-2019 в 17:02.


Отправлено: 15:15, 02-05-2019 | #7


Новый участник


Сообщения: 1
Благодарности: 0

Профиль | Отправить PM | Цитировать


Busla,
Цитата:
SMB не предназначен для сессионного использования, к тому же /delete по определению - ненадёжное средство, т.к. не рвёт...
Уважаемый, Вы уверены?! Чем Вас не устраивает, например:
Код: Выделить весь код
net use |find " character:" >nul && net use character: /d || net use character: \\serverName\shareName userPassword /user:userName /persistent:no
Это обычный триггер. Остаётся только вопрос применения...

Andrey_Vladimirovich,
Цитата:
правильно ли я понимаю, <...> нет возможности отключиться...
Нет. Вопрос времени, затрачиваемого на выполнение команды. К тому же в Вашем примере включение расширенной обработки команд и отложенного расширения переменных среды не обязательны.

Отправлено: 19:15, 16-06-2021 | #8


Ветеран


Сообщения: 1274
Благодарности: 564

Профиль | Отправить PM | Цитировать


Anatoliy.Reader, думаю, спустя уж более 2-х лет, им это или уже не надо или давно нашли решение.

Отправлено: 19:25, 16-06-2021 | #9


Пользователь


Сообщения: 122
Благодарности: 6

Профиль | Отправить PM | Цитировать


Цитата Anatoliy.Reader:
Andrey_Vladimirovich,
Цитата:
правильно ли я понимаю, <...> нет возможности отключиться...
Нет. Вопрос времени, затрачиваемого на выполнение команды. »
И как же это сделать, есть решение?

Отправлено: 18:59, 17-06-2021 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Проверка доступности сетевой папки

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Проверка доступности FTP сервера codi28 Скриптовые языки администрирования Windows 2 23-06-2014 11:32
Проверка доступности сайта warikkk Хочу все знать 2 22-04-2013 18:40
VBS/WSH/JS - [решено] Проверка существования и доступности сетевой папки white155 Скриптовые языки администрирования Windows 1 12-01-2012 17:33
Прочее - Проверка сетевой карты Virus1981 Сетевое оборудование 21 14-07-2008 14:35




 
Переход