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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
pav



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте, знатоки VBS. В силу непреодолимых обстоятельств предстоит смена адресного пространства в локальной сети. Машин уже порядка двухсот и бегать и делать вс ручками - муторно. DHCP в сети не используется и этот факт изменить нельзя. Можно ли при помощи скриптов vbs смены ip-адреса и шлюза и скрипта получения текущих сетевых настроек, взятых из майкрософтовского репозитария, сделать скрипт, который бы без вмешательства со стороны пользователя менял бы ему адрес и шлюз. Достаточно будет поменять на стороне пользователя первые три триады адреса, последняя пусть останется такой же. А как заставить пользователей выполнить этот скрипт - не проблема.

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

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MNT
dsquery user -name [имя] -o samid
 
Breaker

Цитата:
А можно каким-то образом не меняя фонового рисунка, на рабочем столе сообщения всем нарисовать?

есть такая программка Bginfo, хотя можно наверно поискать и что-нибудь более специализированное, или самому что-нибудь написать  

Всего записей: 26 | Зарегистр. 03-11-2005 | Отправлено: 12:40 14-12-2005 | Исправлено: finderknowledge, 13:14 14-12-2005
earner

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

Цитата:
Классический скрипт запуска прог на удаленной машине через WMI:
...  
Работает отлично только если запускаемая прога находится в локальном каталоге..  

Даже программные пакеты солидных производителей предварительно копируют необходимые файлы на удаленный компьютер.. Наверное, это не спроста..
Может и в данной ситуации стоит также поступить.. дополнить скрипт функцией копирования содержимого какой-нибудь папки на локальном компьютере во временную папку на удалённом..  а потом, если надо, с удалённого всё стереть..

Всего записей: 11 | Зарегистр. 25-09-2003 | Отправлено: 16:14 14-12-2005
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
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вопрос - как очистить журнал событий на всех компьютерах домена?
Желательно чтобы это был скрипт, который можно было бы периодически запускать.

Всего записей: 211 | Зарегистр. 19-10-2003 | Отправлено: 21:12 22-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-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru