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

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

Ответить
Настройки темы
CMD/BAT - [решено] используя net use написать CMD скрипт подключения сетевого диска
Den Den вне форума

Аватара для Den

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


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

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


Подскажите,пожалуйста, как написать в CMD, используя net use, скрипт подключения сетевого диска с присвоением названия диска (вместо буквы, например Disk_Sem) и проверкой на существование подключения с такой буквой.
Если есть подключение - заменить на возможную свободную букву.
заранее благодарен
всем хорошего дня!

Отправлено: 10:20, 28-03-2012

 

Старожил


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

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


Возможно, вам бы стоило использовать поиск по форуму, эта тема не раз уже поднималась.
Вот вариант с генерацией vbs-скрипта, из cmd напрямую имя диска назначить нельзя. Имя и сетевой путь замените на свои.
Код: Выделить весь код
@Echo Off
For %%A In (Z Y X W V U T S R Q P O N M L J I H G F E D C) Do (
If Not Exist "%%A:\" Set Disk=%%A&GoTo Jump
)
:Jump
>"%Temp%\netdrive.vbs" (
Echo On Error Resume Next
Echo Set objWshNetwork = CreateObject^( "WScript.Network" ^)
Echo Set objShell = CreateObject^("Shell.Application"^)
Echo MapDrive "%Disk%:", "\\inquisitor\bkup\sqldumps", "Базы"
Echo Sub MapDrive^(strDrive, strPath, strName^)
Echo    On Error Resume Next
Echo    objWshNetwork.RemoveNetworkDrive strDrive, vbTrue, vbTrue
Echo    objWshNetwork.MapNetworkDrive strDrive, strPath
Echo    objShell.NameSpace^(strDrive^).Self.Name = strName
Echo End Sub
)
Call "%Temp%\netdrive.vbs"
Del "%Temp%\netdrive.vbs"
Это сообщение посчитали полезным следующие участники:

Отправлено: 10:47, 28-03-2012 | #2



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

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

Den Den вне форума Автор темы

Аватара для Den

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


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

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


большое спасибо за оперативность вечерком попробую запустить.
удачи

Отправлено: 12:34, 28-03-2012 | #3


Аватара для El Sanchez

Ветеран


Contributor


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

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


Den, вариант №2
Код: Выделить весь код
@Echo Off
SetLocal
Set UNC=\\10.29.9.200\distr
Set Label=distr

For /F "Tokens=2 Delims==" %%A In ('WMIC path Win32_MappedLogicalDisk WHERE ProviderName^=^'%UNC:\=\\%^' Get Name /Value 2^>nul') Do (
	Call Net Use %%A /delete /y 1>nul 2>&1
	Net Use * %UNC% 1>nul 2>&1
	Reg Add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\%UNC:\=#%" /v _LabelFromReg /d "%Label%" /f 1>nul 2>&1
)
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:22, 30-03-2012 | #4

Den Den вне форума Автор темы

Аватара для Den

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


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

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


El Sanchez, добрый вечер!
а это для какой системы написано?
под 7 пойдет или нужно менять системные пути?

спасибо

Отправлено: 19:23, 30-03-2012 | #5

Den Den вне форума Автор темы

Аватара для Den

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


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

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


Если нужно что то поменять, то напишите, пожалуйст,а поконкретнее где и что. Ума у самого не хватает (надеюсь пройдет со временем).
Спасибо

Отправлено: 19:57, 30-03-2012 | #6


Аватара для El Sanchez

Ветеран


Contributor


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

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


Цитата Den:
под 7 пойдет или нужно менять системные пути? »
Den, проверял под XP и 7.
Цитата Den:
Если нужно что то поменять, то напишите, пожалуйст,а поконкретнее где и что. »
Den, Менять нужно только сетевой путь (переменная UNC) и метку (переменная Label) в начале скрипта.
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:21, 30-03-2012 | #7


Ветеран


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

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


Den,
Для подключения сетевого диска не задумываясь о букве можно:
Код: Выделить весь код
net use * \\live.sysinternals.com\tools
Подключит сетевой диск на первую свободную букву с конца алфавита (z....a). Для сохранения буквы диска, все можно завернуть в for:
Код: Выделить весь код
@echo off
setlocal

for /f "tokens=2" %%i in (' net use * \\live.sysinternals.com\tools ') do set "mountpoint=%%i" && goto:next
echo error
goto:eof

:next
echo doing something on %mountpoint%
echo umounting \\live.sysinternals.com\tools
net use /delete %mountpoint%
Если буква диска не важна для дальнейших действий ( хоть она и есть, назначается опять же по принципу (z...a) ), и все решается в пределах одного батника, то можно воспользоваться командой pushd:
Код: Выделить весь код
@echo off

pushd \\live.sysinternals.com\tools || echo error && goto:eof
echo doing something
popd
pushd - подключает сетевой диск и делает директорию на сетевом диске текущей
popd - отключает сетевой диск и возвращает текущую директорию в исходное состояние

Последний раз редактировалось Foreigner, 30-03-2012 в 22:17.

Это сообщение посчитали полезным следующие участники:

Отправлено: 22:10, 30-03-2012 | #8

Den Den вне форума Автор темы

Аватара для Den

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


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

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


очень интересно !
пробую
спасибо!

Отправлено: 22:15, 30-03-2012 | #9

Den Den вне форума Автор темы

Аватара для Den

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


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

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


Просто потрясающе!
Код:
@echo off
setlocal

for /f "tokens=2" %%i in (' net use * \\live.sysinternals.com\tools ') do set "mountpoint=%%i" && goto:next
echo error
goto:eof

:next
echo doing something on %mountpoint%
echo umounting \\live.sysinternals.com\tools
net use /delete %mountpoint%

это работает и подключает диск как нужно!
но тут же вопрос : каким образом можно дать имя этому диску, например MyDisk, другими словами вместо
tools (\\live.sysinternals.com) было бы MyDisk(\\live.sysinternals.com)
как то вот так
и еще
echo umounting \\live.sysinternals.com\tools
что это?

огромное спасибо!

Отправлено: 22:32, 30-03-2012 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипт для подключения сетевого сканера KipFun AutoIt 1 15-08-2014 10:12
Разное - net use как написать .cmd чтобы подключал диск с паролем и запоминал пароль sergey12345 Microsoft Windows 2000/XP 7 02-11-2013 10:38
CMD/BAT - Как написать CMD скрипт для запуска определенного файла по дате и времени traxomot Скриптовые языки администрирования Windows 1 15-12-2010 11:50
VBS/WSH/JS - [решено] Нужен VBS скрипт для GPO (мапинг сетевого диска, запуск файла, отключение диска) Anton04 Скриптовые языки администрирования Windows 6 28-05-2010 15:30
Как сделать CMD файл для сетевого подключения ? MKN Microsoft Windows NT/2000/2003 4 08-01-2008 10:28




 
Переход