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

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

 

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

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

Цитата:
strizhakovs

 
The following code example shows how to use the ADsOpenObject function to bind to a specific server using the ADS_SERVER_BIND flag:
ADsOpenObject("LDAP://server/domain.com/DC=domain, DC=com",..., ADS_SERVER_BIND)
 
If you cannot specify the fully qualified DNS domain name, you can use other forms for the HostName parameter. The formats for specifying a HostName parameter are (in order of preference):  
 
Fully Qualified Domain Name (FQDN), such as dev.myCompany.com  
Fully Qualified Machine Name (FQMN), such as myComputer.dev.myCompany.com  
Flat domain name, such as dev  
NETBIOS computer name, such as myComputer  
IP address, such as 127.0.0.1  
Note   If you specify a NETBIOS computer name or an IP address, you cannot perform mutual authentication.
 
 
Добавлено:
If Kerberos authentication is required for the successful completion of a specific directory request, the binding string must use either a serverless ADsPath, such as  
 
LDAP://CN=Jeff Smith,CN=users,DC=fabrikam,DC=com,
 
 or it must use an ADsPath with a fully-qualified DNS server name, such as  
 
LDAP://server01.fabrikam.com/CN=Jeff Smith,CN=users,DC=fabrikam,DC=com.
 
Binding to the server using a flat NETBIOS name or a short DNS name, for example, using the name server01 instead of server01.fabrikam.com, is not guaranteed to yield Kerberos authentication.
 
 
 
Добавлено:
http://support.microsoft.com/kb/q258507/
 
 
Добавлено:
ПРИМЕР использования OpenDSObject() из MSDN {вызов OpenDSObject() "аналогичен"   GetObject(), т.е. в GetObject() должны передаваться параметры так же как в примере ниже, а не как у тебя}:
 
Dim dso As IADsOpenDSObject
Dim obj1, obj2 As IADs
Dim szUsername As String
Dim szPassword As String
 
Set dso = GetObject("LDAP:")
 
' Insert code securely.
 
' Supply full credentials to initiate a server connection.
 
Set obj1 = dso.OpenDSObject( _
    "LDAP://server1/CN=Dept1,DC=Fabrikam,DC=com", _
    szUsername, _
    szPassword, _
    ADS_SECURE_AUTHENTICATION + ADS_SERVER_BIND)
 
 
Добавлено:
Возмона это уже лишнее но все же
 
LDAP://<servername>/rootDSE
 
