Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » Автоматизация администрирования. Часть 2

Модерирует : lynx, Crash_Master, dg, emx, ShriEkeR

ShriEkeR (23-05-2011 23:06): Автоматизация администрирования. Часть 3  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114

   

FreemanRU



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
 

                               Коллеги-администраторы  ....  


Часть 2я

Часть 1
Думаю каждый из вас сталкивался с необходимостью выполнять некие несложные рутинные операции, на котороые уходит много драгоценного времени.
 Например, создать определенную структуру каталогов для каждого пользователя домена, изменить некие параметры в профилях всех или части пользователей, изменить полномочия/владельца однотипных файлов в разных каталогах т.д.  
Я, как сисадмин, тоже не раз был вынужден делать все это.  Руками делать это тоскливо и муторно, как вы понимаете. Должен заметить, что по неким "религиозным" убеждениям я всегда старался избегать любых отношений с бейсиком и его производными. Еще мой отец учил меня не иметь с ним никаких дел. Буквально. А теперь я учу своего сына тому же. Но, тем не менее, полностью избежать этого, по всей видимости, невозможно, тем более, что бейсик от M$ сейчас уже далеко не та "лапша", которой он был изначально, а современный структурированный язык, нашедший множество применений. Похоже, что для меня в очередной раз настала пора выучить еще что-то. Знаете, как курильщик много раз безуспешно пытается бросить курить, так и я не раз пытался подступиться к изучению VBScript, но пока никак не одолел. Лень, знаете ли. А инструмент в делах административных был бы весьма пользительный, должен заметить, для быстрого написания всякого рода скриптов.

 
    Внимание   !  !  !  

  • Поскольку данный топ весьма не мал, не забывайте  использовать "версию для печати" для более удобного поиска по теме. А также МЕГА ПОИСКОВИК от NEPa

  • Дабы не раздувать топ,  примеры своих  скриптов  заключаем в тег  "more"

Консольные команды. Командный интерпретатор

Windows Script Host (WSH) &  VBScript  &  JScript


Вышеперечисленные буки можно  взять здесь

    ТOOLS :
  1. Autoit+readme.rus
  2. Scriptologic
  3. AutoMate
  4. KIXTART
  5. nnCron-Планировщик с поддержкой скриптового языка --  РЕКОМЕНДУЮ
  6. WGET, GREP, GETMAIL, BLAT for Windows замечательные консольные утилиты
  7. 4dos/4nt -- отличная замена стандартного коммандного интерпретатора  
  8. JudoScript - java подобный скриптовый язык с исходниками
  9. VBS2EXE - утилита для компиляции vbs и js скриптов в exe выдранная из пакета PrimalScript

    Дружественные темы :
  1. Автоматическая (unattended) установка Windows
  2. Интересные команды при работе с Linux
  3. Отличный сайт по скриптингу, и не только
  4. Использование KIX
  5. Использование WMI
  6. Программирование "удобняшек" на VBScript

 
Подробнее...
Создается по материалам данного топа

 
Надеюсь данная тема будет полезна для Вас.
 Предложения по реформированию шапки принимаю в ПМ Jovanotti

 

Всего записей: 3795 | Зарегистр. 16-07-2004 | Отправлено: 17:27 11-12-2006 | Исправлено: Smitis, 12:30 20-08-2008
abasov



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
testir
 
скритп рабочий, но ИМХО лучше использовать PsExec:
 
--------------
psexec \\comp -u comp\admin -p XXXXXX -I cscript \\fs\Distr\upload\word.vbs
--------------

Код:
On Error Resume Next
Dim appl, strUser, strPassword, strComputer
Dim objSWbemLocator, objServices
 
'==============================
 
strComputer=InputBox("Введите имя ПК или IP:")
'strComputer = "backup"  ' <======= ИМЯ КОМПА  <===========
appl="regedit /s ""\\fsDistr\Standart_PO\Office2003\outlook\outlook.reg""" 'команда
strUser = "backup\admin" 'имя пользователя
strPassword = "XXXXXX"  
 
'==============================
 
Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")
Set objServices = objSWbemLocator.ConnectServer(strComputer, "root\CIMV2", strUser, strPassword, Null, Null, 0)
 
If Err.Number <> 0 Then
    WScript.Echo Err.Number & ": " & Err.Description
    WScript.Quit
