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

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

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

emx (13-12-2006 21:07): http://forum.ru-board.com/topic.cgi?forum=8&topic=19088#1  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

ooptimum



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

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


Часть 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 подобный скриптовый язык с исходниками

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

 
>>HOW -  TO:
Создается по материалам данного топа

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

 

Всего записей: 2898 | Зарегистр. 30-05-2002 | Отправлено: 08:55 13-12-2002 | Исправлено: FreemanRU, 17:29 11-12-2006
Master_Alex



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
pav
Такой скрипт вполне реален.
А вот "DHCP в сети не используется и этот факт изменить нельзя" - я бы попытался таки факт изменить. Видать руководство тебя админить учит, - а это надо пресекать на корню .

Всего записей: 525 | Зарегистр. 11-09-2003 | Отправлено: 17:10 14-12-2005 | Исправлено: Master_Alex, 17:13 14-12-2005
aka_ShadowZ



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
skylined
сделать то можно вызовом командной строки "net send"
чтото типа
Код:
 
msg="Test message"
Target="192.168.0.1"
Set oShell=createObject("WScript.Shell")
oShell.Run "net send " & Target & " "+msg,0


----------
Pax huic domui et omnibus habitantibus in ea.

Всего записей: 563 | Зарегистр. 16-12-2002 | Отправлено: 01:30 15-12-2005
pav



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

Цитата:
Такой скрипт вполне реален.

Я понимаю, что реален. Для этого и привёл примеры, но самому не сростить их.

Всего записей: 1856 | Зарегистр. 27-01-2002 | Отправлено: 12:14 15-12-2005
finderknowledge

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
pav
Вот пример из The Portable Script Center:

Цитата:
 
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
 
Set colNetAdapters = objWMIService.ExecQuery _
    ("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")
 
strIPAddress = Array("192.168.1.141")
strSubnetMask = Array("255.255.255.0")
strGateway = Array("192.168.1.100")
strGatewayMetric = Array(1)
 
For Each objNetAdapter in colNetAdapters
    errEnable = objNetAdapter.EnableStatic(strIPAddress, strSubnetMask)
    errGateways = objNetAdapter.SetGateways(strGateway, strGatewaymetric)
    If errEnable = 0 Then
        WScript.Echo "The IP address has been changed."
    Else
        WScript.Echo "The IP address could not be changed."
    End If
Next
 


Всего записей: 26 | Зарегистр. 03-11-2005 | Отправлено: 14:35 15-12-2005
alecsandrb

Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Может кто-нибудь подсказать решение для следующей задачи:
- при подключении пользователя проверить какой принтер ему доступен
(разрешен доступ его группе) и подключить?
 
 
Добавлено:
Попробую спросить по другому: как узнать список тех кто имеет право работать с принтером при помощи скрипта?
Имеется ввиду перечень групп и пользователей назначенных на вкладке "Безопасность".
Дальше определить может текущий пользователь работать с принтером или нет не составит труда.

Всего записей: 36 | Зарегистр. 03-09-2003 | Отправлено: 15:28 15-12-2005
AlexSSS

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
> Имеется ввиду перечень групп и пользователей назначенных на вкладке "Безопасность".
сомневаюсь. Прикинь сам - в сети может быть полсотни компов с зашаренным принтером или даже несколькими. И как это все опрашивать?
 
Могу посоветовать вариант, который использую сам. В AD создаю группы Printer1, Printer2 ... PrinterXX, в которые засовываю пользователей, у которых есть доступ к нему.
А скрипт просто проверяет, входит ли пользователь в конкретную группу и подключает его если входит.
 
если у тебя принтеры обзываются по другому, то можешь создать группы типа PR_НазваниеПринтера
 
Либо, если конкретные принтеры привязаны к конкретным отделам (и группам AD), можно обойтись существующими группами
-----------------------
Хотя есть мысль. Если принтер прописан в AD, то надо посмотреть, можно ли вытащить права или, еще проще, проверить есть ли доступ к конкретным принтерам. Но это надо проверять.

Всего записей: 747 | Зарегистр. 26-06-2004 | Отправлено: 21:47 15-12-2005 | Исправлено: AlexSSS, 21:52 15-12-2005
alecsandrb

Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ОК. Значит пойдем раздавать права через группы в AD.  
 
>>Прикинь сам - в сети может быть полсотни компов с зашаренным принтером или даже несколькими.  
 
Мне данная ситуация не грозит - все сетевые принтера вполне можно пересчитать и потом я их все установил на принт-сервер и уже с него буду подключать пользователям.
 
Спасибо за посказку насчет групп, сам сразу не сообразил.

Всего записей: 36 | Зарегистр. 03-09-2003 | Отправлено: 06:56 16-12-2005
mozers



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alan Mon
10:33 12-12-2005
Цитата:
mozers  
Я думаю дело в правах пользователя SYSTEM. Твой скрипт коннектится к машине с определенным логином и паролем, но потом начинает работать WMI, который запущен от имени SYSTEM той машины. А пользователю SYSTEM по умолчанию доступ в сеть запрещен.

И все таки ты где то прав.
Удаленный запуск проги с сетевым именем удалось таки реализовать с помощью консольной утилиты rtmc (из пакета Remote Task Manager)
Код:
rtmc -exe=\\SERVER\SHARE\sysinfo.exe -comp=192.168.0.121 -user=admin -pass=123 -runasuser=admin -runaspass=123

Как видим, тут возможно задание 2х логинов/паролей (для входа и для того, от какого имени запускать).
Надо бы Русиновичу намекнуть что в его PsExec этой фичи явно не хватает
Что сбило меня с толку, так это то, в списке процессов сервис rtmservice (как и WMI) стартует от имени SYSTEM. Прога, запускаемая из него, стартует от имени Admin. Но и из WMI она так же стартует от имени Admin
Так же, да не так же...
Покопался и нашел API-шную функцию (именно ее, по всей видимости, использует rtmservice) CreateProcessWithLogon.
Интересно, а в WMI есть такая?
 
 

Всего записей: 2187 | Зарегистр. 03-01-2002 | Отправлено: 20:19 17-12-2005
pav



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
finderknowledge, а здесь посмотреть мой пост не удалось? Я говорю о том, чтобы срастить эти скрипты.

Всего записей: 1856 | Зарегистр. 27-01-2002 | Отправлено: 14:17 18-12-2005 | Исправлено: pav, 14:18 18-12-2005
finderknowledge

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
pav
Действительно не посмотрел, мои компьютерные очки отфильтровали вместе с ультрафиолетом и синий цвет ссылки
Здесь вроде ничего сложного нет, попробуй так:

Цитата:
 
Dim strOldIP, strOldGateway,strNewIP, strNewGateway, strOldIPArea,strNewIPArea
strSubnetMask = Array("255.255.255.0")
strGatewayMetric = Array(1)
strOldIPArea = "162.162.12"
strNewIPArea = "192.192.10"
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
 
Set colNetAdapters = objWMIService.ExecQuery _
    ("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")
 
For Each objNetAdapter in colNetAdapters
    strOldIP = Join(objNetAdapter.IPAddress)
    strOldGateway = Join(objNetAdapter.DefaultIPGateway)
    strNewIP = Array(getNewIP(strOldIP))
    strNewGateway = Array(getNewIP(strOldGateway))
    errEnable = objNetAdapter.EnableStatic(strNewIP, strSubnetMask)
    errGateways = objNetAdapter.SetGateways(strNewGateway, strGatewaymetric)
    If errEnable = 0 Then
        WScript.Echo "The IP address has been changed."
    Else
        WScript.Echo "The IP address could not be changed."
    End If
Next
 
Function getnewIP(strIP)
    Dim regEx, strNewIPmask
    strNewIPmask = strNewIPArea
    Set regEx = New RegExp
    regEx.Pattern = strOldIPArea
    getnewIP = regEx.Replace(strIP, strNewIPmask)
End Function
 


Всего записей: 26 | Зарегистр. 03-11-2005 | Отправлено: 09:31 19-12-2005
batnikboy

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Может кто-нибудь подсказать решение для следующей задачи:  
Мне надо чтобы при нахождении определённого слова в текте файла file.txt, оно менялось на другое.
файл примерно такого содержания...
.......
user Pupkin
.......
 
наприм с помощью этого батника:  
set var=
for /f "tokens=1,*" %%i in (file.txt) do echo %%i|find "user" && set var=%%j)  
я присваиваю переменной var значение Pupkin. А как теперь мне вместо Pupkin записать в файл например Dudkin?  

Всего записей: 3 | Зарегистр. 19-12-2005 | Отправлено: 15:58 19-12-2005
Alan Mon

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
batnikboy
Для этого можно использовать утилитку acsr.exe, которая лежит в "%systemroot%\Application compatibility scripts" любого сервера:

Цитата:
This command performs simple text replacement. It reads from the Input file and writes to the Output file. Each occurrence of the search string is changed to the replace string. Any of the parameters can contain environment variables if desired.
 
Syntax: Acsr Search Replace InputFile OutputFile
 
Example:
 
ACSR "#ROOTDRIVE#" "%RootDrive%" Template\Office97.key Office97.key
 
This example changes the text #ROOTDRIVE# to the value of the RootDrive environment variable. It reads the Office97.key from the template subdirectory and writes to an Office97.key file in the current directory



----------
Ребята, давайте жить дружно. Кот Леопольд

Всего записей: 1116 | Зарегистр. 22-07-2004 | Отправлено: 17:08 19-12-2005
pav



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
finderknowledge
Огромное спасибо. Малость подкорректировав, добавил также и смену адреса DNS-сервера. Если кому нужно, то могут посмотреть здесь
Предложения и замечания принимаются.

Всего записей: 1856 | Зарегистр. 27-01-2002 | Отправлено: 09:49 20-12-2005 | Исправлено: pav, 09:50 20-12-2005
batnikboy

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alan Mon
 
Большое спасибо за эту утилитку, всё сделал)

Всего записей: 3 | Зарегистр. 19-12-2005 | Отправлено: 12:22 20-12-2005
asdfg2003



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вопрос по подключению притеров
Есть рабочая станция, к которой подключен USB принтер. С помощью AddWindowsPrinterConnection этот принтер подключается к конкретному пользователю ну и соответсвенно удаляется RemovePrinterConnection. Проблема в том, что если этот комп выключен, то метод RemovePrinterConnection выполняется с задержкой секунд так 30-40 что очень плохо при подключении более 5 принтеров. Подключения через сервер не рассматривается. Как победить именно задержку метода RemovePrinterConnection?

Всего записей: 169 | Зарегистр. 03-03-2003 | Отправлено: 22:24 20-12-2005
timoha

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
   Ни кто не знает как vbscript - ом проверить почту на imap сервере  или прочитать почту из аутлука ?
  Спасибо !

Всего записей: 30 | Зарегистр. 29-03-2004 | Отправлено: 10:17 21-12-2005
Klesk



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вопрос - как очистить журнал событий на всех компьютерах домена?
Желательно чтобы это был скрипт, который можно было бы периодически запускать.

Всего записей: 208 | Зарегистр. 19-10-2003 | Отправлено: 21:12 22-12-2005
FreemanRU



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Klesk
Backs up and clears am event log if the log file size is larger than 20 megabytes
Backs up and clears the Application event log
 
Найти все компы в домене
 
 
timoha
А что именно надо? Можно подключится к Outlook через COM и что надо дельше то делать?

----------
Если не получается с первого раза - прочти инструкцию. (с)
"Откуда нам знать, что такое война, если мы не знаем мира..."(с)
Записки

Всего записей: 3794 | Зарегистр. 16-07-2004 | Отправлено: 12:08 23-12-2005
timoha

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
 2 FreemanRU
   
 
   Я хотел замутить простую схему управления не большим сервером через ё-мэйл
например отсылаю письмо - тема :  номер сервера, в письме : комманда 1, комманда 2 и тд.  аутлук на сервере проверяет почту каждые 2-3 минуты .
 
 Нужно  "подключится к Outlook через COM" - вот это я как раз не умею,  можешь показать в каком направлении копать ?

Всего записей: 30 | Зарегистр. 29-03-2004 | Отправлено: 12:27 23-12-2005
FreemanRU



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
timoha
К сожалению быстро ничего не нашел в инете. Вот только набросок:

Код:
 
Set myOlApp = CreateObject("Outlook.Application")
Set olMAPI = myOlApp.GetNameSpace("MAPI")
olMAPI.GetDefaultFolder(olFolderTasks).Display
 

 
Здесь отображается папка Задачи из отлука. Собсвтенно поиском по MSDN можно найти бъектную модель оутлука. Примерно твоя задача сводится к периодической проверки папки Входящие на наличие писем, её перебору и выборки тем письма.
 
Есть еще способ, имхо легче гораздо - воспользоваться сортировщиок самом оутлука. Там в том числе есть и запуск внешних приложений.

----------
Если не получается с первого раза - прочти инструкцию. (с)
"Откуда нам знать, что такое война, если мы не знаем мира..."(с)
Записки

Всего записей: 3794 | Зарегистр. 16-07-2004 | Отправлено: 12:58 23-12-2005 | Исправлено: FreemanRU, 13:43 23-12-2005
   

Страницы: 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

Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » Закладки » Автоматизация администрирования
emx (13-12-2006 21:07): http://forum.ru-board.com/topic.cgi?forum=8&topic=19088#1


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru