Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Net use монтирование сетевого диска по условию (http://forum.oszone.net/showthread.php?t=344327)

tr011_tmn 05-03-2020 09:21 2912101

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

Есть сетевое хранилище информации, на нем расшарены корпоративные ресурсы которыми успешно пользуются пользователи.

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

можно ли через net use узнать расположение текущего сетевого диска (удаленное имя) и если оно не то что надо отмонтировать диск и примонтировать на новом сервере?

net use i: | find /I "\\имя сервера\имя шары" && if not errorlevel 1 (ECHO "все ок") else (ECHO "все не ок") не работает :-(

прошу помощи.

Upd:
FOR /F "usebackq delims==" %i IN (`net use i:`) do FIND %i "\\имя сервера\имя шары" && if %ERRORLEVEL%==0 (ECHO "все ок") else (ECHO "все не ок")

результата тоже не дает

megaloman 05-03-2020 13:15 2912131

tr011_tmn, А зачем столько сложностей? Всё равно собрались запускать скрипт.
Код:

net use I: /Delete
net use I: \\Server\Test1 /persistent:yes

Если очень хочется сделать так, как написано:
через net use узнать расположение текущего сетевого диска (удаленное имя) и если оно не то что надо отмонтировать диск и примонтировать на новом сервере?
Код:

@Echo Off
cls
        Set "D=I:"
        Set "Shr=\\Server\Test2"
        2>&1 net use %D% |find /I "%Shr%" &&(Echo OK: the correct network drive is present %D%=%Shr% &Exit /B 0)
        >nul 2>&1 net use %D% /Delete
        >nul 2>&1 net use %D% %Shr% &&(Echo OK: the correct network drive mounted now %D%=%Shr% &Exit /B 1)
        Echo Error: the correct network drive not mounted %D% ^<^> %Shr%
Exit /B 2


Elven 05-03-2020 14:20 2912140

Я скажу что можно еще проще, и даже вовсе скрипты запускать ненадо, достаточно монтировать диск не скриптом, а политиками (сиречь GPO). Ну и в день X просто поменять одну настройку, и никакой беготни.

Charg 05-03-2020 14:42 2912145

Если есть домен - подними DFS.
Если нет домена - подними домен а потом DFS :)
С DFS эти шары можно хоть каждый день туда-сюда менять, пользователи даже не заметят.

tr011_tmn 10-03-2020 11:18 2912610

Цитата:

Цитата megaloman
Если очень хочется сделать так, как написано: »

Спасибо за пинок в правильном направлении, решил вопрос следующим образом:
Код:

IF EXIST I: (
net use I: |find /I "\\Server\Test2" 1>Nul 2>&1 && if not errorlevel 1 (ECHO "Сетевой диск был успешно примонтирован ранее") ELSE (ECHO "Сетевой диск не был успешно примонтирован ранее" && net use I: /delete /yes && net use I: \\Server\Test2 /PERSISTENT:YES) 1>Nul 2>&1
) ELSE (
ECHO "Сетевой диск не был успешно примонтирован ранее" && net use I: \\Server\Test2 /PERSISTENT:YES 1>Nul 2>&1
) 1>Nul 2>&1

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


Время: 01:53.

Время: 01:53.
© OSzone.net 2001-