End If
Set objClass = objServices.Get("Win32_Process")
Res = objClass.Create(appl, Null, Null, PID)
If Res <> 0 Then
    WScript.Echo "Код ошибки: " & Res
    else If Res = 0 then
    WScript.Echo "Выполнено"
    End If
End If

 
ГУРУ подскажите как Русинович реализовал интерактивное взаимодействие с пользователем, на уровне API?...
Ведь в WMI такой режим не работает.

Всего записей: 345 | Зарегистр. 12-11-2002 | Отправлено: 06:47 30-07-2008 | Исправлено: abasov, 09:04 30-07-2008
niichavo



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
abasov

Цитата:
ГУРУ подскажите как Русинович реализовал интерактивное взаимодействие с пользователем, на уровне API?...
Ведь в WMI такой режим не работает.

Я не гура, но таки вставлю свой комментарий. Как реализовал сие Док. Марк Руссинович мне не ведомо. Онако, интерактивный процесс можно запустить удалённо используя шедулер (назначенные задания). How Can I Remotely Start an Interactive Process? Возможно, что по тому же принципу работает и psexec, когда нужно запустить интерактивный процесс.

Всего записей: 836 | Зарегистр. 14-09-2005 | Отправлено: 08:49 30-07-2008 | Исправлено: niichavo, 08:52 30-07-2008
abasov



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
niichavo
шедулер как естественное средство единственное? О других способах я пока не слышал

Всего записей: 345 | Зарегистр. 12-11-2002 | Отправлено: 09:06 30-07-2008
YNY

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Ведь в WMI такой режим не работает

а по конкретней мона, а то не совсем понятно про какое  "интерактивное взаимодействие с пользователем..." ты гришь, а так на угад: есть относительно новый формат от микрософт который позволяет делать GUI с использованием скриптов HTA
http://www.script-coding.info/HTA.html
или вот еще
http://www.script-coding.info/svcsvc.html

Всего записей: 476 | Зарегистр. 18-05-2006 | Отправлено: 09:44 30-07-2008
abasov



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
YNY
Конкретно psexec с ключом -I. Когда удаленно запускаешь notepad, блокнот явно запускается в сессии пользователя. Мне известны два варианта интерактивного взаимодействия (не удаленный раб. стол), psexec и шедулер, последний запускается от системной учетки.

Всего записей: 345 | Зарегистр. 12-11-2002 | Отправлено: 10:19 30-07-2008 | Исправлено: abasov, 10:19 30-07-2008
YNY

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
удаленно запускаешь notepad

нотепад запускается так как запускается и нет никакой разницы как это делается - скрипт тут нипричем, хотя ты можешь не разворачивать окно или свернуть его (Shell.run)

Цитата:
шедулер,
-- вообще то шедулер не разворачивает окна если он работает как сервис
http://www.microsoft.com/rus/technet/sysinternals/utilities/psexec.mspx
Программа PsExec — это облегченный вариант Telnet
 
есть такая штука как DameWare NT Utilities в кот есть нечто вроде удаленной консоли, а уж в клонах пингвинских -- просто реальность
 
в принципе получить доступ к рабочему столу можно через скрипт + немного усилий и ты могеш сделать типа эмуляцию удаленного раб стола ( т.к. это не сам удаленный раб стол) без аналогичного фонового рисунка (так проще) и вуаля -- удаленный раб стол через скрипты
 
Добавлено:
Set WshShell = CreateObject("WScript.Shell")
Set WshExec = WshShell.Exec("nslookup 127.0.0.1")
WScript.Sleep 7000
Set TextStream = WshExec.StdOut
Str = vbNullString
While Not TextStream.AtEndOfStream
    Str = Str & Trim(TextStream.ReadLine()) & vbCrLf
Wend
MsgBox Str
 
Возвращается объект "WshScriptExec", который позволяет контролировать ход выполнения запущенного приложения и обеспечивает доступ к потокам StdIn, StdOut и StdErr этого приложения
 
Добавлено:

Цитата:
блокнот явно запускается в сессии пользователя

какова удаленного? или обоих? хотя т.к. программа PsExec — это облегченный вариант Telnet, не удивительно

Всего записей: 476 | Зарегистр. 18-05-2006 | Отправлено: 11:47 30-07-2008
abasov



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
YNY
Удаленный рабочий стол можно реализовать многими средствами, здесь речь идет о выполнении интерактивного приложения на стороне клиента. С помощью скриптов? инетресно, нигде не встречал подобного? Если это аля rdp - смысл?...
будьте добры пример в студию
 
