Справка - Поиск - Участники - Войти - Регистрация
Полная версия: Пишем скрипты для облегчения администрирования.
Частный клуб Алекса Экслера > Наши сети притащили > Администрирование сетей
Страницы: 1, 2, 3, 4, 5
OzoN
13 сентября 2010, 10:18
Tamerlan
Это добавлять до End Function, правильно?
Tamerlan
13 сентября 2010, 10:26

OzoN написал: Tamerlan
Это добавлять до End Function, правильно?

Без разницы. smile.gif
OzoN
13 сентября 2010, 10:33
Tamerlan
Спасибо большое за помощь = )
Chief
20 сентября 2010, 17:18
Скрипты для подключения ssh-тунеля...

start putty.exe -v -ssh -2 -P 22 -C -l login -pw password -L 3393:192.168.1.2:3389 IP
start putty.exe -v -ssh -2 -P 22 -C -l login -pw password -L 10.10.32.1:139:192.168.1.2:139 IP

Это bat-файл, для второй строчки нужно создание loopback сетевой карты (Это нужно только для захода по сети на диски компа) и заведение новой сети. Putty качается за секунды, putty, сворачивающееся в трей - ищется за минуту или быстрее...
Вместо IP подставляется реальный ip-адресс, порты прописанны именно для RDP, но они меняються, login и password должны меняться на реальные с нужными правами доступа.

Скрипт для добавления ключа OpenVPN (написан для sh, но даже под батник переделать - пару минут)
#!/bin/sh
FNAME=$1
while read LINE; do
{
openssl req -new -newkey rsa:1024 -nodes -keyout $LINE.key -subj /C=RU/ST=NA/L=StPetersburg/O=Фирма/CN=$LINE/emailAddress=$LINE@Домен \
-out $LINE.csr && openssl ca -config /usr/local/etc/openvpn/ca.config -in $LINE.csr -out $LINE.crt -batch
mv -f ./$LINE.key /usr/local/etc/openvpn/db/keys/$LINE.key
mv -f ./$LINE.crt /usr/local/etc/openvpn/db/certs/$LINE.crt
mv -f ./$LINE.csr /usr/local/etc/openvpn/db/csr/$LINE.csr
}


В параметрах Фирма и Домен задаются соответствующие данные, можно в принципе, писать любую фигню, в качестве параметров к скрипту - передается имя файла, в котором построчно перечислены имена ключей.
Григор
10 декабря 2010, 15:03
Помогите пожалуйста новичку.

Мне нужно написать скрипт, который бы отнимал букву у диска, если буква D и если он Fixed!
Если же дискD это флешка или винт, то не трогает

Я чувствую, что это не сложно и написал кусочками все это вроде бы, но не могу(не получается) все это реализовать в одном скрипте(соединить)

Спасибо заранее за помощь!
Tamerlan
10 декабря 2010, 17:31

Григор написал: Помогите пожалуйста новичку.

Мне нужно написать скрипт, который бы отнимал букву у диска, если буква D и если он Fixed!
Если же дискD это флешка или винт, то не трогает

Я чувствую, что это не сложно и написал кусочками все это вроде бы, но не могу(не получается) все это реализовать в одном скрипте(соединить)

Спасибо заранее за помощь!

Изложи задачу яснее, плиз. Что значит "нужно написать скрипт, который бы отнимал букву у диска"? Что конкретно ты хочешь сделать и что именно ты хочешь получить в качестве результата?
Григор
10 декабря 2010, 17:43
То есть мне нужно, чтобы после отработки скрипта исчез(отмонтировался) локальный диск под буквой D, но, чтобы избежать ошибок необходимо сделать проверку по типу диска, чтобы он обязательно был типа Fixed, чтобы случайно не отмонтировалась флешка или переносной винт, которые тоже будут под буквой D
Tamerlan
10 декабря 2010, 18:03

Григор написал: То есть мне нужно, чтобы после отработки скрипта исчез(отмонтировался) локальный диск под буквой D, но, чтобы избежать ошибок необходимо сделать проверку по типу диска, чтобы он обязательно был типа Fixed, чтобы случайно не отмонтировалась флешка или переносной винт, которые тоже будут под буквой D

