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

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



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
FreemanRU
Спасибо
А то что то доков нормальных, типа справочника никак найти не могу. Есть один но урезанный какой то
Возник вопрос: почему objUser.Name возвращает, например, test вместо ad\test если на самом деле так и есть?

Всего записей: 227 | Зарегистр. 30-01-2006 | Отправлено: 10:19 11-05-2006
FreemanRU



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
AleXeyS55
Загляни в шапку. Там масса доков полезных. Особенно Script Center рекомендую.

Цитата:
Возник вопрос: почему objUser.Name возвращает, например, test вместо ad\te

Потому что есть имя а есть домен входа. И эти понятие разделены. Н-р может быть локальных или вход в домен, при этом не всегда удобно "разрезать" переменную, удобнее её склеить.

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

Всего записей: 3796 | Зарегистр. 16-07-2004 | Отправлено: 10:40 11-05-2006
AleXeyS55



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

Всего записей: 227 | Зарегистр. 30-01-2006 | Отправлено: 13:11 11-05-2006
FreemanRU



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
AleXeyS55
Можно попробовать вот такой скриптик:
Use WMI to Enumerate Local User Accounts
Попробуй поиграть с запросом, особенно с частью, выделенной жирным.

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

Всего записей: 3796 | Зарегистр. 16-07-2004 | Отправлено: 14:44 11-05-2006
Oldster



Старик
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите решить проблему:
1) есть пользователи в AD. (user1, user2 и т.д.)
2) есть соот. папки на диске с именем логинов этих пользователей т.е.:
d:\temp\user1
d:\temp\user2
и т.д.
 
надо написать скрипт на JScript который перебирает список логинов в AD и проверяет наличия соот. папок на диске.
Собственно проблема в переборе всех юзеров в AD на JScript (с папками проблем нет). В инете полно примеров, но на VBS, а я к Васику плохо отношусь... к тому же только начал изучать скриптописание.

----------
Ой не TCP моё IP (C) Диман

Всего записей: 1367 | Зарегистр. 08-01-2003 | Отправлено: 15:52 11-05-2006
FreemanRU



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

Код:
 
var objConnection = WScript.CreateObject("ADODB.Connection");
objConnection.Open("Provider=ADsDSOObject;");
var objCommand = WScript.CreateObject("ADODB.Command");
objCommand.ActiveConnection = objConnection
objCommand.CommandText = "<GC://dc=domain,dc=local>;(objectCategory=User);cn,distinguishedName,sAMAccountName;subtree";
var objRecordSet = objCommand.Execute;
while (!objRecordSet.EOF)
{
              WScript.Echo (objRecordSet.Fields("cn"));
              WScript.Echo (objRecordSet.Fields("distinguishedName"));
              WScript.Echo (objRecordSet.Fields("sAMAccountName"));
              WScript.Echo ("");
              objRecordSet.MoveNext;
}
objConnection.Close;
 


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

Всего записей: 3796 | Зарегистр. 16-07-2004 | Отправлено: 16:40 11-05-2006 | Исправлено: FreemanRU, 17:46 11-05-2006
serstr

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите как мне через VBS добраться до папки TEMP = C:\DOCUME~1\USER\LOCALS~1\Temp\  при помощи объектов, т.е. не зависимо от того чему равен USER переменная ссылается на его папку TEMP

Всего записей: 32 | Зарегистр. 26-04-2006 | Отправлено: 16:49 11-05-2006
Sk1f



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Oldster мой те совет сделай скрипт на VB. Твое задание, это только небольшая часть моего. Я тоже сначала делал на JScripte. Но потом отказался и сделал на VBSю тебе проще будет. Для начала разобраться.

Всего записей: 198 | Зарегистр. 04-04-2006 | Отправлено: 17:03 11-05-2006
Oldster



Старик
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
FreemanRU
спасибо, заработало (правда мало что понял), но завтра буду разбиратся...  
нашел еще похожий скрипт: http://forum.sysadmins.ru/viewtopic.php?p=6698246

----------
Ой не TCP моё IP (C) Диман

Всего записей: 1367 | Зарегистр. 08-01-2003 | Отправлено: 17:05 11-05-2006
snorri

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Господа, братья, товарищи - кому как больше нравится
Помогите решить проблему
 
Есть такой скрипт по определению актуального железа и ПО на компьютере пользователя, который формирует текстовый файл с результатом сканирования.
 
А теперь вопрос: каким образом результаты загонять не в текстовый файл а в базу MSSQL
 
код скрипта.
 
Заранее благодарен
 
 

Всего записей: 3 | Зарегистр. 11-05-2006 | Отправлено: 18:00 11-05-2006 | Исправлено: snorri, 18:04 11-05-2006
FreemanRU



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

Код:
 
Const adOpenStatic = 3
Const adLockOptimistic = 3
Const adUseClient = 3
Set objConnection = CreateObject("ADODB.Connection")
Set objRecordset = CreateObject("ADODB.Recordset")
objConnection.Open "DSN=Inventory;"
objRecordset.CursorLocation = adUseClient
objRecordset.Open "SELECT * FROM Hardware" , objConnection, _
adOpenStatic, adLockOptimistic
Set colSoundCards = GetObject("winmgmts:").ExecQuery _
("Select * from Win32_SoundDevice")
For Each objSoundCard in colSoundCards
objRecordset.AddNew
objRecordset("ComputerName") = objSoundCard.SystemName
objRecordset("Manufacturer") = objSoundCard.Manufacturer
objRecordset("ProductName") = objSoundCard.ProductName
objRecordset.Update
Next
objRecordset.Close
objConnection.Close
 

Жирным выделена строка, определяющая подключение к БД. В примере сделано через DSN, но можно напрямую к серверу., н-р так:
objConnection.Open "Data Source=server;Initial Catalog=database;Integrated Security=True"
Данная строка подключится к серверу к проверкой подлинности Windows.

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

Всего записей: 3796 | Зарегистр. 16-07-2004 | Отправлено: 18:10 11-05-2006
serstr

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

Цитата:
Подскажите как мне через VBS добраться до папки TEMP = C:\DOCUME~1\USER\LOCALS~1\Temp\  при помощи объектов, т.е. не зависимо от того чему равен USER переменная ссылается на его папку TEMP

 
Помоги с таким вопросом пплллзз

Всего записей: 32 | Зарегистр. 26-04-2006 | Отправлено: 09:28 12-05-2006
FreemanRU



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
serstr
Так уже есть переменная в среде - %TEMP%, именно туда она и указывает...

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

Всего записей: 3796 | Зарегистр. 16-07-2004 | Отправлено: 11:49 12-05-2006
serstr

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

Цитата:
serstr  
Так уже есть переменная в среде - %TEMP%, именно туда она и указывает...
 

 
Наверное я совсем тупой, но я несовсем понял как ее успользовать...
Например в этой директории нужно создать файл
 Set  F = fso.CreateTextFile(%temp% & "logonscriptlog.txt", 8, true) но так оно не работает  
Как определить и получить этот обект?

Всего записей: 32 | Зарегистр. 26-04-2006 | Отправлено: 12:17 12-05-2006
Oldster



Старик
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
FreemanRU
потихоньку все получается задуманное, но есть еще вопрос:
как дописать скрипт, чтобы получить еще из AD о пользователе инфу типа: "Логин заблокирован" и т.д.
 
Добавлено:
Sk1f

Цитата:
мой те совет сделай скрипт на VB

Дело в том, что я знаю язык С, а к VB совсем тяги нет... может быть со временем и попробую его поизучать, но желания пока не возникает.

----------
Ой не TCP моё IP (C) Диман

Всего записей: 1367 | Зарегистр. 08-01-2003 | Отправлено: 12:37 12-05-2006
FreemanRU



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

Цитата:
"Логин заблокирован" и т.д.

Тут всё немного сложнее.....
Тебе нужно поле "userAccountControl"
В результате ты получишь число, из которого по битовой маске необходимо выдерать значения.  
Информация по битовым маскам данного поля содержится в:
How to use the UserAccountControl flags to manipulate user account properties
и
Platform SDK: Active Directory Schema: User-Account-Control


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

Всего записей: 3796 | Зарегистр. 16-07-2004 | Отправлено: 12:59 12-05-2006
serstr

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
FreemanRU
 
А как же мой вопрос??? плз

Всего записей: 32 | Зарегистр. 26-04-2006 | Отправлено: 13:10 12-05-2006
FreemanRU



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

Код:
 
Set WshShell = Wscript.CreateObject("Wscript.Shell")
WScript.Echo WshShell.ExpandEnvironmentStrings("%TEMP%")
 

 

Цитата:
А как же мой вопрос

Во первых спокойнее, а вот вторых твой вопрос есть в любом справочнике по VBS. А вот как н-р выдрать свойства пользователей из AD я сам в своё время долго искал. Это сейчас у меня TechNET, там всё это есть. А раньше было сложно.

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

Всего записей: 3796 | Зарегистр. 16-07-2004 | Отправлено: 13:19 12-05-2006
serstr

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
FreemanRU
Спасибо!  
Да я спокойно без нервов!А про АД я уже немного разобрался, тоже благодаря тебе
Вовек не сочтусь...
БОЛЬШОЕ спасибо!

Всего записей: 32 | Зарегистр. 26-04-2006 | Отправлено: 13:26 12-05-2006
Oldster



Старик
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
FreemanRU
Спасибо, все получилось!


----------
Ой не TCP моё IP (C) Диман

Всего записей: 1367 | Зарегистр. 08-01-2003 | Отправлено: 13:43 12-05-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