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

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

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
exMIB
Это код на JScript, следовательно текст должен находиться в файле .js

Всего записей: 878 | Зарегистр. 28-03-2004 | Отправлено: 16:38 10-12-2004
AlexisZP

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

 
 
Добавлено
igor andreev
distance
 
Ладно, попробую обьяснить на примере:
 
set WSHShell = WScript.CreateObject("WScript.Shell")  
myString = WSHShell.RegRead(_  
"HKLM\Software\Oracle\Home0\oracle_home")
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.CopyFile "\\10.108.1.3\i\orant\NET80\ADMIN\tnsnames.ora" , WSHShell.RegRead(_  
"HKLM\Software\Oracle\Home0\oracle_home"), true
====
Проблема в том, что когда как Destination в CopyFile указать myString, то осуществится копирование в файл с этим именем.
Если написать все как есть, то выдается ошибка Permission denied.
Проверял разные куски скрипта в отдельности, доступ в реестр есть, мессаджбокс выдает значениее записанное по указанному пути в реестре. Если указать точное значение, то копирование тоже происходит.
Отличие лишь в том, что в реестре написано C:\orant а копирование осуществляется только в c:\orant\. Т.е. в переенную нужно дописать еще и \.
Что можете подсказать по этому поводу?
Спасибо!
 

Всего записей: 55 | Зарегистр. 20-05-2004 | Отправлено: 17:20 13-12-2004
igor andreev

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

Цитата:
Отличие лишь в том, что в реестре написано C:\orant а копирование осуществляется только в c:\orant\. Т.е. в переенную нужно дописать еще и \.  

Ну сам и написал правильный ответ
последняя строчка:
objFSO.CopyFile "\\10.108.1.3\i\orant\NET80\ADMIN\tnsnames.ora" , myString & "\", true

Всего записей: 1704 | Зарегистр. 08-12-2004 | Отправлено: 18:22 13-12-2004
AlexisZP

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
igor andreev
 
Я попробовал твой совет, он помог.  
До этого пробовал & но без "", прогнал, но прочитать нигде про конкатенацию не нашел.  
 
Вот что у меня получилось:  
===  
set WSHShell = WScript.CreateObject("WScript.Shell")  
myString = WSHShell.RegRead(_  
"HKLM\Software\Oracle\Home0\oracle_home")  
Set objFSO = CreateObject("Scripting.FileSystemObject")  
objFSO.CopyFile "\\10.108.8.1\i\orant\NET80\ADMIN\tnsnames.ora" ,myString & "\net80\admin\", true  
===  
Именно этот кусок кода работает без вопросов, а когда его приписать к тому, что я раньше наваял, и оно уже работал одо этого вполне нормально, то оно не отрабатывает.  
Там тоже используется WSHShell, может нужно как-нибудь очищать ее значение?  
Вот полный код:  
===  
Option Explicit  
Dim WSHLocalNet, WSHShell, PrinterPath, objFSO  
Set WSHLocalNet = WScript.CreateObject("WScript.Network")  
Set WSHShell = WScript.CreateObject("WScript.Shell")  
 
'Ставим время см. ниже одной командой  
WshShell.run("net time \\10.108.8.1 /set /yes")  
 
''Копирование ТАИС_РЕГ  
Set WshShell = WScipt.CreateObject("WScript.Shell")  
Set objAgrs = WScript.Arguments  
 
WshShell.run("xcopy \\10.108.8.1\Tais_REG C:\Tais_REG\ /e /y /d")  
 
''Копирование tnsnames:  
set WSHShell = WScript.CreateObject("WScript.Shell")  
myString = WSHShell.RegRead(_  
"HKLM\Software\Oracle\Home0\oracle_home")  
Set objFSO = CreateObject("Scripting.FileSystemObject")  
objFSO.CopyFile "\\10.108.8.1\i\orant\NET80\ADMIN\tnsnames.ora" ,myString & "\net80\admin\", true  
===  
Спасибо за помощь

Всего записей: 55 | Зарегистр. 20-05-2004 | Отправлено: 16:30 14-12-2004
pe3yc



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
AlexisZP
а читать сообщения об ошибках мы конечно не умеем?
******************************
Option Explicit  
Dim WSHLocalNet, WSHShell, PrinterPath, objFSO  
Set WSHLocalNet = WScript.CreateObject("WScript.Network")  
Set WSHShell = WScript.CreateObject("WScript.Shell")  
 
'Ставим время см. ниже одной командой  
WshShell.run("net time \\10.108.8.1 /set /yes")  
 
''Копирование ТАИС_РЕГ  
'Set WshShell = WScipt.CreateObject("WScript.Shell")  
Set objAgrs = WScript.Arguments  
 
WshShell.run("xcopy \\10.108.8.1\Tais_REG C:\Tais_REG\ /e /y /d")  
 
''Копирование tnsnames:  
'set WSHShell = WScript.CreateObject("WScript.Shell")  
myString = WSHShell.RegRead(_  
"HKLM\Software\Oracle\Home0\oracle_home")  
Set objFSO = CreateObject("Scripting.FileSystemObject")  
objFSO.CopyFile "\\10.108.8.1\i\orant\NET80\ADMIN\tnsnames.ora" ,myString & "\net80\admin\", true  
===  

Всего записей: 2434 | Зарегистр. 25-07-2001 | Отправлено: 17:44 14-12-2004
igor andreev

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

Цитата:
Там тоже используется WSHShell, может нужно как-нибудь очищать ее значение?

Достаточно один раз(не три, как у тебя) создать обьект WScript.Shell в начале скрипта.
И pe3yc конечно прав, если уж ты используешь Option Explicit(очень удобная штука для отладки) - то читай сообщения о ошибках, Option Explicit сам тебе подскажет, что в твоем коде не так. В частности, в примере pe3yc скрипт будет ругаться, пока ты не допишешь еще:
Dim objAgrs, myString
Вот, прочитай http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/vsstmoptionexplicit.asp
А вот если ты уберешь Option Explicit из первой строчки - скрипт тебе и слова не скажет, что ты не обьявил или переопределил какие-то переменные, молча отработает и все. Очищать значение кстати рекомендуется для приличия, в конце скрипта:
Set WSHShell = Nothing

Всего записей: 1704 | Зарегистр. 08-12-2004 | Отправлено: 22:46 14-12-2004 | Исправлено: igor andreev, 22:53 14-12-2004
DarkStar2000



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А есть какой нибудь способ автоматически закрывать сессии терминал сервера по таймеру

Всего записей: 239 | Зарегистр. 05-03-2003 | Отправлено: 12:43 16-12-2004
counter



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

Всего записей: 63 | Зарегистр. 29-04-2003 | Отправлено: 12:53 16-12-2004
AlexSSS

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
> А есть какой нибудь способ автоматически закрывать
> сессии терминал сервера по таймеру
Terminal Services Configuration-->Connections-->RDP-TCP-->Properties-->Sessions

Всего записей: 747 | Зарегистр. 26-06-2004 | Отправлено: 12:53 16-12-2004
DarkStar2000



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

Цитата:
Terminal Services Configuration-->Connections-->RDP-TCP-->Properties-->Sessions

несколько не то нужно чтобы например в 23:30 все сессии закрывались независимо от времени открытия, статуса (Активная или нет) а там можно только указать лимит времени на сессию

Всего записей: 239 | Зарегистр. 05-03-2003 | Отправлено: 15:06 16-12-2004
AlexSSS

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
> а там можно только указать лимит времени на сессию
там есть более правильные настройки - лимит на idle time - скажем закрывать сессию, если она пассивна 20 минут.
 
если же тебе надо выключить все сессии, то это легко делается остановкой терминального сервиса, а это уже легко засунуть в скрипт или планировщик
 
кстати, см хелп на "Terminal Services commands" - там можно делать все что хочешь с командной строки

Всего записей: 747 | Зарегистр. 26-06-2004 | Отправлено: 15:49 16-12-2004 | Исправлено: AlexSSS, 15:56 16-12-2004
pe3yc



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

Всего записей: 2434 | Зарегистр. 25-07-2001 | Отправлено: 20:34 16-12-2004
AlexisZP

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
igor andreev
pe3yc
Спасибо, помогли Ваши советы, но могу на полном серьезе ответить, что у меня никаких сообщений о ошибках не возникало, даже при испльзовании Option Explicit.

Всего записей: 55 | Зарегистр. 20-05-2004 | Отправлено: 12:49 17-12-2004
igor andreev

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AlexisZP
Сообщения о ошибках то возникали, но если ты запускал cscript(не wscript) твой_файл.vbs, то ты их не успевал увидеть Кстати в твоем скрипте переменные PrinterPath и objAgrs вроде как и лишние, нигде не используются.

Всего записей: 1704 | Зарегистр. 08-12-2004 | Отправлено: 13:31 17-12-2004
AlexisZP

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
igor andreev
Спасибо, я кажется понял свою ошибку .
Переменные не лишние , просто я не весь код выложил, переменные используются

Всего записей: 55 | Зарегистр. 20-05-2004 | Отправлено: 11:08 20-12-2004
SlaM2003



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

Всего записей: 47 | Зарегистр. 02-09-2003 | Отправлено: 14:18 20-12-2004
AlexSSS

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

Всего записей: 747 | Зарегистр. 26-06-2004 | Отправлено: 14:45 20-12-2004
SlaM2003



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я просто интересовался, будут ли работать vbs скрипты под NT4(PDC), или это только фишка win2k.
А задача стоит в том, чтобы мне с моей рабочей станции (WindowsXP) запустить батник, чтоб он выполнялся на сервере, естественно сам себе, все необходимые я права выдать могу.
Пробовал программку remoteexec, но она не совсем корректно работает, батник запускается, но тот процесс, который этот батник вызывает, не идет... в списке процессов появляется, но активности у него ноль. Если батник запускать прям с сервера в ручную, то всё работает нормально.
Вот я и подумал можт это можно сделать штатными средствами.

Всего записей: 47 | Зарегистр. 02-09-2003 | Отправлено: 06:11 21-12-2004
psj



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SlaM2003
Штатными не знаю, но есть такая приблуда: AutoIt, там можно сделать так, что-бы на удаленной машине под любым пользователем, любая программа запускалась.
 
Добавлено
Пробовал сам - работает замечательно

----------
В правильно заданном вопросе - 80% ответа :)

Всего записей: 267 | Зарегистр. 27-07-2004 | Отправлено: 10:32 21-12-2004
SlaM2003



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нашел замечательную програмульку PsExec от Sysinternals... как раз что надо.
И всё-таки интересно было бы узнать, возможно-ли это с помощью vbs скриптов.

Всего записей: 47 | Зарегистр. 02-09-2003 | Отправлено: 11:35 21-12-2004
   

Страницы: 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