Показать полную графическую версию : [решено] определение IP и подключение шары
Добрый день!
могу конечно повториться, не успел перечитать весь форум...
помогите составить батник
нужно в зависимости от IP подключать разные сетевые ресурсы (шары)
например определенной группе IP подключить одни сетевые ресурсы (шары)
а всем остальным другие...
заранее благодарен....
1. Почему именно IP?.. Чем, к примеру, не устраивают обычные глобальные группы?
2. Как будут определяться IP?.. интервалом?.. подсетью?.. списком?
схема такая...
каждый комп после загрузки винды берет батник из общей шары (щара уже подключена на всех компах)
дальше этот батник в зависимости от IP компа с которого он запущен,
определяет какие еще шары подключить этому IP,
синхронизацию времени (с разными серверами) и т.п.
в зависимости от IP компа с которого он запущен »
т.е. для каждого ИП своя процедура подключения?
да!
ну или для групп IP, если это возможно (было бы супер)
Вариант 1:
@Echo Off
For /F "Tokens=1 Skip=1 Delims={,} " %%i In ('WMIC NICCONFIG Where IPEnabled^=TRUE Get IPAddress') Do GoTo :%%~i
:Continue
Rem Тут
Rem продолжение
Rem батника
Exit /B 0
:192.168.0.1
Net Use X: \\SRV01\Share1
Net Use Y: \\SRV02\Share2
GoTo :Continue
:192.168.0.2
Net Use X: \\SRV01\Share1
Net Use Y: \\SRV03\Share3
GoTo :Continue
:192.168.0.3
Net Use X: \\SRV03\Share3
Net Use Y: \\SRV04\Share4
GoTo :Continue
Вариант 2:
@Echo Off
Set $G1=192.168.0.1 192.168.0.2 192.168.0.3
Set $G2=192.168.0.4 192.168.0.5 192.168.0.6
Set $G3=192.168.0.7 192.168.0.8 192.168.0.9
For /F "Tokens=1 Skip=1 Delims={,} " %%i In ('WMIC NICCONFIG Where IPEnabled^=TRUE Get IPAddress') Do Set $IP=%%~i& GoTo Continue
:Continue
For /F "Tokens=1,2 Delims==" %%i In ('Set $G') Do For %%a In (%%j) Do If "%$IP%"=="%%a" Call :%%i
Exit /B 0
:$G1
Net Use X: \\SRV01\Share1
Net Use Y: \\SRV02\Share2
GoTo :EOF
:$G2
Net Use X: \\SRV01\Share1
Net Use Y: \\SRV03\Share3
GoTo :EOF
:$G3
Net Use X: \\SRV03\Share3
Net Use Y: \\SRV04\Share4
GoTo :EOF
"WMIC NICCONFIG Where Index=1 Get IPAddress|FindStr "."" не является внутренней
или внешней
командой, исполняемой программой или пакетным файлом.
вот такое вот выдает :(
WildVic, у тя какая ОСь?.. WMIC.EXE включена начиная с XP/2003
а еще такое
c:\bat>WMIC NICCONFIG Where IPEnabled=True Get Index,IP
Узел - ???
ОШИБКА:
Код = 0x80041017
Описание = Недопустимый запрос
Услуга = WMI
CMD-команда для проверки:
WMIC NICCONFIG Where IPENabled=TRUE Get IPAddress
WMIC NICCONFIG Where IPEnabled=True Get Index,IP »такого я не давал (еще) :o
просто из консоли показывает IP
а из батника пишет ошибку :(
Microsoft Windows XP [Версия 5.1.2600]
(С) Корпорация Майкрософт, 1985-2001.
c:\bat>forum.bat
"WMIC NICCONFIG Where Index=1 Get IPAddress|FindStr "."" не является внутренней
или внешней
командой, исполняемой программой или пакетным файлом.
c:\bat>
такого я не давал (еще) »
ой, прости, у меня уже тут их столько накопилось, что я путатца стал...
вопщем просто из консоли IP показывает:
Microsoft Windows XP [Версия 5.1.2600]
(С) Корпорация Майкрософт, 1985-2001.
c:\bat>WMIC NICCONFIG Where IPENabled=TRUE Get IPAddress
IPAddress
{"172.17.110.101"}
а из батника нехочет :(
Microsoft Windows XP [Версия 5.1.2600]
(С) Корпорация Майкрософт, 1985-2001.
c:\bat>forum.bat
"WMIC NICCONFIG Where Index=1 Get IPAddress|FindStr "."" не является внутренней
или внешней
командой, исполняемой программой или пакетным файлом.
просто из консоли показывает IP »уже позитив :)
немного изменил 1-й батник, проверь (у меня на 2003-й вроде пашет)
странно... на других компах работает... на моем валит ошибки (см. выше) :(
не знаеш в чем бок может быть?
WildVic, попробуй последнюю редакцию батника... WMIC капризен... это типа нормально (на разных осях ведет себя по разному)... но если в консоли выдает, значит и в батнике заставим ;)
та же картина :(
на трех других компах нормально пашет... на моем нехочет...
оно то впринципе все равно, но
не факт, что из моих 100 компов непопадетца такой как у меня капризный...
на моем нехочет »
1. Заменить "@Echo Off" -> "@Echo On"
2. Выполнить батник с логированием в файл: "Batnik.CMD >Batnik.LOG 2>&1"
3. Batnik.LOG - в студию.
c:\bat>For /F "Tokens=1 Skip=1 Delims={,} " %i In ('WMIC NICCONFIG Where IPEnabled=TRUE Get IPAddress') Do GoTo :%~i
"WMIC NICCONFIG Where IPEnabled=TRUE Get IPAddress" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
c:\bat>Rem ╥≤≥
c:\bat>Rem ∩≡εΣεδµσφΦσ
c:\bat>Rem ßα≥φΦΩα
c:\bat>Exit /B 0
а батник из одной строки выполняется?
WMIC NICCONFIG Where IPEnabled=TRUE Get IPAddress
Когда мне понадобилось узнать текущие адреса всех сетевушек, я анализировал таблицу шлюзов (показалось так проще всего), хитростей WMIc не знаю, но чую нужно эту команду трясти. В любом случае, при попытке повторить строку
WMIC NICCONFIG Where Index=1 Get IPAddress - не получил ровным счетом ничего. Перебрав индексы до 4го и получив также по 2 пустые строки было забросил, но возник вопрос, почему у меня не работает и тогда пустил эту команду без запроса get ipaddress и был поражен количеством инфы. Моя встроенная сетевушка нашлась только на 13м, счастливом месте....
К чему это лирическое отступление? Собственно брать первый попавшийся интерфейс стремно - у некоторых может не сработать. Нужен перебор индексов.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.