Войти

Показать полную графическую версию : [решено] определение IP и подключение шары


Страниц : [1] 2 3

WildVic
28-08-2009, 11:05
Добрый день!
могу конечно повториться, не успел перечитать весь форум...
помогите составить батник
нужно в зависимости от IP подключать разные сетевые ресурсы (шары)
например определенной группе IP подключить одни сетевые ресурсы (шары)
а всем остальным другие...

заранее благодарен....

amel27
28-08-2009, 11:14
1. Почему именно IP?.. Чем, к примеру, не устраивают обычные глобальные группы?
2. Как будут определяться IP?.. интервалом?.. подсетью?.. списком?

WildVic
28-08-2009, 11:26
схема такая...
каждый комп после загрузки винды берет батник из общей шары (щара уже подключена на всех компах)
дальше этот батник в зависимости от IP компа с которого он запущен,
определяет какие еще шары подключить этому IP,
синхронизацию времени (с разными серверами) и т.п.

amel27
28-08-2009, 11:35
в зависимости от IP компа с которого он запущен »
т.е. для каждого ИП своя процедура подключения?

WildVic
28-08-2009, 11:36
да!
ну или для групп IP, если это возможно (было бы супер)

amel27
28-08-2009, 12:18
Вариант 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

WildVic
28-08-2009, 12:23
"WMIC NICCONFIG Where Index=1 Get IPAddress|FindStr "."" не является внутренней
или внешней
командой, исполняемой программой или пакетным файлом.


вот такое вот выдает :(

amel27
28-08-2009, 12:26
WildVic, у тя какая ОСь?.. WMIC.EXE включена начиная с XP/2003

WildVic
28-08-2009, 12:28
а еще такое

c:\bat>WMIC NICCONFIG Where IPEnabled=True Get Index,IP
Узел - ???
ОШИБКА:
Код = 0x80041017
Описание = Недопустимый запрос
Услуга = WMI

amel27
28-08-2009, 12:28
CMD-команда для проверки:
WMIC NICCONFIG Where IPENabled=TRUE Get IPAddress

WMIC NICCONFIG Where IPEnabled=True Get Index,IP »такого я не давал (еще) :o

WildVic
28-08-2009, 12:39
просто из консоли показывает IP
а из батника пишет ошибку :(

Microsoft Windows XP [Версия 5.1.2600]
(С) Корпорация Майкрософт, 1985-2001.

c:\bat>forum.bat
"WMIC NICCONFIG Where Index=1 Get IPAddress|FindStr "."" не является внутренней
или внешней
командой, исполняемой программой или пакетным файлом.

c:\bat>

WildVic
28-08-2009, 12:55
такого я не давал (еще) »
ой, прости, у меня уже тут их столько накопилось, что я путатца стал...

вопщем просто из консоли 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 "."" не является внутренней
или внешней
командой, исполняемой программой или пакетным файлом.

amel27
28-08-2009, 12:57
просто из консоли показывает IP »уже позитив :)
немного изменил 1-й батник, проверь (у меня на 2003-й вроде пашет)

WildVic
28-08-2009, 13:00
странно... на других компах работает... на моем валит ошибки (см. выше) :(

не знаеш в чем бок может быть?

amel27
28-08-2009, 13:09
WildVic, попробуй последнюю редакцию батника... WMIC капризен... это типа нормально (на разных осях ведет себя по разному)... но если в консоли выдает, значит и в батнике заставим ;)

WildVic
28-08-2009, 14:07
та же картина :(
на трех других компах нормально пашет... на моем нехочет...
оно то впринципе все равно, но
не факт, что из моих 100 компов непопадетца такой как у меня капризный...

amel27
28-08-2009, 15:54
на моем нехочет »
1. Заменить "@Echo Off" -> "@Echo On"
2. Выполнить батник с логированием в файл: "Batnik.CMD >Batnik.LOG 2>&1"
3. Batnik.LOG - в студию.

WildVic
28-08-2009, 16:22
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

amel27
28-08-2009, 16:29
а батник из одной строки выполняется?
WMIC NICCONFIG Where IPEnabled=TRUE Get IPAddress

NiOl
28-08-2009, 18:17
Когда мне понадобилось узнать текущие адреса всех сетевушек, я анализировал таблицу шлюзов (показалось так проще всего), хитростей WMIc не знаю, но чую нужно эту команду трясти. В любом случае, при попытке повторить строку
WMIC NICCONFIG Where Index=1 Get IPAddress - не получил ровным счетом ничего. Перебрав индексы до 4го и получив также по 2 пустые строки было забросил, но возник вопрос, почему у меня не работает и тогда пустил эту команду без запроса get ipaddress и был поражен количеством инфы. Моя встроенная сетевушка нашлась только на 13м, счастливом месте....

К чему это лирическое отступление? Собственно брать первый попавшийся интерфейс стремно - у некоторых может не сработать. Нужен перебор индексов.




© OSzone.net 2001-2012