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

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

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
VBS. Народ, подскажите Pls как из текстового файла вывести текст определенного номера строки. Пока получилось только выводить последнюю строчку в тексте.  А по номерам никак не получается.
 
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile("work.txt", 1)
Do Until objTextFile.AtEndofStream  
strNextLine = objTextFile.Readline
arrServiceList = Split(strNextLine, ",")
k = arrServiceList (0)
For i=1 to Ubound(arrServiceList)
k = arrServiceList (i)
Next
Loop
Set f = objFSO.OpenTextFile("edit.txt", 2, True)
f.write k
f.close
objTextFile.close

Всего записей: 23 | Зарегистр. 01-09-2006 | Отправлено: 15:23 05-09-2006
unhappy



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
tedhome
Не понял. Наверное примерно так:

Код:
a = 29 ' Здесь номер требуемой строки
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile("work.txt", 1)
b = 1
Do Until objTextFile.AtEndofStream  
c = objTextFile.Readline
if a = b then  d = c
b = b + 1
Loop
if a >= b then  d = "Запрошена строка #"&a&". В файле всего "&b-1&" строк."
Set f = objFSO.OpenTextFile("edit.txt", 2, True)
f.write d
f.close
objTextFile.close

Всего записей: 681 | Зарегистр. 25-10-2002 | Отправлено: 16:15 05-09-2006
tedhome

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

Всего записей: 23 | Зарегистр. 01-09-2006 | Отправлено: 16:29 05-09-2006
kabolt



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

Всего записей: 74 | Зарегистр. 02-08-2006 | Отправлено: 18:28 05-09-2006
urel

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kabolt
а зачем тебе ее шарить? 1000 юзеров => 1000 шар?
шарь уровнем выше...
а cacls выдавай пермишины на созданую папку

Всего записей: 292 | Зарегистр. 16-09-2004 | Отправлено: 23:46 05-09-2006
nlssnlss

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А как ВСЕМ пользователям в определенном OU  поменять скриптом, к примеру название отдела? Кто поможет

Всего записей: 5 | Зарегистр. 06-09-2006 | Отправлено: 09:22 06-09-2006
urel

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
nlssnlss
Посмотри в ADSI какое поле менять, а в скрипт центре как.
и/или
dsquery /?
dsmod user /?
 
вроде такого dsquery user "dc=domain,dc=com" | dsmod user -dept "dept"
 
 
Добавлено:
и/или в ADUC выделяеш всех - Properties - Organization

Всего записей: 292 | Зарегистр. 16-09-2004 | Отправлено: 12:08 06-09-2006
nlssnlss

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
не получается. А в АДУКе - непонял, как.

Всего записей: 5 | Зарегистр. 06-09-2006 | Отправлено: 13:33 06-09-2006
urel

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
nlssnlss
А прав хватает? контейнер правильно указал? хелп читал? что пишет?
Возьми DN пользователя и примени dsmod user
 
Active Directory Users and Computers

Всего записей: 292 | Зарегистр. 16-09-2004 | Отправлено: 13:45 06-09-2006
nlssnlss

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вот в OU  изменять получается ? а как со всеми пользователями в этом OU быть?
 
Const ADS_PROPERTY_UPDATE = 2
 
Set objContainer = GetObject _
    ("LDAP://ou=Manager,ou=UPK,dc=test,dc=ru")
 
objContainer.Put "street", "Улица" & vbCrLf & "С новой строки еще что-то"
objContainer.Put "l", "Город"
objContainer.Put "st", "Штат"
objContainer.Put "postalCode", "Индекс"
objContainer.Put "c", "RU"
objContainer.PutEx ADS_PROPERTY_UPDATE, _
    "description", Array("Чего такое")
objContainer.SetInfo

Всего записей: 5 | Зарегистр. 06-09-2006 | Отправлено: 14:03 06-09-2006
urel

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
nlssnlss
 
Чего творят фины...
 

Цитата:
On Error Resume Next
 
Set objOU = GetObject("LDAP://ou=Employees,dc=domain,dc=com")
objOU.Filter = Array("user")
 
For Each objUser in objOU
    Wscript.Echo objUser.DisplayName  
    Set objUser = GetObject("LDAP://"& objUser.distinguishedName )  
    objUser.Put "department", "tester"
    objUser.SetInfo
    Set objUser = Nothing
Next

 
аналогично в одну строчку:

Цитата:
dsquery user "ou=Employees,dc=domain,dc=com" | dsmod user -dept "tester"  

Всего записей: 292 | Зарегистр. 16-09-2004 | Отправлено: 15:36 06-09-2006 | Исправлено: urel, 15:47 06-09-2006
nlssnlss

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
UREL спасибки большое
 
Добавлено:
Только компы в OU тож меняет

Всего записей: 5 | Зарегистр. 06-09-2006 | Отправлено: 15:52 06-09-2006
urel

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
nlssnlss
мухи отдельно - котлеты отдельно!
 
ну а если не катит - дырку залепить можно напрмер так:
Цитата:
NotComp=True
For Each oClass In objUser.objectClass
    If LCase(oClass )="computer" Then NotComp=False
Next  
If NotComp Then  
    Wscript.Echo objUser.distinguishedName
End If

 

Всего записей: 292 | Зарегистр. 16-09-2004 | Отправлено: 19:17 06-09-2006 | Исправлено: urel, 19:19 06-09-2006
nlssnlss

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Куда вставить, чёт не срабатывает  

Всего записей: 5 | Зарегистр. 06-09-2006 | Отправлено: 07:51 07-09-2006
tedhome

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нужна электронная книга-учебник по VBS и WSH желательно на русском!  
И что хорошего по данному вопросу можно прикупить в бумажном виде?
Не могу решить слудующую задачу:
 
Есть папка с множество файлов c расширением eml. Как содержимое всех файлов c их именами записать в один файл txt? Очень нужно, pls!

Всего записей: 23 | Зарегистр. 01-09-2006 | Отправлено: 09:26 07-09-2006 | Исправлено: tedhome, 09:29 07-09-2006
pav



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Возможно ли при помощи скрипта разлогинить всех находящихся в системе пользователей? AD не используется. Все пользователи входят через терминальные соединения. Сервер 2000. Требуется для проведения архивации баз, что невозможно, если часть файлов держат пользователи. Перезагруз - не подходит. Нужен именно скрипт или что-то ещё, чтобы выполнять по расписанию.

Всего записей: 1856 | Зарегистр. 27-01-2002 | Отправлено: 09:36 07-09-2006
freegate



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Так покрайней мере завершаются сеансы в терминальнике у меня, обязательное у меня условие сеансы бухгалтерии остаются висеть
 
REM Здесь обрабатываем рабочие сеансы, кроме текущего сеанса
For /F "eol=> skip=1 tokens=1,3 delims= " %%i in ('query user ^| Find "rdp-tcp"') Do @Call :splitgroups "%%i" "%%j"
    Goto :end1
:splitgroups
    Set UNT=%1
    Set UNT=%UNT:"=%
    Set USNT=%2
    Set USNT=%USNT:"=%
    REM Если не бухгалтерия сбрасываем
    IF NOT %UNT%==buh IF NOT %UNT%==gb-sks Logoff %USNT%
    Goto :EOF
:end1
REM Здесь обрабатываем отключенные сеансы, кроме текущего сеанса
For /F "eol=> skip=1 tokens=1,2 delims= " %%i in ('query user ^| Find /V "rdp-tcp"') Do @Call :splitgroups "%%i" "%%j"
    Goto :end2
:splitgroups
    Set UNT=%1
    Set UNT=%UNT:"=%
    Set USNT=%2
    Set USNT=%USNT:"=%
    REM Если не бухгалтерия сбрасываем
    IF NOT %UNT%==buh IF NOT %UNT%==gb-sks Logoff %USNT%
    Goto :EOF
:end2
rem тут пишеш архивацию

Всего записей: 44 | Зарегистр. 24-03-2004 | Отправлено: 11:21 07-09-2006 | Исправлено: freegate, 11:23 07-09-2006
pav



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
freegate
Мну несколько легче должен быть скрипт - нужно вырубать всех!!! Дело в том, что отрабатывать он должен ночью, когда никого нет. Кстати, запуск пошедулерй от имени пользователя с админскими правами считается за выполнение в сеансе этого пользователя?
ЗЫ: архивация идёт отдельным средством.

Всего записей: 1856 | Зарегистр. 27-01-2002 | Отправлено: 09:32 08-09-2006
veryom



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
tedhome
 
Создаём два файла скрипта
 
Первый файл write.cmd
 

Код:
@echo off
echo. >> %1
echo %2 >> %1
echo. >> %1
more %2 >> %1

 
Второй файл go.cmd
 

Код:
@for /r %1 %%I in (%2) do @write %3 %%I

 
Файлы должны находиться в одной директории.
 
Запуск:
 
go <путь до папки с фалами> <маска файлов> <файл результатов>
 
Пример:
 
go C:\MyFolder\ *.eml res.txt

Всего записей: 1242 | Зарегистр. 24-03-2006 | Отправлено: 12:02 08-09-2006
Yourbill



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

Всего записей: 565 | Зарегистр. 11-03-2003 | Отправлено: 12:20 08-09-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