Добавлено:
повторюсь, шедулер работает от системной ученой записи, как например acl system
http://www.microsoft.com/rus/technet/sysinternals/utilities/psexec.mspx
Служебные программы, такие как Telnet, и программы удаленного управления, такие как PC Anywhere компании Symantec, позволяют выполнять программы в удаленных системах, однако их не так просто установить, поскольку требуется устанавливать еще и клиентское программное обеспечение в тех удаленных системах, к которым необходимо получить доступ. Программа PsExec — это облегченный вариант Telnet. Она позволяет выполнять процессы в удаленных системах, используя для этого все возможности интерактивного интерфейса консольных приложений, и при этом нет необходимости вручную устанавливать клиентское программное обеспечение. Основное достоинство PsExec — это возможность вызывать в интерактивном режиме интерфейс командной строки в удаленных системах и удаленно запускать такие инструменты как IpConfig. Это единственный способ вывести на экран локального компьютера данные об удаленной системе

Всего записей: 345 | Зарегистр. 12-11-2002 | Отправлено: 13:48 30-07-2008 | Исправлено: abasov, 14:03 30-07-2008
YNY

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
abasov

я не говорил что у меня есть такая вещь как rdp на скрипте, но такое вполне осуществимо, по моему мнению, а тратить на это время -- у меня нет необходимости.
 
"интерактивного интерфейса консольных приложений..." -- консольные приложения на то и консольные, что имеют только возможность принимать параметры коммандной строки и никакова собственного GUI не имеют => мнимая интерактивность, т.е. готовый запрос и ответ на него посредством консоли с GUI.
 
Если вы выполните на клиентском компе скрипт, который выполнится в консольное приложении, а затем полученные результаты передадите в файл на сервер, который через таймаут читает скрипт на сервере, то получите некий аналог  интерактивности.  
 
Добавлено:
я думаю что русинович использовал RCP, но лезть в дебри MSDN и C++ не охота, просто выссказал свое мнение раз нет более релевантного ответа  
 
Добавлено:
abasov

Цитата:
выполнении интерактивного приложения на стороне клиента. С помощью скриптов?  

добавь полный путь к Word в appl в своем примере(
Цитата:
Res = objClass.Create(appl, Null, Null, PID)
) и т.о. запустишь интерактивное приложение на стороне клиента )

Всего записей: 476 | Зарегистр. 18-05-2006 | Отправлено: 08:14 31-07-2008
testir



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
abasov
 

Цитата:
--------------  
psexec \\comp -u comp\admin -p XXXXXX -I cscript \\fs\Distr\upload\word.vbs  
--------------  

 
Спасибо за подсказку, работает, т.е. скрипт выводит версию WSH на удаленном компе )
 
Теперь столкнулся со следующей проблемой, мне нужно чтобы скрипт запускаемый на удаленном компе устанавливал  опубликованные принтеры в АД.
Код скрипта подключающего принтеры:
 

Код:
 