А тип операционки озвучить не судьба?
Григор
11 декабря 2010, 13:08
sorry
Win 7 & XP
Tamerlan
12 декабря 2010, 13:25
Тогда хватит двух строчек:
CODE
WMIC logicaldisk WHERE name="D:" get drivetype | find "3"
if %errorlevel% EQU 0 mountvol D: /D
Григор
13 декабря 2010, 10:17
Спасибо, проверю!
Григор
13 декабря 2010, 10:21
А что значит - | find "3"?
Григор
13 декабря 2010, 10:28
А понял - проверяет тип диска
Григор
13 декабря 2010, 10:45
Пишет Expected end of statement Line:1 Char:18
Tamerlan
13 декабря 2010, 14:06

Григор написал: Пишет Expected end of statement Line:1 Char:18

Ты его как vbs запустить пробуешь, что ли? Это обычный cmd-файл, который из консоли запускается. Сделай cmd и запусти.
Григор
13 декабря 2010, 14:49
Да я так сделал, но он пишет access denied - я не понимаю почему - руками я могу отмонтировать D
Григор
13 декабря 2010, 14:50
mountvol - вроде монтирует, а мне нужно отмонтировать
Tamerlan
13 декабря 2010, 14:52

Григор написал: Да я так сделал, но он пишет access denied

Смотри права на WMI.

Григор написал: mountvol - вроде монтирует, а мне нужно отмонтировать

С ключом /D - как раз размонтирует
Григор
13 декабря 2010, 15:45
Он пишет access denied на mounvol
Tamerlan
13 декабря 2010, 16:17

Григор написал: Он пишет access denied на mounvol

Ну, значит, смотри права доступа у учетки, от имени которой запускается скрипт. Если запускать в Висте или семерке, то при запуске логон-скриптов они используют учетки с ограниченными правами. Для запуска с админскими нужно дополнительные телодвижения делать. Главное - если просто так ручками запустить из-под админской учетки, то работает?
Григор
13 декабря 2010, 17:33
Да работает!
Спасибо!
Григор
14 декабря 2010, 10:19
А можно ли потом, этот отмонтированный раздел как-нибудь отформатировать?
Tamerlan
14 декабря 2010, 12:29

Григор написал: А можно ли потом, этот отмонтированный раздел как-нибудь отформатировать?

Тогда проще сначала отмонтировать, отформатировать, а потом букву убрать.
CODE
WMIC logicaldisk WHERE name="D:" get drivetype | find "3"
if %errorlevel% EQU 0 format D: /X /Q /Y && mountvol D: /D
Григор
14 декабря 2010, 16:21
Спасибо большое!
Григор
15 декабря 2010, 16:54
А можно ли это сделать средствами VBS? - чтобы отрабатывал скрипт
Григор
16 декабря 2010, 12:39
В Win7 отрабатывает отлично, но в XP - висит процесс WMIC.exe и ничего не происходит!
Tamerlan
16 декабря 2010, 12:42

Григор написал: В Win7 отрабатывает отлично, но в XP - висит процесс WMIC.exe и ничего не происходит!

Что выдает команда
CODE
WMIC logicaldisk WHERE name="D:" get drivetype

сама по себе под Xp?
Григор
16 декабря 2010, 14:29
Выдет результат 3 или ошибку, когда условия неверны
Григор
16 декабря 2010, 14:37
Когда я руками тыкаю и под администратором, то все хорошо работает. Но дело в том, что мне необходимо удалить диск D у нескольких десятков пользователей и сделать это хотелось бы автоматически. Все по я устанавливаю автоматом через WPKG. Когда же запускаю через WPKG этот bat файл и потом смотрю лог - пишет, что бат устанавливается и так может пройти пол часа, час и т.д. Смотрю процессы - висит WMIC.exe и ничего не делает!

На 7-ке все работает!

Спасибо!
Григор
16 декабря 2010, 16:53
Как только выбиваю процесс WMIC.exe - все выполняется!

Почему WMIC/exe торчит?
Tamerlan
16 декабря 2010, 16:59

Григор написал: Все по я устанавливаю автоматом через WPKG. Когда же запускаю через WPKG этот bat файл и потом смотрю лог - пишет, что бат устанавливается и так может пройти пол часа, час и т.д. Смотрю процессы - висит WMIC.exe и ничего не делает!

Значит, это особенности работы WPKG. Смотри на политики и права доступа.
Tamerlan
16 декабря 2010, 17:00

Григор написал: Как только выбиваю процесс WMIC.exe - все выполняется!

Почему WMIC/exe торчит?

Кстати, не пробовал не bat, а cmd-файл делать?
Chief
16 декабря 2010, 20:03

Chief написал: Скрипт для добавления ключа OpenVPN (написан для sh, но даже под батник переделать - пару минут)