ПОСМОТРИ что у тя за rootDSE, возмона там и есть твой зацикленный КД, и вообще не понятно зачем унифицировать скрипт (определять программно домен, а не прописывать его руками если от этого одни проблемы.
 
The <servername> is the DNS name of a server. The <servername> is optional, as shown in the following format.
 
LDAP://rootDSE
 
In this case, a default domain controller from the domain that the security context of the calling thread is in will be used. If a domain controller cannot be accessed within the site, the first domain controller that can be found will be used.
 

Всего записей: 476 | Зарегистр. 18-05-2006 | Отправлено: 06:29 14-09-2007
awsswaawsswa

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всё разобрался - раздать права на каталог через XCACLS.vbs
 
имя домена только с большими буквами "DOMAIN"
 
С:\>cscript xcacls.vbs "\\Server\Public\user1\" /I COPY /g "DOMAIN\user1 ":F /Q /L "\\Server\logfilez$\create_folders.txt"
 
другой косяк
 
Error -2147217405:  occurred in connecting to server. (Msg#3203)
Error description: Отказано в доступе  
 
в логах ругань - хотя галочки на правах стоят не правильно - писать в каталог даёт

Всего записей: 91 | Зарегистр. 06-10-2004 | Отправлено: 07:45 14-09-2007 | Исправлено: awsswaawsswa, 10:50 14-09-2007
YNY

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

Цитата:
XCACLS.vbs

а че твой домен реально имеет имя типа domain.local???

Всего записей: 476 | Зарегистр. 18-05-2006 | Отправлено: 09:03 14-09-2007
inew



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Наверно кто-нибудь решал задачу создания большого количества однотипных учётных записей пользователей в домене,  
например, нужно создать пользователей от gr_96_1 до gr_96_118.
ну и желательно уже с паролями (пароль – случайное число длиной 4) , пароли можно вывести в отдельный текстовый файл.
Пользователей поместить в OU Students.
Помогите со скриптом.

Всего записей: 130 | Зарегистр. 07-05-2003 | Отправлено: 08:22 15-09-2007
Shuva



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вопрос. Как в открытый для записи файл (методом ForAppending = 8) записать новую строку в определенное место (допустим 3-ей строкой) Помогите плиз. Спасибо.

Всего записей: 42 | Зарегистр. 05-12-2005 | Отправлено: 12:04 17-09-2007
pusiyjan



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

Цитата:
Наверно кто-нибудь решал задачу создания большого количества однотипных учётных записей пользователей в домене,  
например, нужно создать пользователей от gr_96_1 до gr_96_118.
ну и желательно уже с паролями (пароль – случайное число длиной 4) , пароли можно вывести в отдельный текстовый файл.
Пользователей поместить в OU Students.
Помогите со скриптом.  

присоединяюсь к вопросу!

Всего записей: 823 | Зарегистр. 17-12-2003 | Отправлено: 13:06 17-09-2007
AlexStupenev

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
inew и pusiyjan
 
Взято из Script Center
Demonstration script that creates 1,000 user accounts (named UserNo1, UserNo2, UserNo3, etc.) in the Users container in Active Directory. The script is useful for test scenarios that require multiple user accounts
 
Set objRootDSE = GetObject("LDAP://rootDSE")
Set objContainer = GetObject("LDAP://cn=Users," & _
    objRootDSE.Get("defaultNamingContext"))
For i = 1 To 1000
    Set objLeaf = objContainer.Create("User", "cn=UserNo" & i)
    objLeaf.Put "sAMAccountName", "UserNo" & i
    objLeaf.SetInfo
Next
WScript.Echo "1000 Users created."
    

Всего записей: 1 | Зарегистр. 27-01-2006 | Отправлено: 15:06 17-09-2007
klimusu



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть ли возможнось создавать файлы *.rdp средствами, так сказать, батничков?
Необходимы: адрес, пароль, домен, размер уд. стола, цвет. политра...  

Всего записей: 931 | Зарегистр. 23-01-2006 | Отправлено: 18:29 17-09-2007
jONES1979



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
inew и pusiyjan пример массового создания юзеров в ad,  
в качестве исходных данных - текстовый файл (можно заменить на любой массив строк)
комментарии:
1. пароль пользователю устанавливается ПОСЛЕ того как создана учетка, то есть после вызова  objLeaf.SetInfo .  Иначе у меня генерило ошибку.
2. тут же можно посмотреть как устанавливаются флаги на свойстве "UserAccountControl" В примере - устанавливается "неустаревающий" пароль
3. так же: Созданная учетка активируется (т.к. по умолчанию она заблокирована, locked) и добавляется в указанную группу
 
Подробнее...

Всего записей: 324 | Зарегистр. 20-05-2005 | Отправлено: 00:10 18-09-2007 | Исправлено: jONES1979, 00:11 18-09-2007
pusiyjan



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

Всего записей: 823 | Зарегистр. 17-12-2003 | Отправлено: 16:52 18-09-2007
awsswaawsswa

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
klimusu
 
вот примерно то, что ты хотел
Generating RDP Files using VBSCRIPT  
скрипт не проверял - возможны ошибки
 
On Error Resume Next
StrOU = InputBox("Please Enter in the name of the OU that you wish to query, this needs to be in the format OU=<Name>")
 
Set objRootDSE = GetObject("LDAP://rootDSE")
strADsPath = "LDAP://" & strOU & "," & objRootDSE.Get("defaultNamingContext")
Set objDomain = GetObject(strADsPath)
On Error Resume Next
Dim objConn, objRecordSet  
Set wshNetwork = WScript.CreateObject("WScript.Network")
strDomainName = wshNetwork.userDomain
 
Set Filesys = CreateObject ("Scripting.FileSystemObject")  
Set objCommand = CreateObject("ADODB.Command")  
Set objConn = CreateObject("ADODB.Connection")  
objConn.Open "Provider=ADsDSOObject;"  
Set objCommand.ActiveConnection = objConn  
objCommand.CommandText = "SELECT Name FROM "+"'"+strADsPath+"'"+" WHERE objectClass = 'COMPUTER'"
'MsgBox objCommand.CommandText
objCommand.Properties("searchscope") = 2
objCommand.Properties("Page Size") = 1000
Set objRecordSet = objCommand.Execute  
While Not objRecordSet.EOF  
strComputer = objRecordSet.Fields("Name")' ObjFile.Readline
Set objFileOut = Filesys.CreateTextFile(strComputer & ".rdp", TRUE)
objFileOut.Write "screen mode id:i:2" & vbcrlf
objFileOut.Write "desktopwidth:i:1280" & vbcrlf
objFileOut.Write "desktopheight:i:1024" & vbcrlf
objFileOut.Write "session bpp:i:32" & vbcrlf
objFileOut.Write "winposstr:s:0,1,9,302,809,923" & vbcrlf
objFileOut.Write "full address:s:" & strComputer & vbcrlf
objFileOut.Write "compression:i:1" & vbcrlf
objFileOut.Write "keyboardhook:i:2" & vbcrlf
objFileOut.Write "audiomode:i:2" & vbcrlf
objFileOut.Write "redirectprinters:i:0" & vbcrlf
objFileOut.Write "redirectcomports:i:0" & vbcrlf
objFileOut.Write "redirectsmartcards:i:1" & vbcrlf
objFileOut.Write "redirectclipboard:i:1" & vbcrlf
objFileOut.Write "redirectposdevices:i:0" & vbcrlf
objFileOut.Write "drivestoredirect:s:" & vbcrlf
objFileOut.Write "displayconnectionbar:i:1" & vbcrlf
objFileOut.Write "autoreconnection enabled:i:1" & vbcrlf
objFileOut.Write "prompt for credentials:i:0" & vbcrlf
objFileOut.Write "negotiate security layer:i:1" & vbcrlf
objFileOut.Write "remoteapplicationmode:i:0" & vbcrlf
objFileOut.Write "domain:s:" & strDomainName & vbcrlf  
objFileOut.Write "alternate shell:s:" & vbcrlf
objFileOut.Write "shell working directory:s:" & vbcrlf
objFileOut.Write "disable wallpaper:i:0" & vbcrlf
objFileOut.Write "disable full window drag:i:0" & vbcrlf
objFileOut.Write "allow desktop composition:i:1" & vbcrlf
objFileOut.Write "allow font smoothing:i:1" & vbcrlf
objFileOut.Write "disable menu anims:i:0" & vbcrlf
objFileOut.Write "disable themes:i:0" & vbcrlf
objFileOut.Write "disable cursor setting:i:0" & vbcrlf
objFileOut.Write "bitmapcachepersistenable:i:1" & vbcrlf
objFileOut.Write "gatewayhostname:s:" & vbcrlf
objFileOut.Write "gatewayusagemethod:i:0" & vbcrlf
objFileOut.Write "gatewaycredentialssource:i:4" & vbcrlf
objFileOut.Write "gatewayprofileusagemethod:i:0" & vbcrlf
objFileOut.Write "EnableCredSSPSupport:i:0" & vbcrlf
objFileOut.close
Set objFileOut = nothing
objRecordSet.MoveNext  
Wend  
Wscript.echo "The Script has Completed - RDP File created"
Set wshNetwork = Nothing

Всего записей: 91 | Зарегистр. 06-10-2004 | Отправлено: 07:15 19-09-2007
Der Meister

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
1216 скриптов, извлеченных из Community-Submitted Scripts Center

Всего записей: 117 | Зарегистр. 06-08-2005 | Отправлено: 01:10 20-09-2007
SergIRBIS



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Кто-нить может подсказать от чего это может быть и как избавиться от бага :
У меня есть логон скрипт который добовляет кометы рядом с имененм компа в сетевом окружении.
 
Для того чтобы он нормально выполнялся у пользователей ему нужно перезапускать сервис - сервер (У юзера на это прав нет), для этого я создал политику которая разрешает всем прошедшим проверку перезапускать эту службу.  
 
Но в действительности после включения компьютера прав на перезапуск службы нет..... я добавил политику с принудительным обновлением политики безопасности копьютера через 5 минут и о чудо если зайти под пользователем через 5 минут то есть права на перезапуск службы.....  
 
У кого какие соображения как это исправить веть не заставишь всех ждать 5 минут да и обновление политики так часто это не есть гуд...

Всего записей: 52 | Зарегистр. 08-05-2007 | Отправлено: 09:57 20-09-2007
jONES1979



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
pusiyjan про русские названия - ничего не скажу... Опиши ошибку, что конкретно пишет?
 
Добавлено:
Der Meister Сорри, файлик скачивается до 160-220 килобайт и обрывается с ошибкой. Пробовал раз 5-8. Можешь перевыложить на рапиду? Заранее пасиба!

Всего записей: 324 | Зарегистр. 20-05-2005 | Отправлено: 18:51 20-09-2007 | Исправлено: jONES1979, 00:54 21-09-2007
YNY

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

Цитата:
SergIRBIS

как вариант создай задачу на всех компах, которая будет запускаться от имени админа или того, кому мона перезапускать службу, закрепи за логоном на комп или через опр вр,
а вообще-то странно что дав прав ты их не видешь возмона надо просто перелогинеться после 15-30 минут и все заработает и так  
 
Добавлено:

Цитата:
Shuva
 
ForAppending 8 --- Open a file and write to the end of the file (пишет только в конец, а не туда куда хочешь).

Всего записей: 476 | Зарегистр. 18-05-2006 | Отправлено: 10:47 21-09-2007
abasov



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Установка портмаппинга на удаленную машину (аля ~Прокси)
 
Из start.vbs запускается RemoteRun.vbs (Как объеденить код????)
В RemoteRun.vbs указать свой прокси. Runas.exe - Для консперации, не доменный же светить в логах...
 
start.vbs :

Код:
 
Dim WshShell, ObjFSO, Systemroot  
Set WshShell = CreateObject("WScript.Shell")  
set objFSO = CreateObject("Scripting.FileSystemObject")  
 
 
strComputer = "XXXXX"  
appl="cmd /C wscript.exe RemoteRun.vbs"
pass="XXXXXX"  
users="XXXXXX"  
systemroot = WshShell.ExpandEnvironmentStrings("%Systemroot%")
 
Const OverwriteExisting = TRUE  
 
 
objFSO.CopyFile "tcppm.exe" , "\\" & strComputer & "\admin$\tcppm.exe" , OverwriteExisting  
objFSO.CopyFile "RemoteRun.vbs" , systemroot & "\system32\RemoteRun.vbs" , OverwriteExisting    
Set objFSO = NOTHING  
 
wscript.sleep(1000)  
 
 
Set objWMIService = GetObject _  
      ("winmgmts:\\.\root\cimv2:Win32_Process")  
      errReturn = objWMIService.Create _  
("cmd.exe /c ""title RUNAS_AUTO & runas.exe /netonly /user:" & users & " """ & appl & """""", Null, Null, intProcessID)  
wscript.Sleep(1000)  
wshShell.AppActivate "RUNAS_AUTO"  
wshShell.SendKeys pass & "{ENTER}"  
 

 
 
RemoteRun.vbs:

Код:
 
strComputer = "XXXXX"
Set objWMIService = GetObject _
    ("winmgmts:\\" & strComputer & "\root\cimv2:Win32_Process")
errReturn = objWMIService.Create _
("cmd /C tcppm -i 53 proxy 3128", Null, Null, intProcessID)
 

 
tcppm _ttp://3proxy.ru/doc/man8/tcppm.8.html

Всего записей: 345 | Зарегистр. 12-11-2002 | Отправлено: 13:07 21-09-2007 | Исправлено: abasov, 06:25 24-09-2007
Der Meister

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
jONES1979
На рапиду не могу - проблемы
Отсюда качается без проблем
CommunitySubmittedScripts
 
Обновлять буду 1 раз в неделю (Community-Submitted Scripts Center обновляют каждый понедельник)

Всего записей: 117 | Зарегистр. 06-08-2005 | Отправлено: 14:01 21-09-2007
GoodBoy

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, в каком редакторе лучше писать на VBScript, чтобы выскакивали подсказки и можно было произвести отладку программы? Сам пока использую Far.

Всего записей: 7 | Зарегистр. 14-03-2006 | Отправлено: 20:29 22-09-2007
mozers



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
GoodBoy
Специализированный Adersoft VB Script Editor
или универсальный SciTE. Есть, конечно и другие...

Всего записей: 2187 | Зарегистр. 03-01-2002 | Отправлено: 21:15 22-09-2007
north_crow

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ребята!
как с помощью vbs можно посмотреть пермишены на ветку реестра?

Всего записей: 172 | Зарегистр. 04-12-2002 | Отправлено: 21:44 22-09-2007
   

Страницы: 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.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru