Форумы Dead-Line

Форумы Dead-Line (http://dead-line.spb.ru/forum/index.php)
-   Комната флуда (http://dead-line.spb.ru/forum/forumdisplay.php?f=12)
-   -   Недоайтишник need help >.< (http://dead-line.spb.ru/forum/showthread.php?t=4165)

Sinkaiya 30-04-2011 17:39

Недоайтишник need help >.<
 
Товарищи IT-специалисты, помогите пожалуйста.

Есть сеть, состоящая из трёх подсетей. Нужно сделать хреновину, которая будет пинговать последовательно все адреса каждой подсети, при получении ответа - удостоверяться, что это комп с виндой, если это так - проверять, есть ли в Program Files определённая папка, и если есть - класть туда определённый файлик, и записывать всё это в лог.

Фейспалм, конечно - но я даже не представляю, с какого боку к этому подходить. Писать скрипт, наверное? На чём? Это должен быть Visual Basic Script? Или Java Script? Или Power Shell? Или достаточно будет простого батника? Ни с чем из этого ни разу дела не имел. =(

Помогите, пожалуйста. Хотя бы ткните, в какую сторону копать. А то совсем в растерянности. >.<

Заранее спасибо. =)

KirKiller 30-04-2011 17:43

Боюсь, что просто так тебе не дадут проверить наличие папки и просто так туда положить файлик. Что за сетка то хоть?

Sinkaiya 30-04-2011 17:45

Виндовая, домен на 2003-м сервере. Права админские, если что, есть, то есть доступ к с$ будет.

KirKiller 30-04-2011 17:49

Так проблема только в том, что бы файлик положить?

Sinkaiya 30-04-2011 17:54

Сложность в том, что далеко не на всех компах в Program Files есть папка, в которую его нужно покласть. Соответственно нужно найти все машины, где она есть, просканировав всю сеть.

KirKiller 30-04-2011 17:59

Честно говоря давно уже не администрировал. Но на мой взгляд ты усложняешь задачу. Пишешь скрипт установки файла при входе компьютера в домен. Там и проверяешь наличие папки. Если ее нет, что создаешь. И незачем компы искать-проверять.

Sinkaiya 30-04-2011 18:03

И что это должен быть за скрипт?

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

А создавать папку не надо. Это папка программы, которая установлена только на некоторых компьютерах. Соответственно только туда и нужно положить файлик. А на остальных он нафиг не нужен.

Paltus1317 30-04-2011 19:50

По шедулеру запускай командный файлик на компах с этой программой.

Sinkaiya 30-04-2011 20:09

Так эти компы сначала найти надо... :(

Walker 30-04-2011 20:37

Цитата:

Сообщение от Sinkaiya
Так эти компы сначала найти надо... :(

Если у тебя все машины в домене, то кури в сторону logon script

Sinkaiya 30-04-2011 20:43

Спасибо, Волкер. Пошёл курить.

FLUGgER 01-05-2011 09:44

Если нет РЕАЛЬНОЙ нужды заморачиваться с определением компьютера, в логон скрипте можно ограничиться банальным
Copy /Y <файл> <куда его>
=)

Sinkaiya 01-05-2011 11:04

Нужда, к сожалению, есть. Начальство хочет, чтобы было именно так, как я в первом посте написал. :cool:

dab 02-05-2011 20:57

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

DbSergey 02-05-2011 22:49

Цитата:

Сообщение от Sinkaiya
Нужно сделать хреновину, которая будет пинговать последовательно все адреса каждой подсети, при получении ответа - удостоверяться, что это комп с виндой, если это так - проверять, есть ли в Program Files определённая папка, и если есть - класть туда определённый файлик, и записывать всё это в лог.

1. Пинг ip-адреса. Если есть ответ, то
2. ОС - винда? Если да, то
3. Есть ли в PF папка? Если да, то
4. Положить туда файл.

Пункты 1 и 4 вопросов не вызывают. С 2 и 3 сложнее.

Пункт 2 можно, конечно, сделать вот так или вот так. Для *nix систем существует hping, который, насколько я понял, делает то же самое, только (полу)автоматически. Однако что делать после того, как удостоверитесь, что на компьютере стоит винда? Где искать Program Files? Вдруг он находится не в c:\?

Для виндовых систем существует PsExec, которое позволяет выполнить произвольную команду на удаленном компьютере. Почитай мануал - возможно, она работает только под виндой, и если так, то ты убиваешь всех зайцев одним махом: можно пытаться выполнить команду для всех компов, но выполнится она только для тех, на которых стоит винда.

Sinkaiya 03-05-2011 09:26

Цитата:

Сообщение от dab
а начальство будет проверять попал ли файлик на компы, где нет программы??

Будет. Начнёт с того, что посмотрит скрипт и начнёт искать в нём недостатки. =\
Цитата:

Сообщение от DbSergey
Однако что делать после того, как удостоверитесь, что на компьютере стоит винда? Где искать Program Files? Вдруг он находится не в c:\?

Абсолютно на всех компах только один диск - С, винда стоит только в C:\Windows, а программы хранятся только в C:\Program Files. )) Спасибо большое за примеры, сейчас буду курить...

Sinkaiya 04-05-2011 18:08

Ребята, спасибо вам всем большое за участие и поддержку. :) Нафигачил я в итоге (не без некоторой помощи, естественно :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

DbSergey 04-05-2011 18:51

Круть!

Mrak 05-05-2011 09:50

если лень придумывать:
http://sysadmins.ru/topic79925.html


Часовой пояс GMT +3, время: 06:24.

Powered by: vBulletin Version 3.8.7 (Russian)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.