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

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



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
urel
Не понимаю, зачем.
Там же просто цикл, который для всех объектов Win32_ComputerSystem производит метод rename. У меня этот объект один, я для него rename и вызываю. По сути дела - одно и то же. Или нет?

Всего записей: 226 | Зарегистр. 24-08-2005 | Отправлено: 13:35 26-10-2006
urel

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Bugriy
потому что Win32_ComputerSystem это клас, а тебе нужен обьект/обьекты, хотя он и всеравно там должен быть один =) достает обьекты запров вида  
select * from Win32_ComputerSystem
возьми http://www.ks-soft.net/hostmon.eng/wmi/index.htm да посмотри
 
Добавлено:
те ты пытаешся применить метод к класу

Всего записей: 292 | Зарегистр. 16-09-2004 | Отправлено: 14:35 26-10-2006
Bugriy



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
urel
 
Заменил на:
 
var rc, objComputer;
 
objWMIComputerSystem=GetObject("winmgmts://"+strComputer+"/root/cimv2:Win32_ComputerSystem");
 
for (objComputer in objWMIComputerSystem)
 
{
rc = objComputer.Rename(strNewComputer,strDomainPasswd,strDomainUser);
}
 
if (rc != 0)
    {WScript.Echo ("Rename failed with error: " + rc)};
else
    {WScript.Echo ("Successfully renamed " + strComputer + " to " + strNewComputer)};
 
Скрипт отрабатывает и выводит Rename failed with error: undefined.

Всего записей: 226 | Зарегистр. 24-08-2005 | Отправлено: 15:11 26-10-2006 | Исправлено: Bugriy, 15:12 26-10-2006
urel

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Bugriy
попробуй заменить
objWMIComputerSystem=GetObject("winmgmts://"+strComputer+"/root/cimv2:Win32_ComputerSystem")
на  objWMIComputerSystem=GetObject("winmgmts://"+strComputer+"/root/cimv2:Win32_ComputerSystem").ExecQuery("Select * from Win32_ComputerSystem")  
или
objWMIComputerSystem=GetObject("winmgmts://"+strComputer+"/root/cimv2:Win32_ComputerSystem").InstancesOf("Win32_ComputerSystem")

Всего записей: 292 | Зарегистр. 16-09-2004 | Отправлено: 15:27 26-10-2006
Bugriy



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
urel
Ни то ни другое не срабатывает. Пишет - объект не поддерживает данный метод или свойство.
 
А разве цикл for in не должен все элементы класса перечислять даже без ExecQuery?

Всего записей: 226 | Зарегистр. 24-08-2005 | Отправлено: 15:43 26-10-2006
urel

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Bugriy
потомучто нужно так, и что характерно так работает =)
 
 colComputers = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2").InstancesOf("Win32_ComputerSystem")
 
Добавлено:
подключаешся к WMI (а тут можно подключаться сразу к класу?)
GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
выбираеш клас
InstancesOf("Win32_ComputerSystem")

Всего записей: 292 | Зарегистр. 16-09-2004 | Отправлено: 16:33 26-10-2006
Bugriy



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
urel
 
В vbs это может и работает. У меня скрипт на js. Ругается  на эту строку.
Ошибка 0x80041021
код 80041021
Источник (null)
 
Вот так эта строка у меня выглядит:
 
objWMIComputerSystem=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" + strComputer + "\root\cimv2").InstancesOf("Win32_ComputerSystem");

Всего записей: 226 | Зарегистр. 24-08-2005 | Отправлено: 10:07 27-10-2006
Sk1f



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Скрипт извлекает все записи из AD в заданной OU.

Цитата:
 
Option Explicit             ' is used to force the scripter to declare variables
On Error Resume Next ' is used to tell vbscript to go to the next line if it encounters an Error
 
' Dim is used to declare varable names that are used in the script
Dim oQuery ' holds query to Execute
Dim objConnection ' makes connection to active directory
Dim objCommand ' the command executes the query
Dim objRecordSet ' holds the data returned from the query
 
oQuery = "<LDAP://ou=Пользователи,dc=test,dc=test>;;name;subtree"
Set objConnection = CreateObject("ADODB.Connection")
objConnection.Open "Provider=ADsDSOObject;"
 
Set objCommand = CreateObject("ADODB.Command")
objCommand.ActiveConnection = objConnection
 
objCommand.CommandText = oQuery
   
Set objRecordSet = objCommand.Execute
 
While Not objRecordSet.EOF
    Wscript.Echo objRecordSet.Fields("name")
    objRecordSet.MoveNext
Wend
 
objConnection.Close
 

 
Только получается, что они извлекает все подряд - и извлекает названия пользователей, но не объекты, названия ou, группы. Мне нужно чтобы он извлек пользователей(желательно как объекты) ну или извлек имя пользователя и dn (DistinguishedName).  
 
