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

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

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Парни а как скриптом проставить всем пользователям домашнюю директорию ???  
Что бы цеплялся диск H: с путем \\server\home\user ???

Всего записей: 13 | Зарегистр. 14-03-2004 | Отправлено: 19:14 09-11-2005
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
felixroot
Ты бы написал какие системы на клиентских компьютерах и какой язык ты используешь для написания скрипта
Варианты

Код:
Net Use H: /Home


Код:
в свойствах пользователей прописываешь - "Домашняя папка" доключить h: к \\server\home\User


Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 10:44 10-11-2005
felixroot

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть домен на Windows 2000  и NetWare 5  
Вся проблема в том что cn у всех заведены русскими буквами (( типа Иванов И.И.  
и при попытке обращения к cn, скрипт ругается. Скрипт на WHS.  
Может кто помегет с кодок чтобы на всем домене у всех прописать домашние директории.
То есть не по одному, а весь домен сразу ???  

Всего записей: 13 | Зарегистр. 14-03-2004 | Отправлено: 11:47 10-11-2005
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
felixroot
1. Выделяешь несколько пользователей (Можно всех)
2. Вызываешь свойства
3. Переход на вкладку Профиль
4. "Домашняя папка"
5. Подключить H: к \\server\home\%UserName%

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 12:10 10-11-2005
felixroot

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
C выделением не получится нужно скриптом как то сделать

Всего записей: 13 | Зарегистр. 14-03-2004 | Отправлено: 13:32 10-11-2005
AlexSSS

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
felixroot
лови скрипт, вставишь его в Excel-->Tools-->Macros-->Visual Basic Editor-->Modules-->add module-->Module1
 
скрипт работает со стандартным расположением пользователей в Users (без OU)
закомментированный кусок как раз что-то прописывает в AD
 
Sub test()
 
Cells.Select
Selection.ClearContents
     
On Error Resume Next
 
Const E_ADS_PROPERTY_NOT_FOUND = &H8000500D
Set objOU = GetObject("LDAP://cn=users,dc=dom1,dc=dom2")
   
objOU.Filter = Array("user")
n = 0
For Each objUser In objOU
                    n = n + 1
                    Sheets("Users").Cells(n, 1).Value = objUser.cn
                    Sheets("Users").Cells(n, 2).Value = objUser.samAccountName
                    Sheets("Users").Cells(n, 3).Value = objUser.FirstName
                    Sheets("Users").Cells(n, 4).Value = objUser.LastName
                    Sheets("Users").Cells(n, 5).Value = objUser.DisplayName
                    Sheets("Users").Cells(n, 6).Value = objUser.AccountDisabled
                    Sheets("Users").Cells(n, 7).Value = objUser.LastLogin
                    Sheets("Users").Cells(n, 8).Value = objUser.PrimaryGroupID
                    Sheets("Users").Cells(n, 9).Value = objUser.LoginScript
                     
'                    If Trim(objUser.LoginScript) = "init" Then
'                        objUser.LoginScript = "init.bat its"
 '                       objUser.SetInfo
'                    End If
 
Next
 
    Selection.Sort Key1:=Range("I1"), Order1:=xlAscending, Key2:=Range("H1") _
        , Order2:=xlAscending, Key3:=Range("A1"), Order3:=xlAscending, Header:= _
        xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
 
End Sub
 
Добавлено:
PS. Тебе нужно прописывать не скрипт, а home директори, найди сам, как точно называется это свойство. Если не найдешь, освобожусь, сам найду

Всего записей: 747 | Зарегистр. 26-06-2004 | Отправлено: 14:03 10-11-2005
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
felixroot
1. А в чем проблема с выделением?
2. Net use H: /Home пробовал?
3. Приведи скрипт на WSH и что именно он ругается/в каком месте

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 14:09 10-11-2005
felixroot

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подожди но ты обращаешься тут по  CN "LDAP://cn=users
А вот как реализовать обращение через samAccountName ????  
Реализация с OU проблем нету но опять же ты реализешь на одного пользователя  
а как придумать циклом ???

Всего записей: 13 | Зарегистр. 14-03-2004 | Отправлено: 15:27 10-11-2005
AlexSSS

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
> Подожди но ты обращаешься тут по  CN "LDAP://cn=users
> А вот как реализовать обращение через samAccountName ????  
> но опять же ты реализешь на одного пользователя  
> а как придумать циклом ???
я в цикле ( For Each objUser In objOU ) просматриваю ВСЕХ пользователей, которые находятся в Users. Если ты не используешь OU, то они в Users  все.
 
а samAccountName - это одно из свойств обьекта objUser

Всего записей: 747 | Зарегистр. 26-06-2004 | Отправлено: 15:41 10-11-2005 | Исправлено: AlexSSS, 15:43 10-11-2005
felixroot

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

Всего записей: 13 | Зарегистр. 14-03-2004 | Отправлено: 16:20 10-11-2005
AlexSSS

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
1. чтобы получить право доступа к этим обьектам, надо запускать эксель под правами сервер оператора или домен админа
2. dc=dom1,dc=dom2 - на имя своего домена заменил?
3. убери на время  On Error Resume Next - на чем будет ошибка?

Всего записей: 747 | Зарегистр. 26-06-2004 | Отправлено: 16:30 10-11-2005 | Исправлено: AlexSSS, 16:32 10-11-2005
felixroot

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
1 Название домена поменял  
2 Запускаю на контроллере домена  
3 создал скрипт home.vbs в котором этот код запускаю с консоли  
4 ругается на символ ":"  Selection.Sort Key1:
 
Добавлено:
И если я вот эту строку LDAP://cn=users,dc=dom1,dc=dom2
изменю вот так он не будет искать по OU "LDAP://cn=users,ou=TEST,dc=dom1,dc=dom2" ????

Всего записей: 13 | Зарегистр. 14-03-2004 | Отправлено: 16:42 10-11-2005
AlexSSS

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

Всего записей: 747 | Зарегистр. 26-06-2004 | Отправлено: 17:03 10-11-2005
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
felixroot
Что-то вы мудрите на пару с AlexSSS.
Сейчас проверил с выделением всех пользователей - прошло на ура.
Поясни чем плох этот способ с выделением пользователей и заменой свойств

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 17:26 10-11-2005
AlexSSS

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
> Сейчас проверил с выделением всех пользователей - прошло на ура.  
на DC Windows 2000 этот вариант не проходит. Если же у felixroot DC Windows 2003, то он действительно себе усложняет задачу
 
Добавлено:
> И если я вот эту строку LDAP://cn=users,dc=dom1,dc=dom2
> изменю вот так он не будет искать по OU "LDAP://cn=users,ou=TEST,dc=dom1,dc=dom2" ????
 
похоже тут не хватает запятых, вопроса не понял.
 
>LDAP://cn=users,ou=TEST,dc=dom1,dc=dom2
будут просматриваться пользователи именно этого OU
хотя тут ты точно ошибся в пути, правильно
LDAP://ou=TEST,cn=users,dc=dom1,dc=dom2

Всего записей: 747 | Зарегистр. 26-06-2004 | Отправлено: 17:33 10-11-2005
felixroot

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А на VBS как перевести а то через EXEL как то не красиво получается

Всего записей: 13 | Зарегистр. 14-03-2004 | Отправлено: 11:56 11-11-2005
Nello



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

Код:
 
Option Explicit
On Error Resume Next
Dim objConn, objComm, objRS, objUser
Dim strBase, strFilter, strAttrs, strScope
'*******************************************************************
'Set the ADO search criteria
'*******************************************************************
strBase   = "<LDAP://ou=My OU,dc=domain,dc=local>;"
strFilter = "(&(objectclass=user)(objectcategory=Person));"
strAttrs  = "ADsPath;"
strScope  = "Subtree"
   
set objConn = CreateObject("ADODB.Connection")
objConn.Provider = "ADsDSOObject"
objConn.Open
'*******************************************************************
'Need to enable Paging in case there are more than 1000 objects returned
'*******************************************************************
Set objComm = CreateObject("ADODB.Command")
Set objComm.ActiveConnection = objConn
objComm.CommandText = strBase & strFilter & strAttrs & strScope
objComm.Properties("Page Size") = 1000
Set objRS = objComm.Execute(  )
While not objRS.EOF
  Set objUser = GetObject( objRS.Fields.Item("ADsPath").Value )
  Profile_Dir = objUser.Get("sAMAccountName")
  objUser.homeDirectory = "\\server\profile$\"+Profile_Dir
  objUser.Homedrive="Z:"
  objUser.LoginScript = "start.bat"
  objUser.SetInfo
  if Err.Number <> 0 Then
     Wscript.Echo objUser.Name & " error occurred"
     Err.Clear
  Else
    ' Если юзеров много, то это лучше закомментировать  
   Wscript.Echo objUser.Name & " modified"
  End if
  objRS.MoveNext
Wend
 

Всего записей: 133 | Зарегистр. 23-04-2003 | Отправлено: 12:24 11-11-2005
Breaker

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите скрипт, а то что-то не получается
Надо скопировать ярлык на рабочий стол
Т.к. не все входят под учетными записями домена, то скрипт придется ставить на загрузку комьютера? И ярлык копировать придется в \all users\desktop.
 
if not exist "%homedrive%%homepath%\Рабочий стол\111.lnk" xcopy "\\%userdomain%\netlogon\111.lnk" "%homedrive%%homepath%\Рабочий стол\"
 
Но это только для пользователей домена, а надо для локальных юзеров.

Всего записей: 38 | Зарегистр. 19-08-2001 | Отправлено: 16:16 11-11-2005
felixroot

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Что то ругается на эту строчку Set objRS = objComm.Execute(  )

Всего записей: 13 | Зарегистр. 14-03-2004 | Отправлено: 08:45 14-11-2005
alecsandrb

Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Подскажите пожалуйста следующее:
 - при создании новых OU необходимо убедиться что таких еще нет или же они есть
   и следовательно создавать заново ненужно.
 
   Если использовать следующую конструкцию запроса как получить
   ответ что такой OU (Sample) существует/не существует?
   Set objOU = GetObject("LDAP://OU=Sample,dc=dom1,dc=dom2")

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru