![]() |
Недоайтишник need help >.<
Товарищи IT-специалисты, помогите пожалуйста.
Есть сеть, состоящая из трёх подсетей. Нужно сделать хреновину, которая будет пинговать последовательно все адреса каждой подсети, при получении ответа - удостоверяться, что это комп с виндой, если это так - проверять, есть ли в Program Files определённая папка, и если есть - класть туда определённый файлик, и записывать всё это в лог. Фейспалм, конечно - но я даже не представляю, с какого боку к этому подходить. Писать скрипт, наверное? На чём? Это должен быть Visual Basic Script? Или Java Script? Или Power Shell? Или достаточно будет простого батника? Ни с чем из этого ни разу дела не имел. =( Помогите, пожалуйста. Хотя бы ткните, в какую сторону копать. А то совсем в растерянности. >.< Заранее спасибо. =) |
Боюсь, что просто так тебе не дадут проверить наличие папки и просто так туда положить файлик. Что за сетка то хоть?
|
Виндовая, домен на 2003-м сервере. Права админские, если что, есть, то есть доступ к с$ будет.
|
Так проблема только в том, что бы файлик положить?
|
Сложность в том, что далеко не на всех компах в Program Files есть папка, в которую его нужно покласть. Соответственно нужно найти все машины, где она есть, просканировав всю сеть.
|
Честно говоря давно уже не администрировал. Но на мой взгляд ты усложняешь задачу. Пишешь скрипт установки файла при входе компьютера в домен. Там и проверяешь наличие папки. Если ее нет, что создаешь. И незачем компы искать-проверять.
|
И что это должен быть за скрипт?
А касательно входа в домен - просто не все компы регулярно выключаются и перезагружаются, некоторые стоят включённые неделями, и, соответственно, висят в домене без входа-выхода. А создавать папку не надо. Это папка программы, которая установлена только на некоторых компьютерах. Соответственно только туда и нужно положить файлик. А на остальных он нафиг не нужен. |
По шедулеру запускай командный файлик на компах с этой программой.
|
Так эти компы сначала найти надо... :(
|
Цитата:
|
Спасибо, Волкер. Пошёл курить.
|
Если нет РЕАЛЬНОЙ нужды заморачиваться с определением компьютера, в логон скрипте можно ограничиться банальным
Copy /Y <файл> <куда его> =) |
Нужда, к сожалению, есть. Начальство хочет, чтобы было именно так, как я в первом посте написал. :cool:
|
а начальство будет проверять попал ли файлик на компы, где нет программы??
врятли посему можно всем логон скрипт вписать. |
Цитата:
2. ОС - винда? Если да, то 3. Есть ли в PF папка? Если да, то 4. Положить туда файл. Пункты 1 и 4 вопросов не вызывают. С 2 и 3 сложнее. Пункт 2 можно, конечно, сделать вот так или вот так. Для *nix систем существует hping, который, насколько я понял, делает то же самое, только (полу)автоматически. Однако что делать после того, как удостоверитесь, что на компьютере стоит винда? Где искать Program Files? Вдруг он находится не в c:\? Для виндовых систем существует PsExec, которое позволяет выполнить произвольную команду на удаленном компьютере. Почитай мануал - возможно, она работает только под виндой, и если так, то ты убиваешь всех зайцев одним махом: можно пытаться выполнить команду для всех компов, но выполнится она только для тех, на которых стоит винда. |
Цитата:
Цитата:
|
Ребята, спасибо вам всем большое за участие и поддержку. :) Нафигачил я в итоге (не без некоторой помощи, естественно :D ) вот такой bat-файловый скриптец:
setlocal enabledelayedexpansion Set max=255 SET minSubNetwork=181 SET maxSubNetwork=183 SET SubNetwork=172.16 for /L %%i in (%minSubNetwork%,1,%maxSubNetwork%) do ( for /L %%j in (0,1,%max%) do ( ping -n 1 %SubNetwork%.%%i.%%j | find /i "TTL" > nul if errorlevel 1 ( echo Search failed ) else ( echo Search successful For /F "tokens=2 Delims= " %%H In ('nslookup %SubNetwork%.%%i.%%j ^| find /i "Name"') Do ( echo %SubNetwork%.%%i.%%j - %%H >> log.txt ) if exist "\\%SubNetwork%.%%i.%%j\c$\program files\ingosstrakhagent\client" ( echo Directory exist >> log.txt xcopy "\\novikov-s\share\base.ini" "\\%SubNetwork%.%%i.%%j\c$\program files\ingosstrakhagent\client" /Y /R if errorlevel 5 ( echo Disk readonly >> log.txt ) else if errorlevel 1 ( echo Files for copying not found >> log.txt ) else ( echo File successful copied >> log.txt ) ) ) ) ) pause Сижу теперь любуюсь, как он хуярит, аж домой не уйти... :o |
Круть!
|
если лень придумывать:
http://sysadmins.ru/topic79925.html |
Часовой пояс GMT +3, время: 06:24. |
Powered by: vBulletin Version 3.8.7 (Russian)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.