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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » Автоматизация администрирования. Часть 2

Модерирует : lynx, Crash_Master, dg, emx, ShriEkeR

ShriEkeR (23-05-2011 23:06): Автоматизация администрирования. Часть 3  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 102 103 104 105 106 107 108 109 110 111 112 113 114

   

FreemanRU



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

                               Коллеги-администраторы  ....  


Часть 2я

Часть 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 подобный скриптовый язык с исходниками
  9. VBS2EXE - утилита для компиляции vbs и js скриптов в exe выдранная из пакета PrimalScript

    Дружественные темы :
  1. Автоматическая (unattended) установка Windows
  2. Интересные команды при работе с Linux
  3. Отличный сайт по скриптингу, и не только
  4. Использование KIX
  5. Использование WMI
  6. Программирование "удобняшек" на VBScript

 
Подробнее...
Создается по материалам данного топа

 
Надеюсь данная тема будет полезна для Вас.
 Предложения по реформированию шапки принимаю в ПМ Jovanotti

 

Всего записей: 3778 | Зарегистр. 16-07-2004 | Отправлено: 17:27 11-12-2006 | Исправлено: Smitis, 12:30 20-08-2008
Vladimir54

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

Всего записей: 868 | Зарегистр. 06-11-2005 | Отправлено: 00:27 15-01-2008
YDOG

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

Всего записей: 82 | Зарегистр. 08-06-2006 | Отправлено: 07:55 15-01-2008
hamet2000

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
как в vbs узнать именно dns имя компьютера типа computer.test.com ?

Всего записей: 57 | Зарегистр. 21-12-2005 | Отправлено: 02:36 16-01-2008
YNY

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
hamet2000
nslookup _ip_
а затем редактируй

Всего записей: 476 | Зарегистр. 18-05-2006 | Отправлено: 05:39 16-01-2008
cluster

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

Код:
set objGroup = GetObject("LDAP://" & strGroup1)
objGroup.Remove("LDAP://" & strMemberDN)

Скрипт удаляет пользователя из группы.
 
Нужно удалить пользователя из кучи групп. Но если в какой-то из групп этот пользователя нет, то скрипт выдаёт ошибку. Как бы побороть проблему?

Всего записей: 1720 | Зарегистр. 21-11-2003 | Отправлено: 12:24 17-01-2008
PhoenixUA



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

Всего записей: 2183 | Зарегистр. 17-11-2005 | Отправлено: 14:48 17-01-2008 | Исправлено: PhoenixUA, 14:49 17-01-2008
Starley25



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Господа!
 
Сильно извиняюсь - далек от знаний в области скриптописания.
Может кто-нить поможет: необходим скрипт для создания (занесения) в журнал (EventViewer) события в Aplication либо в System.
 
С уважением Starley25.
 
P.S. Извиняюсь за беспокойство - сам нашел.

Всего записей: 117 | Зарегистр. 07-03-2005 | Отправлено: 13:48 18-01-2008 | Исправлено: Starley25, 15:13 18-01-2008
mistx

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Интересует скрипт, который бы изменял разрешение экрана (1024х768 и 800х600)
Применительно как для домена так и для рабочей группы.
Прочитал на Hey, Scripting Guy!, что нет такого скрипта, который бы изменял разрешение.
Какие еще есть способы сделать это?
Может кто-нибудь видел административный шаблон для AD.
 
За любую помощь благодарен.

Всего записей: 765 | Зарегистр. 13-01-2005 | Отправлено: 15:12 19-01-2008 | Исправлено: mistx, 15:28 19-01-2008
cluster

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mistx
скрипта не встречал, но есть утилиты, например NirComLine. На удалённую машину либо через политику, либо через psexec.exe применять.

Всего записей: 1720 | Зарегистр. 21-11-2003 | Отправлено: 00:40 20-01-2008 | Исправлено: cluster, 00:43 20-01-2008
leonski



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Господа script гуру, пожалуйста подскажите (а ещё лучше дайте  готовый рабочий скрипт на vbscript, powershell или dos batch file для создания home folders для уже созданных заранее юзеров в Win2003 Active Directoty домене. Тоесть, пользователи уже созданы, нужно теперь создать им home папки на файл сервере. Папка должна быть создана и зашарена с именем юзера. В добавок ко всему, доступ к home папке имеет только тот юзер для которого она была создана. Заранее спасибо

Всего записей: 98 | Зарегистр. 07-07-2005 | Отправлено: 01:26 20-01-2008
G14



Добрый фей
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
leonski
http://www.scriptinganswers.com/archive/articles/VBScriptthatcreatesHomeFolder-Helpneeded.htm

----------
http://OpsMgr.ru (более мне не принадлежит. Кому принадлежит - не знаю.)

Всего записей: 3013 | Зарегистр. 19-01-2004 | Отправлено: 10:41 20-01-2008
leonski



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
[
Цитата:
leonski  
http://www.scriptinganswers.com/archive/articles/VBScriptthatcreatesHomeFolder-Helpneeded.htm
Спасибо за линк. К сожалению данный скрипт не делает share на папки. Не будешь же вручную зашаривать 300 home folders. В добавок ко всему, данный скрипт у меня не хочет работать. Так как я только начал заниматься vbscript-ами то мозгов пока не хватает почему он не работает
   
Привожу пример срипа внизу (я его просто скопировал с вышеуказанного линка)
 
Const WAIT_ON_RETURN = True
Const HIDE_WINDOW = 0
Const USER_ROOT_UNC = "\\Server1\users"
' Const strDomainName = "testdomain"
 
   Dim objDomain      
   Dim objUser            
   Dim vReturn                
 
Dim WshShell, WshNetwork, objFS, strUser
 
Set WshShell = Wscript.CreateObject("Wscript.Shell")
Set WshNetwork = WScript.CreateObject("WScript.Network")
Set objFS = CreateObject("Scripting.FileSystemObject")
 
ReDim vReturn(0)
   
 ' Connect to the domain
 '   Set objDomain = GetObject("WinNT://" & strDomainName)
 
Set objDomain = GetObject(LDAP://OU=Test Users,DC=test,DC=local)    
 ' apply a filter to retrieve only objects of class User
 ' objDomain.Filter = Array("User")
   
 ' iterate all user objects within the container
For Each objUser In objDomain
 
If objUser.class = "user" then
 
   If Trim(vReturn(0)) <> "" Then
   ReDim Preserve vReturn(UBound(vReturn) + 1)
   End If
     vReturn(UBound(vReturn)) = objUser.samAccountName
 
strUser = objUser.samAccountName
 
Call objFS.CreateFolder(USER_ROOT_UNC & "\" & strUser)
Call WshShell.Run("cacls " & USER_ROOT_UNC & "\" & strUser & _
" /e /g Administrator:F", HIDE_WINDOW, WAIT_ON_RETURN)
Call WshShell.Run("cacls " & USER_ROOT_UNC & "\" & strUser & _
" /e /g " & strUser & ":C", HIDE_WINDOW, WAIT_ON_RETURN)
 
End If
Next
 
Set objUser = Nothing
Set objDomain = Nothing
 GetComputerUsers = vReturn
==
 
Выбивает ошибку в строке Set objDomain = GetObject(LDAP://OU=Test Users,DC=testdomain,DC=local), PrimalScript ругается и говорит вот это: Microsoft VBScript compilation error: Expected ')'  Заменил строку вот этим: Set objDomain = GetObject("LDAP://OU=Test Users,DC=testdomain,DC=local") - Поставил "..." между LDAP  Теперь ругается вот этим: (null): Unspecified error  В чём проблема! Подсобите с советом пожалуйста.
 

Всего записей: 98 | Зарегистр. 07-07-2005 | Отправлено: 04:17 21-01-2008
Etalon

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
leonski
А зачем Вам именно 300 шар. Сделайте одну шару, с доступом "изменить" для всех пользователей. И в этой шаре 300 домашних папок пользователей и  уже на эти папки раздайте для каждого пользователя свои права с помощью NTFS
Выглядеть это будет примерно так
\\Server\Users
                      |
                      Vasya
                      |
                      Petya
                      |
                      Masha
                      ...
                      |
                      Dima
 
 
На PowerShell получение списка пользователей и создание папок в уже сушествующей шаре \\Server\Users будет выглядеть примерно так. Сам протестировать, к сожалению, пока не могу

Код:
 
$strFilter = "user"
 
$Domain = [adsi]"LDAP://OU=Test Users,DC=testdomain,DC=local"
$Searcher = New-Object System.DirectoryServices.DirectorySearcher
$Searcher.SearchRoot = $Domain
$Searcher.SearchScope = "Subtree"  
$Searcher.PageSize = 1000  
 
$Searcher.Filter = "(objectCategory=$strFilter)"
 
$s = ""
 
$Searcher.FindAll() | ForEach-Object -Process {
    $Entry = $_.GetDirectoryEntry()
                new-item -path "\\Server\Users" -name  $Entry.sAMAccountName -type "directory"
}
 

Всего записей: 306 | Зарегистр. 03-02-2006 | Отправлено: 11:20 21-01-2008 | Исправлено: Etalon, 11:37 21-01-2008
YNY

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

Цитата:
Теперь ругается вот этим: (null): Unspecified error

1-- TU="Test Users" , Set objDomain = GetObject("LDAP://OU=" & TU & ",DC=testdomain,DC=local")
 
2--Set objDomain = GetObject("LDAP://OU=" & "Test Users" & ",DC=testdomain,DC=local")

Всего записей: 476 | Зарегистр. 18-05-2006 | Отправлено: 12:26 21-01-2008
Romanov_Ilya

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

Цитата:
jONES1979
 
Цитата:
Const ADS_UF_PASSWORD_CANT_CHANGE = &H40  
    Const ADS_UF_DONT_EXPIRE_PASSWD = &H10000  
 
  Flag = objUser.Get("UserAccountControl")  
  newFlag = Flag or ADS_UF_PASSWORD_CANT_CHANGE  
  newFlag = newFlag or ADS_UF_DONT_EXPIRE_PASSWD  
  objUser.Put "userAccountControl", newFlag  
 
Пасиба, но не ставится галка "Пользователь не может менять пароль"

 
     Const ADS_UF_PASSWORD_CANT_CHANGE = &h0040  
    Const ADS_UF_DONT_EXPIRE_PASSWD = &h10000  
    Flag = objUser.Get("UserFlags")  
    newFlag = Flag or ADS_UF_PASSWORD_CANT_CHANGE  
    newFlag = newFlag or ADS_UF_DONT_EXPIRE_PASSWD  
    objUser.Put "UserFlags", newFlag  
    objUser.SetInfo
 
Работает Всё Удачи!

Всего записей: 1 | Зарегистр. 21-01-2008 | Отправлено: 17:20 21-01-2008
mistx

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

Цитата:
скрипта не встречал, но есть утилиты, например NirComLine. На удалённую машину либо через политику, либо через psexec.exe применять.

 
просмотрел справку по psexec.exe, что-то не нашел как изменить дисплей.
Какой именно синтаксис у нее?

Всего записей: 765 | Зарегистр. 13-01-2005 | Отправлено: 21:23 21-01-2008
leonski



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

Цитата:
Set objDomain = GetObject("LDAP://OU=" & "Test Users" & ",DC=testdomain,DC=local")  
YNY большое спасибо. Уря заработало. Как теперь привентить строку в скрипт чтобы ещё и зашаривало папку с именем пользователя плюс делала её скрытой (добавляла к имени шары $ знак) О-о-очень нужно! Заранее большое спасибо.

Цитата:
А зачем Вам именно 300 шар. Сделайте одну шару
Дело в том что в компании такие вот свои заморочки (не я их придумывал). Домашняя папка пользователя должна быть скрыта в сети. Как говорится, что бы всякие умники не видели то что им не нужно видеть на файл сервере.

Всего записей: 98 | Зарегистр. 07-07-2005 | Отправлено: 03:07 22-01-2008
Etalon

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
leonski
После некоторых размышлений родился такой вот сценарий
На сервере Server вручную создаём папку Users и предоставляем её в общий доступ
Предоставляем права на общую папку Users
Администраторы: "Полный доступ"
Пользователи" "Изменение"
Предоставляем права NTFS
Администраторы: "Полный доступ"
Запускаем на выполнение, приведённый ниже сценарий.
Сценарий написан на Windows PowerShell  
 
Код:
 
$strFilter = "user"
$Domain = [adsi]"LDAP://OU=Test Users,DC=testdomain,DC=local"
$Searcher = New-Object System.DirectoryServices.DirectorySearcher
$Searcher.SearchRoot = $Domain
$Searcher.SearchScope = "Subtree"  
$Searcher.PageSize = 1000  
$Searcher.Filter = "(objectCategory=$strFilter)"
 
[System.Security.AccessControl.DirectorySecurity]$ACL = Get-Acl -Path '"\\Server\Users"
 
$Searcher.FindAll() | ForEach-Object -Process {
    $Entry = $_.GetDirectoryEntry()
    $Folder = new-item -path "\\Server\Users" -name  $Entry.sAMAccountName.ToString() -type "directory"
    
    $AccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule($Entry.userPrincipalName, "Modify", "Allow")  
 
    $ACL.AddAccessRule($AccessRule)
    set-acl -aclobject $ACL -path $Folder
    $ACL.RemoveAccessRuleAll($AccessRule)
 
}
 

Добавляем на общую папку Users права NTFS
Пользователи: "Список содержимого папки"
 
В результате должна получиться примерно такая картина
\\Server\Users  
                      |  
                      Vasya  
                      |  
                      Petya  
                      |  
                      Masha  
                      ...  
                      |  
                      Dima  
С соответствующими правами
 
Полученные папки пользователей можно подключать из сценариев регистрации следующим образом
 
из .bat файлов
net use z: \\Server\Users\%USERNAME
 
из .vbs
Set WshNetwork = WScript.CreateObject("WScript.Network")
WshNetwork.MapNetworkDrive "z:", "\\Server\Users\" & $WshNetwork.UserName
 
из .ps1
$WshNetwork = New-Object -com "WScript.Network"
$WshNetwork.MapNetworkDrive("z:", "\\Server\Users\" + $WshNetwork.UserName)

Всего записей: 306 | Зарегистр. 03-02-2006 | Отправлено: 09:59 22-01-2008 | Исправлено: Etalon, 15:48 24-01-2008
YNY

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

Цитата:
leonski
на страницах ранее есть примеры зашаривания папок и отключения их

Всего записей: 476 | Зарегистр. 18-05-2006 | Отправлено: 06:03 23-01-2008
zaratustra

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
прошу прощения за глупый вопрос
вин2к3
3 сетевые - локалка и 2 провайдера
+2 подключаемых соединения - к каждому провайдеру, один IP статический, второй IP динамический
 
пров2 - PPP адаптер:
   IP-адрес  . . . . . . . . . . . . : 81.169.ууу.ууу
   Маска подсети . . . . . . . . . . : 255.255.255.255
   Основной шлюз . . . . . . . . . . : 81.169.ууу.ууу
 
в таблице маршрутизации прописаны 2 статических маршрута:
  Сетевой адрес            Маска    Адрес шлюза      Метрика
     0.0.0.0             0.0.0.0              81.169.ууу.ууу       3
     81.169.147.0    255.255.255.0    81.169.ууу.ууу       1
 
т.е. используется динамический IP второго провайдера
при окончании аренды выдается другой IP и приходиться ручками удалять статические маршруты и забивать новые типа  
 
  Сетевой адрес            Маска    Адрес шлюза      Метрика
     0.0.0.0             0.0.0.0              81.169.ххх.ххх       3
     81.169.147.0    255.255.255.0    81.169.ххх.ххх       1
 
как этот процесс можно автоматизировать?
определить IP на этом интерфейсе
если меняется, удалить стат.маршруты в таблице маршрутизации
забить новые с новым IP
перезапустить подключение
 
пробовал копать в сторону netsh /? не сильно вышло..
 
зы: "решения" типа забить ручками любой полученный адрес в свойства TCP/IP не подходят - пробовал - по оканчанию срока аренды не соединяется - сбрасываешь "получать автоматически" - выдает новый IP и подключается
с провайдером договориться про стат.адрес тоже не удалось - услуги как таковой не предоставляют
 
заранее спасибо

Всего записей: 439 | Зарегистр. 19-12-2002 | Отправлено: 09:14 01-02-2008
   

Страницы: 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 102 103 104 105 106 107 108 109 110 111 112 113 114

Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » Автоматизация администрирования. Часть 2
ShriEkeR (23-05-2011 23:06): Автоматизация администрирования. Часть 3


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.Board
© Ru.Board 2000-2020

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru