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

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



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

Цитата:
лучше заюзать метод WScript.Network.EnumNetworkDrives()

Во во, это  и имел в виду
 
ALL
Предлагаю  размешать ссылки на Ваши ОРИГИНАЛЬНЫЕ скрипты  
в шапке. Начинаю со своих "творений"
 
Смена букв разделов Е и D местами
(скрипт  из двух частей  dtoe.cmd   и  change.vbs)
# dtoe.cmd #
 
# change.vbs #
Автоматическая установка приложений  с использованием метода SendKeys (на примере установки FAR manager)
far.vbs
 
 
 
 

Всего записей: 718 | Зарегистр. 22-12-2002 | Отправлено: 17:05 22-03-2005 | Исправлено: Jovanotti, 17:20 22-03-2005
AlexSSS

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Логон скрипт прописывает персональную папку пользователю в "Personal" ключей
"HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders"
"HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders"
 
захожу в My Documents и попадаю в старую персональную папку. Доступ к прописанной папке получается только после logoff/logon пользователя
 
каким образом заставить Windows обращаться к прописанной папке, а не к той, которая хранится где-то в кэше?

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

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, уважаемые, а можно ли воспользоваться VBScript для работы с FTP-протоколом?  
 
Скажем, необходимо установить соединение с сервером, проверить существование заданного файла, узнать время создания и размер, в случае необходимости закачать файл на сервер, скачать с сервера и т.д.?

Всего записей: 94 | Зарегистр. 04-06-2004 | Отправлено: 23:31 22-03-2005
merlkerry

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Laurent
ну тока разве что и с ипользованием ftp.exe + WScript.Shell.Run()


----------
Вокруг одни враги.
Я испытываю естественный скептицизм по поводу чистоты человеческих намерений.

Всего записей: 1521 | Зарегистр. 16-09-2002 | Отправлено: 00:19 23-03-2005 | Исправлено: merlkerry, 00:29 23-03-2005
igor_andreev

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Laurent
Встроенные средства WSH бедноваты, узнать, есть ли файл на фтп или скачать его еще можно. А вот если установишь Chilkat FREE FTP ActiveX - то возможности VBScript расширяться до уровня среднестатистического фтп-клиента. Все перечисленное легко будет делать

Цитата:
необходимо установить соединение с сервером, проверить существование заданного файла, узнать время создания и размер, в случае необходимости закачать файл на сервер, скачать с сервера и т.д.?

http://www.chilkatsoft.com/ChilkatFtp.asp
 

Всего записей: 1704 | Зарегистр. 08-12-2004 | Отправлено: 00:25 23-03-2005
merlkerry

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

Цитата:
вот если установишь Chilkat FREE FTP ActiveX - то возможности VBScript расширяться до уровня среднестатистического фтп-клиента.

 
я бы 3 раза подумал, прежде чем устанавливать чей-то ActiveX ... - я не нашел у них на сайте исходников ...

----------
Вокруг одни враги.
Я испытываю естественный скептицизм по поводу чистоты человеческих намерений.

Всего записей: 1521 | Зарегистр. 16-09-2002 | Отправлено: 00:35 23-03-2005
igor_andreev

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
merlkerry
Это не "чей-то", Chilkat Software делает очень качественные ActiveX, рекомендую. А какие могут быть исходники, если у них почти вся продукция платная и довольно таки дорогая? Хоть FTP ActiveX бесплатным оставили, респект им за него. Скачай, тебе понравится

Всего записей: 1704 | Зарегистр. 08-12-2004 | Отправлено: 01:10 23-03-2005
AlexSSS

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Chilkat очень рекомендую, я сейчас использую ChilkatMail2 для каталогизации мейл архивов - после нахождения этих Active-X код программы сократился во много раз, при этом она стала ГОРАЗДО надежнее и читабельнее.

Всего записей: 747 | Зарегистр. 26-06-2004 | Отправлено: 09:05 23-03-2005
merlkerry

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
чень рекомендую
А я очень-очень рекомендую JudoScript, очень удобная вещь, простая и понятная - с исходниками. Ссылку добавил в шапку.
 
вот пример работы с FTP
 

Код:
 // Creating connection and setting connection mode...
o = ftp( #args[0] , #args[1] );
o.setConnectMode( 'PASV' );
 
o.login( #args[2] , #args[3] ); // Trying to log in...
 
o.chdir( #args[5].getFilePath() ); // Trying to change the local dir
 
o.put( #args[4] , #args[5].getFileName() ); // Trying to put file...
 
// Trying to get a listing of all files
a = o.dir( #args[5].getFilePath() );  
for x in a { println x; }


----------
Вокруг одни враги.
Я испытываю естественный скептицизм по поводу чистоты человеческих намерений.

Всего записей: 1521 | Зарегистр. 16-09-2002 | Отправлено: 10:59 23-03-2005
Laurent

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
igor_andreev
AlexSSS
merlkerry
 
Спасибо вам огромное ))) Слушайте, я в этой теме совсем новичок, VBScript'ом начал пользоваться с начала этой недели - жизнь заставила, с ISA Server работаю...  
 
А вопрос в следующем - как вообще можно разобраться в этих дебрях? Как я могу узнать, что я могу делать с помощью стандартных объектов ActiveX (или.. как они там называются, я пока еще не понял) ?
 
Документацию к Windows Scripting 5.6 уже скачал... только... в голове бардак такой, откуда какие объекты... Откуда что начинает использоваться... Как-то это вообще структурируется по темам?
 
Шапку читал, но особой методологии не надблюдаю.

Всего записей: 94 | Зарегистр. 04-06-2004 | Отправлено: 15:05 23-03-2005
AlexSSS

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
www.networkdoc.ru
Отличный сайт, на котором есть и большой раздел по скриптам.
Windows Script Host (WSH)
http://www.networkdoc.ru/insop/whs.html
для начинающих - самое-то

Всего записей: 747 | Зарегистр. 26-06-2004 | Отправлено: 15:41 23-03-2005
alecsandrb

Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
В ходе экспериментов с WSH смог сделать следующий скрипт,
смысл которог в следующем: в зависимости от пользователя ему подключаются  
несколько общих и один личный сетевой диск, путь к личному диску прописан
в строке <Профиль> и оттуда считывается.
На сервере для самого Администратора скрипт работает и все делает, а когда я указываю его в политике домена в автозагрузке  
(GPO(Defaul Domain Policy)->Конфигурация пользователя->Конфигурация Windows->Сценарии входа\выхода->Вход) то на другом ПК домена при входе любым пользователем домена не срабатывает, по крайней мере дисков после входа нет.
После запуска этого скрипта вручную с сервера на рабочей станции получаю такую ошибку:
Сценарий: \\domain\netlogon\script.vbs
Строка: 18
Символ: 3
Ошибка: Table does not exist
Код: 80040E37
Источник: Provider
Кто-нибудь может помочь разобраться почему скрипт не срабатывает или же выдает сообщение о ошибке?
 
script.vbs
---------------------------------------
Option Explicit  
Dim oArgs,oDrives,WshNetwork,i, ss, objUser, homepath, username, WshShell
dim objConnection, objRecordSet, CommandText, strUsers  
' определение текущего UserName  
  Set WshShell = CreateObject("Wscript.Shell")  
  UserName = WshShell.ExpandEnvironmentStrings("%username%")  
 
' получаем distinguishedName для текущего пользователя
  Set objConnection = CreateObject("ADODB.Connection")  
  objConnection.provider = "ADsDSOObject"  
  objConnection.Open ("Active Directory Provider")  
 
' Запрос информации по учетной записи пользователя  
  CommandText = "Select cn, name, distinguishedName, canonicalName, sAMAccountName"  
  CommandText = CommandText + " from 'LDAP://dc=dom1,dc=dom2,dc=dom3'"  
  CommandText = CommandText + " where sAMAccountName='" + UserName + "'"  
  Set objRecordset = CreateObject("ADODB.Recordset")  
  objRecordset.Open CommandText, objConnection  
  strUsers = objRecordset.fields("distinguishedName").Value  
 
' получаем данные запроса о конкретном пользователе
  set objUser = GetObject("LDAP://" & strUsers)
  homepath = objUser.Get("profilePath")
' переменная profilePath = "\\domain\personals\ou1\ou2\$username"
' структура каталогов создана, права на эту папку ($username) - полный доступ
 
' подключаем сетевые диски для пользователя
  Set WshNetwork = WScript.CreateObject("WScript.Network")  
  Set oArgs=WScript.Arguments  
  Set oDrives = WshNetwork.EnumNetworkDrives  
  on error resume next  
  WshNetwork.MapNetworkDrive "Y:", homepath
  WshNetwork.MapNetworkDrive "W:", "\\domain\common"  
  WshNetwork.MapNetworkDrive "Z:", "\\domain\programs"  
 
'*** End  
 

Всего записей: 36 | Зарегистр. 03-09-2003 | Отправлено: 18:07 23-03-2005
AlexSSS

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
1.  
> Ошибка: Table does not exist  
эта ошибка выскакивает, если неправильно прописан путь в LDAP, вставь свой домен и конкретно эта ошибка уйдет
 CommandText = CommandText + " from 'LDAP://dc=dom1,dc=dom2,dc=dom3'"  
 
2.
>  Set WshShell = CreateObject("Wscript.Shell")  
>  UserName = WshShell.ExpandEnvironmentStrings("%username%")  
Это вариант годен только для Windows NT/2000/XP
у Win9X переменной окружения %username% нет
 
дальше 20 строки я не проверял ;o)

Всего записей: 747 | Зарегистр. 26-06-2004 | Отправлено: 19:04 23-03-2005
kuvsh

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
У меня возник вопрос один в ходе написания батничка. Каким образом можно удалить каталог с русским названием. А точнее папка называется  ВСЕМ ВРЕМЕННАЯ.  
rd d:\ВСЕМ ВРЕМЕННАЯ
 не проходит (хотя d:\>cd ВСЕМ ВРЕМЕННАЯ пашет нормально).  
Заранее спасибо за ответ

Всего записей: 5 | Зарегистр. 24-02-2005 | Отправлено: 19:13 23-03-2005
kibkalo



Убью Билла
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
rd "d:\ВСЕМ ВРЕМЕННАЯ"

Всего записей: 2342 | Зарегистр. 10-04-2002 | Отправлено: 21:22 23-03-2005
alecsandrb

Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
AlexSSS
 
1. В том то и дело что у меня все прописано так как должно быть для моего домена.
 
Я думал чо это связано с тем что на этапе входа пользователя в систему,  
когда он вводит свои имя и пароль этот скрипт уже выполнился поэтому у меня  
он и не сработал (неизвестен был параметр username).
Если я прав то где это можно было бы проверить так чтобы имя для пользователя уже точно было бы прописано в параметре username.
 
2. Я проверяю на рабочей станции с Windows XP Sp2. которая включена в домен domain.

Всего записей: 36 | Зарегистр. 03-09-2003 | Отправлено: 06:13 24-03-2005
GOODmen



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
прошу сильно не ругаться, но почему же не работает кусок логон-скрипта:
=================================
Set  oNet=WScript.CreateObject("WScript.Network")
'WScript.Sleep 5000
do while (oNet.UserName="")
WScript.Sleep 500
loop
sUserName=oNet.UserName
=================================
Клиенты - 98 виндовс, мигрируем с новелла 3.12, скопировал папки на 2000 сервер, теперь каждому юзеру надо подключить свои сетевые диски. Чтоб увидеть реакцию запускаю из netlogon.bat wscript //nologo \\server\mapdrives.vbs. Он говорит - "запрашиваемая оперция не была выполнена, так как пользователь не подключен к сети. указанная служба не существует". Если раскомментировать WScript.Sleep 5000, то работает. Если запустить cscript \\... не работает ни так ни эдак. Опять же WScript.Sleep работает токо под wsh5.6, это надо всех клиентов (а их 300 штук!) апгрейдить. М-да... Как будто не работает цикл. Но все же строго по инструкции, в этом же топике все написано На XP всё это работает как надо.
Ранее пробовал втыкать скриптом радмина - на 98 на ура, на ХР под опытным пользователем так и не удалось, пришлось забить. э-эх...

Всего записей: 366 | Зарегистр. 15-01-2004 | Отправлено: 07:00 24-03-2005
AlexSSS

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
alecsandrb
вставь в скрипт промежуточный вывод значений, которые надо проверить
 
Wscript.Echo UserName
или
MsgBox(UserName)
 
и все таки проверь имя домена, может перепутал местами dom1,dom2?
 
у меня эта ошибка выскакивала как раз в случае неправильного указания домена
кроме того, когда ты запускал скрипт вручную, UserName у тебя был стопроцентно определен
 
я тоже проверил твой скрипт на XP SP2

Всего записей: 747 | Зарегистр. 26-06-2004 | Отправлено: 13:30 24-03-2005
alecsandrb

Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
AlexSSS
 
Можно ли ограничить/запретить выполнение скриптов или выполнение запросов к LDAP в политиках домена? Если да то где?
Дело в том что загрузившись администратором домена на рабочей станции я могу выполнить этот скрипт из NetLogon, а если загружаюсь под пользователем домена то при выполнении скрипт выдает ошибку : "Невозможно получить данные из кеша Active Directory"

Всего записей: 36 | Зарегистр. 03-09-2003 | Отправлено: 15:06 24-03-2005
AlexSSS

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
alecsandrb
на каком именно запросе вылетает эта ошибка?
думаю тут дело не в политиках, а в правах доступа к веткам AD.
по умолчанию, в AD все пользователи могут видеть почти все. Когда ты создавал OU, то ты не менял на них права?

Всего записей: 747 | Зарегистр. 26-06-2004 | Отправлено: 15:17 24-03-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