Вот тут я ошибался...
Во первых openssl.cnf пришлось переделывать, во вторых в скриптах править...

build-ca.bat
CODE
@echo off
rem build a cert authority valid for ten years, starting now
openssl req -days 3650 -nodes -new -x509 -subj /C=RU/ST=NA/L=StPetersburg/O=%3/CN=%1/emailAddress=%1@%2 -keyout c:\temp1\ca.key -out c:\temp1\ca.crt -config c:\temp1\openssl.cnf

%цифра сответствующие параметры, передаваемые батнику, их можно тупо прописать в самомо батнике, но я ленив...smile.gif

build-dh.bat
CODE
rem @echo off
rem build a dh file for the server side
openssl dhparam -out c:/temp1/dh%1.pem %1

Тут единственный передаваемый параметр - глубина шифрования...

build-key-server.bat
CODE
@echo off
rem build a request for a cert that will be valid for ten years
openssl req -days 3650 -nodes -new -subj /C=RU/ST=NA/L=StPetersburg/O=%3/CN=%1/emailAddress=%1@%2 -keyout c:\temp1\keys\%1.key -out c:\temp1\keys\%1.csr -config c:\temp1\openssl.cnf
rem sign the cert request with our ca, creating a cert/key pair
openssl ca -days 3650 -out c:\temp1\keys\%1.crt -in c:\temp1\keys\%1.csr -extensions server -config c:\temp1\openssl.cnf


build-key.bat
CODE
@echo off
rem build a request for a cert that will be valid for ten years
openssl req -days 3650 -nodes -new -subj /C=RU/ST=NA/L=StPetersburg/O=%3/CN=%1/emailAddress=%1@%2 -keyout c:\temp1\keys\%1.key -out c:\temp1\keys\%1.csr -config c:\temp1\openssl.cnf
rem sign the cert request with our ca, creating a cert/key pair
openssl ca -days 3650 -out c:\temp1\keys\%1.crt -in c:\temp1\keys\%1.csr -config c:\temp1\openssl.cnf

Тут все как и для са...

Ну и не маловажное - openssl.cnf должен содержать только прямые слэши, виндовые(обратные) не катят и, по опыту, лучше прописать прямые пути, а не через переменные... Зато все работает для кучи контор, а не для единственной... Ну и пока я не разбирался с автоматическим подтверждением записи информации в сериал и индекс...
ps.gif Да, структуру каталогов таки надо создать или переделать скрипт, но, я думаю, в этом любой из вас разберется...smile.gif
Григор
17 декабря 2010, 15:00

Tamerlan написал:
Кстати, не пробовал не bat, а cmd-файл делать?


Да пробовал!
Tamerlan
17 декабря 2010, 16:28

Григор написал:
Да пробовал!

Проверил скрипт на нескольких машинах. Все работает. Значит, смотри, что у тебя нестандартного в конфигурации.
Григор
20 декабря 2010, 09:41
Если не трудно - могли бы помочь написать это на VBs - очень нужно!
Григор
20 декабря 2010, 12:42
И еще у меня обнаружилась проблема - скрипт отмонтирует внешние диски, если я их ставлю на букву D!!
Как быть - помогите пожалуйста!
Tamerlan
20 декабря 2010, 14:54

Григор написал: И еще у меня обнаружилась проблема - скрипт отмонтирует внешние диски, если я их ставлю на букву D!!

Внешние - это какие?
Григор
20 декабря 2010, 15:06
Например внешний винчестер через USB подключаю - он автоматом присваивает ему букву D, потом отрабаитывает скрипт и соответственно отнимает у него эту букву, потому что Внешний винт тоже 3-го типа

Как быть?
Григор
20 декабря 2010, 16:36
USB винт(External) определяется системой как USBSTOR, а стандартный(Internal) как IDE

Получается нужно каким-то образом сделать в скрипте проверку на IDE?
OzoN
27 января 2011, 17:13
Добрый день. Снова взываю к помощи специалистов = ).
Есть в винде удаленный помощник. И закрывается он на кнопку Esc. Я нарыл, что это можно отключить если удалить в файле
C:\WINDOWS\pchealth\helpctr\System\Remote Assistance\Interaction\Server\RAServer.htm
строчку g_objPanic.SetPanicHook(Stop_Control);
Хотелось бы такой скрипт, что бы он спрашивал доменное имя компьютера, и после этого удалял бы эту строчку в файле на данной машинке.
ОС - Windows XP
Tamerlan
27 января 2011, 17:41

OzoN написал: Добрый день. Снова взываю к помощи специалистов = ).
Есть в винде удаленный помощник. И закрывается он на кнопку Esc. Я нарыл, что это можно отключить если удалить в файле
C:\WINDOWS\pchealth\helpctr\System\Remote Assistance\Interaction\Server\RAServer.htm
строчку g_objPanic.SetPanicHook(Stop_Control);
Хотелось бы такой скрипт, что бы он спрашивал доменное имя компьютера, и после этого удалял бы эту строчку в файле на данной машинке.
ОС - Windows XP

Делем вот такой cmd-файл:
CODE
copy "C:\WINDOWS\pchealth\helpctr\System\Remote Assistance\Interaction\Server\Raserver.htm" "C:\WINDOWS\pchealth\helpctr\System\Remote Assistance\Interaction\Server\Raserver.bak" /Y
type "C:\WINDOWS\pchealth\helpctr\System\Remote Assistance\Interaction\Server\Raserver.bak" | find /V "g_objPanic.SetPanicHook(Stop_Control);">"C:\WINDOWS\pchealth\helpctr\System\Remote Assistance\Interaction\Server\RAServer.htm"

Называем его, например, remesc.cmd и запускаем на удаленной машине с помощью psexec.
OzoN
27 января 2011, 18:03
Tamerlan
А нельзя сделать так, что бы не на удаленной машинке запускать, а что бы я у себя скрипт запустил, он бы спросил имя машины на которой надо изменить файлик Raserver.htm, изменил, а потом бы я уже к ней подключался?
Chief
27 января 2011, 18:39

OzoN написал: А нельзя сделать так, что бы не на удаленной машинке запускать


Tamerlan написал: и запускаем на удаленной машине с помощью psexec.

Это и есть локальный запуск на удаленной машине...
Сильвер К
11 июня 2011, 16:14
Требуется помощь. Необходимо написать простенький скрипт, в котором происходила бы авторизация с помощью curl на сайте, а затем происходило закачивание файлов. Авторизация осуществляется через форму, соответственно нужно неким образом подставить авторизационные данные в форму и передать их серверу. Решение в лоб, типа curl -u user:password -O - B http://docs.utair.ru/index.php скачивает только саму форму, а не файлы, к которым нужно получить доступ.
Буду благодарен за любую подсказку.
Chief
7 июля 2011, 14:25
Требуется: Скрипт для создания LoopBack под ХР и выше.
Tamerlan
18 июля 2011, 02:06

Chief написал: Требуется: Скрипт для создания LoopBack под ХР и выше.

Не понял сути задачи, если честно. Можно поподробнее?
Chief
18 июля 2011, 09:32

Tamerlan написал: Не понял сути задачи, если честно. Можно поподробнее?

Можно...smile.gif
Суть - надо создать loopback интерфейс скриптом....
Этот вариант даже для меня кажется странным, при чем тут txt?
Задача проста: подключать по ssh серверные папки. VPN поднимать не хочется, но для 139 порта для ssh надо поднимать looplback...
Rps
18 июля 2011, 11:30

Chief написал: Этот вариант даже для меня кажется странным, при чем тут txt?

Это для unattended инсталляции, очевидно.
Есть тупой и простой пример в документации на Devcon.exe:
devcon install %windir%\INF\netloop.inf *msloop

Но, очевидно, зависит от того, чего именно тебе надо. Это разовая задача? Или надо в logon-startup скрипт запихивать и, соответственно, проверять не существует ли loopback уже, давать конкретное имя соединению и т.д?
Chief
18 июля 2011, 13:57

Rps написал: Это разовая задача?

Нет, разово я бы и руками воткнул.

Rps написал: Или надо в logon-startup скрипт запихивать и, соответственно, проверять не существует ли loopback уже, давать конкретное имя соединению и т.д?

Кроме логона все так и есть, именно эти задачи. Нужно, чтоб пользователи на своей домашней (возможно только что замененной апгрейдом) машине могли одним кликом на ярлык зайти на сервер через инет. Подключение к инету - их проблема, задание ip-конфигурации в батник воткнуть пара минут, задание ssh-соединения я написал уже давно, так что осталась всего одна деталь - создание с проверкой наличия лупбека...frown.gif
Дальше >>
Эта версия форума - с пониженной функциональностью. Для просмотра полной версии со всеми функциями, форматированием, картинками и т. п. нажмите сюда.
Invision Power Board © 2001-2017 Invision Power Services, Inc.
модификация - Яро & Серёга
Хостинг от «Зенон»Сервера компании «ETegro»