Можно делать перебором всех ou и тогда я буду получать всю необходимую мне информацию - DistinguishedName, Name и тд. , но с помощью этого скрипта можно оптимизировать код на много строк кода.
 
 

Всего записей: 198 | Зарегистр. 04-04-2006 | Отправлено: 12:12 27-10-2006 | Исправлено: Sk1f, 12:41 27-10-2006
jONES1979



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

Цитата:
Только получается, что они извлекает все подряд - и извлекает названия пользователей, но не объекты, названия ou, группы. Мне нужно чтобы он извлек пользователей(желательно как объекты) ну или извлек имя пользователя и dn (DistinguishedName).  

 
oQuery = "<LDAP://ou=Пользователи,dc=test,dc=test>;;name;subtree"  
 
смотри справку в ADSI SDK:
 
В запросе ты используешь LDAP-диалект:
 http://msdn.microsoft.com/library/default.asp?url=/library/en-us/adsi/adsi/ldap_dialect.asp
 
Соответсвенно тебе нужно настроить фильтр:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/adsi/adsi/search_filter_syntax.asp

Всего записей: 324 | Зарегистр. 20-05-2005 | Отправлено: 14:24 27-10-2006
Bugriy



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Хочу из скрипта на js запустить скрипт на vbs. Как мне передать именованные параметры скрипту на vbs и как вернуть результат (успех/ошибка) скрипту на js?
 
Добавлено:
Как передать параметры я понял.
 
WSHShell = WScript.CreateObject("WScript.Shell");
WSHShell.Run("script.vbs /par1:Par1",5);
 
Выход из vbs скрипта осуществляется с помощью:
 
WScript.Quit ErrorLevel;
 
Как узнать в исходном скрипте что запускаемый скрипт завершился с кодом ErrorLever? Если запускать его так:
 
Err=WSHShell.Run("script.vbs /par1:Par1",5);
 
то Err всегда равно нулю.

Всего записей: 226 | Зарегистр. 24-08-2005 | Отправлено: 14:44 27-10-2006
Refugee

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Bugriy
запускай так: err=WSHShell.Run("script.vbs /par1:Par1",5,true);  
кстати, скрипты на разных языках можно в один .wsf файл собрать, там и аналог include есть.

Всего записей: 513 | Зарегистр. 31-03-2004 | Отправлено: 01:18 28-10-2006
Bugriy



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Refugee
Да, заработало.
Где можно почитать про эти параметры и вообще про функции win api?

Всего записей: 226 | Зарегистр. 24-08-2005 | Отправлено: 10:15 30-10-2006
Refugee

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Bugriy
В msdn, если английский можешь читать

Всего записей: 513 | Зарегистр. 31-03-2004 | Отправлено: 15:22 30-10-2006
Oceanforce



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

Всего записей: 80 | Зарегистр. 18-07-2006 | Отправлено: 15:34 30-10-2006
strizhakovs

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Люди помгите, есть такая задача - организуется глобальный переезд фаил сервера, перед этим нужно определить пермишенс для папок, которые находятся на сетевом диске (фаил сервере).
А потом после переноса установить эти пермишенсы на новом сервере.
Подскажите, как используя VBScript получить данные о пермишенсах папок на сетевом диске???
ХЕЛП!!!!!

Всего записей: 51 | Зарегистр. 26-09-2006 | Отправлено: 16:30 30-10-2006
Bugriy



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
strizhakovs
Сделать бэкап папок со старого сервера и заресторить их на новый не проще ли?

Всего записей: 226 | Зарегистр. 24-08-2005 | Отправлено: 18:17 30-10-2006
strizhakovs

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

Всего записей: 51 | Зарегистр. 26-09-2006 | Отправлено: 18:33 30-10-2006 | Исправлено: strizhakovs, 18:38 30-10-2006
BorlandIMHO

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

Цитата:
нужно определить пермишенс для папок, которые находятся на сетевом диске (фаил сервере).  
А потом после переноса установить эти пермишенсы на новом сервере.

Между прочим, можно просто перенести все папки вместе с пермишнами...
Например, в FAR manager для этого достаточно при копировании/переносе (F5/F6) установить флаг "копировать права доступа"... И не нужно ничего никуда сохранять а потом восстанавливать...
Единственное ограничение - если сетка без доменов, то этот номер не пройдёт... Оба сервера должны быть в одном домене и пермишны должны быть именно для доменных пользователей...

Всего записей: 2403 | Зарегистр. 12-10-2006 | Отправлено: 20:26 30-10-2006
strizhakovs

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

Всего записей: 51 | Зарегистр. 26-09-2006 | Отправлено: 21:07 30-10-2006
jONES1979



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
strizhakovs
всё реально вплоть до файлов, но пиши подробнее, как ты хочешь это видеть, имхо ты "утонешь" в информации
думаю, смогу помочь

Всего записей: 324 | Зарегистр. 20-05-2005 | Отправлено: 21:21 30-10-2006
   

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