Option Explicit
Dim WSHNetwork, Computer, Path, strComputerDN, objSysInfo, objComputer, sPrintPath, PrintLocation
Dim objWMIService, colInstalledPrinters, objPrinter
Set WSHNetwork = CreateObject("WScript.Network")
On Error Resume Next
sPrintPath = "\\serv\HP2430"
WSHNetwork.AddWindowsPrinterConnection sPrintPath  
WSHNetwork.SetDefaultPrinter sPrintPath
 

 
При запуске скрипта, на удаленном компе очень быстро появляется процесс wscript.exe и исчезает, и выдается вот эта строчка:
wscript exited on bcp-mashine with error code 0.
Принтер не подключается (
Подскажите пожалуйста, может этот скрипт с какими параметрами запускать ?

Всего записей: 15 | Зарегистр. 14-02-2007 | Отправлено: 11:19 31-07-2008
abasov



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
wscript exited on bcp-mashine with error code 0.  
как раз это значит что psexec успешно выполнил задачу.
А не поключает это сам скрипт не работает. права, синтаксис...

Всего записей: 345 | Зарегистр. 12-11-2002 | Отправлено: 11:32 31-07-2008
slech



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
всем привет. кто подскажет как как получить сегодняшнюю дату и время текушее в виде yyyymmddhhmm
спасибо.

Всего записей: 4893 | Зарегистр. 10-11-2004 | Отправлено: 13:31 31-07-2008
Nester777

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите, пожалуйста написать скрипт. Суть в том что начальник использует Radmin для наблюдения за работой сотрудников, при этом одновременно открыто 9 окон масштабируемых (Radmin Viewer 3) но когда сотрудник выключает или перезагружает компьютер приходится вручную заново запускать окно просмотра по возвращении сотрудника на рабочее место, возможно ли написать батник, чтобы он раз в минуту проверял запуск этого окна, если его нет, то проверял подключение компьютера к сети и если комп в сети запускал окно просмотра удаленного компьютера (аутентификация в Radmin - NT авторизация).

Всего записей: 4 | Зарегистр. 20-06-2008 | Отправлено: 14:14 31-07-2008
niichavo



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
slech

Код:
 
strDate = Year(Date) & Month(Date) & Day(Date) & Hour(Time) & Minute(Time)
MsgBox strDate
 

Только тут есть одно "но", числа идут от 1 до NN. Т.е. июль будет равен "7", а не "07", а одна минута - "1", а не "01". Если нужно именно MM, то можно сделать, например, так для месяца:

Код:
 
If Month(Date) < 10 Then
    strMonth = 0 & Month(Date)
Else
    strMonth = Month(Date)
End If
    
strDate = Year(Date) & strMonth & Day(Date) & Hour(Time) & Minute(Time)
MsgBox strDate
 

 
Может есть и попроще решение...

Всего записей: 836 | Зарегистр. 14-09-2005 | Отправлено: 16:50 31-07-2008 | Исправлено: niichavo, 17:09 31-07-2008
Nester777

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо, а как проверку на запущенное окно radmina организовать, при условии что несколько окон уже запущены, а остальные надо проверять?

Всего записей: 4 | Зарегистр. 20-06-2008 | Отправлено: 17:46 31-07-2008
slech



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
niichavo
спасибо. наваял вот так:

Цитата:
objDay=Day(Date)
If objDay<10 Then objDay="0" & objDay
objMonth=Month(Date)
If objMonth<10 Then objMonth="0" & objMonth
objYear=Year(Date)
objHour=Hour(Time)
If objHour<10 Then objHour="0" & objHour
objMinute=Minute(Time)
If objMinute<10 Then objMinute="0" & objMinute
 
Set objShell = WScript.CreateObject("WScript.Shell")
objShell.Run "MyBat.cmd " & objYear & " " & objMonth & " " & objDay & " " & objHour & "" & objMinute,1,TRUE
 

Всего записей: 4893 | Зарегистр. 10-11-2004 | Отправлено: 17:54 31-07-2008
Nester777

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Выглядит приблизительно так вот как проверить запущенные процессы что они относятся к определенному окну radmin?

Всего записей: 4 | Зарегистр. 20-06-2008 | Отправлено: 18:05 31-07-2008
abasov



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Nester777
мда...и что шефу совсем нечем заняться? сорри за офтоп не выдержал
(office 2 сезон 5)

Всего записей: 345 | Зарегистр. 12-11-2002 | Отправлено: 19:34 31-07-2008 | Исправлено: abasov, 19:36 31-07-2008
OOD

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Nester777
через telnet радмина:
tasklist
 
 
Добавлено:
http://pic.rapidshare.ru/744713

Всего записей: 3379 | Зарегистр. 20-05-2006 | Отправлено: 19:44 31-07-2008
Real Root



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Ребяты, поскажите пожалуйста.
Стоит задача рубить все процессы, кроме указанных всписке (конфигурационном файле) с периодичностью в 5 - 60 сек. - это чтоб пока админу пиво не поставят в игры не играли
Ну, периодичность то понятно как сделать Wscript.Sleep, а вот как рубать все остальное кроме нужного - тут незадача.

Всего записей: 1037 | Зарегистр. 13-04-2006 | Отправлено: 22:32 31-07-2008 | Исправлено: Real Root, 22:34 31-07-2008
OOD

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Real Root

Код:
taskkill /im notepad.exe /im sol.exe /im winmine.exe

 
 
 

Всего записей: 3379 | Зарегистр. 20-05-2006 | Отправлено: 22:50 31-07-2008
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114

Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » Автоматизация администрирования. Часть 2
ShriEkeR (23-05-2011 23:06): Автоматизация администрирования. Часть 3


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru