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

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



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

Цитата:
objCommand.CommandText = "<GC://dc=my_domen,dc=ru>;(objectCategory=User);cn,sAMAccountName,userAccountControl,mail,telephoneNumber,whenCreated,description;subtree";

при добавлении выделеного параметра выдает ошибку:

Цитата:
Ошибка выполнения Microsoft JScript: "objRecordSet.Fields(...)" - не является строкой

если я правильно понял, то "description" - это описание пользователя в AD, которое я хочу прочитать, но не получается может я чего не так делаю?
и вообще, где почитать про все параметры user - у меня есть в книги, но не все.

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

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



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

Цитата:
и вообще, где почитать про все параметры user  

1. adsiedit.msc из комплекта support tools (есть на любом диске с Windows XP/2003).
2. Редактор схемы (подключается из mmc)
 

Цитата:
Ошибка выполнения Microsoft JScript: "objRecordSet.Fields(...)" - не является строкой  

Угу. Её надо на null (nil кажется в JS) проверять. Просто в AD есть 3 состояния для строк типа Unicode string:
1. Пустая строка ("")
2. Строка со значением ("some")
3. NULL. Не заданное значение. (<Not Set> в adsiedit.msc)

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

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



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

Цитата:
Её надо на null (nil кажется в JS) проверять.

можно поподробнее?

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

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



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

Код:
 
if (objRecordSet.Fields("description") != null)
{
       .....здесь делаем действия с objRecordSet.Fields("description")
}
 


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

Всего записей: 3794 | Зарегистр. 16-07-2004 | Отправлено: 20:35 17-05-2006
Oldster



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

Цитата:
 
if (objRecordSet.Fields("description") != null){
  srt = objRecordSet.Fields("description");
}
 

получаю (смотрю в дебагере) str - об`ект, у него есть Value - в котором то, что мне надо, делаю так:

Цитата:
 
temp = str.Value;
 

получаю temp = непонятно чему

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

Всего записей: 1367 | Зарегистр. 08-01-2003 | Отправлено: 10:57 18-05-2006
Sk1f



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

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



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Oldster
Мда, засада. Не получится через ADO вытащить description.
Ибо:

Код:
 
              if (objRecordSet.Fields("description").Value != null)
              {
               WScript.Echo (objRecordSet.Fields("description").Type);
              }
 

вернет 12. А 12 - это adVariant. А adVariant "Note: Currently not supported by ADO."
http://www.w3schools.com/ado/prop_type.asp
 
Так что вот....
 
Добавлено:
Sk1f
Сразу говорю - это не тревиально!
GetSecurityDescriptor Method of the Win32_LogicalFileSecuritySetting Class
Там есть пример скрипта

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

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



Старик
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sk1f
cacls /?
не это?

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

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



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

Цитата:
cacls /?  
не это?

Нет. Он только для файлов разрешения показывает.

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

Всего записей: 3794 | Зарегистр. 16-07-2004 | Отправлено: 14:13 18-05-2006
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
FreemanRU
Всю жизнь показывал и на папки, или я что неправильно делаю???
cacls * >File.lst

Код:
C:\Documents and Settings\FFFFF ZZZZZZZZZ\Главное меню\1 NT AUTHORITY\SYSTEM:F  
                                                         BUILTIN\Администраторы:F  
                                                         domain\FFFFF ZZZZZZZZZ:F  
 
C:\Documents and Settings\FFFFF ZZZZZZZZZ\Главное меню\desktop.ini NT AUTHORITY\SYSTEM:F  
                                                                   BUILTIN\Администраторы:F  
                                                                   domain\FFFFF ZZZZZZZZZ:F  
 
C:\Documents and Settings\FFFFF ZZZZZZZZZ\Главное меню\WinRAR.lnk NT AUTHORITY\SYSTEM:F  
                                                                  BUILTIN\Администраторы:F  
                                                                  domain\FFFFF ZZZZZZZZZ:F  
 
C:\Documents and Settings\FFFFF ZZZZZZZZZ\Главное меню\Программы NT AUTHORITY\SYSTEMOI)(CI)F  
                                                                 BUILTIN\АдминистраторыOI)(CI)F  
                                                                 domain\FFFFF ZZZZZZZZZOI)(CI)F  
 
 

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 14:37 18-05-2006 | Исправлено: KapralBel, 14:39 18-05-2006
Oldster



Старик
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
FreemanRU
смотрим ключик:
/T  Замена таблиц управления доступом для указанных файлов в текущем каталоге и всех подкаталогах.
по крайне мере у меня так каталоги создаются для юзеров.

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

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



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
KapralBel
Oldster
Он показывает только текущий каталог.
Т.е. чтобы получить разрешения для определнного каталога, нам надо перейти в папку уровнем выше, вызвать cacls *, потом отсеять весь мусор и получить нужный каталог. ИМХО геморой еще тот. И это не называется, что cacls может показать разрешения для ОПРЕДЕЛЕННОГО каталога.
 
Добавлено:
ЗЫ перечитал вопрос Sk1f еще раз, в принципе ему может подойти и cacls. Но всё выше изложенное это не отменяет.


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

Всего записей: 3794 | Зарегистр. 16-07-2004 | Отправлено: 14:52 18-05-2006
KapralBel



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

Код:
@Echo Off
For /R F:\Work\1 %%a In (.) Do Call :_P %%a
GoTo :EOF
 
:_P
Set fld=%*
Cacls "%fld:~0,-2%" >>Folder.txt
 
 

 
Folder.txt

Код:
F:\Work\1 ВсеOI)(CI)F  
 
F:\Work\1\1 ВсеOI)(CI)F  
 
F:\Work\1\2 2 ВсеOI)(CI)F  
 
 

В таком виде пойдет?

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 15:11 18-05-2006
Sk1f



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
FreemanRU точно cacls. А точнее один из его производных.
Вообще кто будет связан с такими задачами советую subinacls или xcacls. Дело в том, что cacls не может изменять все permissions.
Информация по subinAcls:
 
http://www.osp.ru/win2000/worknt/advice/28adv09.htm
http://net.mpei.ru/lang/rus/faqw2kxp/jsifaq/rh8530.htm
http://www.microsoft.com/downloads/details.aspx?FamilyID=E8BA3E56-D8FE-4A91-93CF-ED6985E3927B&displaylang=en
 
Информация по xcacls:
 
http://net.mpei.ru/lang/rus/faqw2kxp/jsifaq/rh8225.htm
http://www.support.microsoft.com/?id=825751
http://www.support.microsoft.com/?id=318754
http://support.microsoft.com/default.aspx?scid=kb;EN-US;Q243330
 

Всего записей: 198 | Зарегистр. 04-04-2006 | Отправлено: 15:19 18-05-2006
FreemanRU



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
KapralBel
Нэ силен я в cmd-писании.... так что...
Мне проще на VBS
Еще надо учесть, что запуск может быть с указанием сетевого пути (т.е. если путь UNC - подцепить диск). А так может вполне и пойдет...

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

Всего записей: 3794 | Зарегистр. 16-07-2004 | Отправлено: 15:21 18-05-2006
KapralBel



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

Код:
 
For .R \\Srv1\Allnet ...

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 15:31 18-05-2006 | Исправлено: KapralBel, 15:35 18-05-2006
FreemanRU



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Разбирали проблему Oldster, и нашел, что JSCript не понимает массив Array Of Variant. Я когда-то читал, что это как0то обходится. Если у кого-о есть ссылки - просьба помочь.


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

Всего записей: 3794 | Зарегистр. 16-07-2004 | Отправлено: 16:33 18-05-2006
Refugee

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
FreemanRU
var desc=(new VBArray(objRecordSet.Fields("description").Value)).toArray();
WScript.Echo(desc[0]);
 
кстати, array of variant в JScript делается через (Scripting.Dictionary).Items()

Всего записей: 513 | Зарегистр. 31-03-2004 | Отправлено: 03:47 19-05-2006
listadm

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я уже писал может кто то поможет  
******************************************  
Помогите решить задачу:  
есть текстовый файл такового содержания:  
*********************  
ХХХХХХХХХХХХХХХХХХХХХ  
ХХХХХХХХХХХХХХХ  
!!!!!!!!!!!!!!ХХХХХХХХХХХХ  
   
ХХХХХХХХХХХХХХХХХХХ  
ХХХХХХХХХХХХХХХХХХХХ  
************************  
   
Нужно удалить пустую строку в этом файле.
Можно VB.

Всего записей: 6 | Зарегистр. 06-05-2006 | Отправлено: 06:52 19-05-2006
Sk1f



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
listadm Тебе нужно только пустую строку?  
А еще пустые ячейки есть?  
Посмотри метод Replace(), но дело в том, что он тебе грохнет и все пустые ячейки.  

Всего записей: 198 | Зарегистр. 04-04-2006 | Отправлено: 09:32 19-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