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

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

 

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



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
О наконец то, спасибо YNY!
 
 
Добавлено:
Рано я обрадовался, при добавлении в реестр vbs скрипта, пишется ошибка не найден файл!

Всего записей: 95 | Зарегистр. 19-10-2010 | Отправлено: 12:55 30-01-2011
firsteducation



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Рано я обрадовался, при добавлении в реестр vbs скрипта, пишется ошибка не найден файл! В чём дело?

Всего записей: 95 | Зарегистр. 19-10-2010 | Отправлено: 05:27 31-01-2011
YNY

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
firsteducation> ошибка не найден файл
проверь какой путь у тебя в реестре, затем скопируй строку запуска из реестра, нажми Пуск\Выполнить, вставив путь из реестра, и  жми ОК/энтнр. Если не запустится, то значит:
1--путь запуска не корректен)  
2-- нет прав на папку

Всего записей: 476 | Зарегистр. 18-05-2006 | Отправлено: 08:30 31-01-2011 | Исправлено: YNY, 08:32 31-01-2011
firsteducation



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Дело в том что сценарий vbs система находит, но указывает 4 строку и 1-й символ, после чего пишет: не удаётся найти указанный файл.
 
Добавлено:
YNY

Цитата:
проверь какой путь у тебя в реестре, затем скопируй строку запуска из реестра, нажми Пуск\Выполнить, вставив путь из реестра, и  жми ОК/энтнр

Всё сделал как ты посоветовал, когда вбиваю в cmd через "выполнить", всё запускается, но через реестр не фурычит!
 
Добавлено:
Вот содержимое моего vbs скрипта:
 
Dim LaunchDir, FSO, WSHShell
Set WSHShell = WScript.CreateObject("WScript.Shell")
LaunchDir = WSHShell.CurrentDirectory
WSHShell.Run LaunchDir & "\test.bat"

Всего записей: 95 | Зарегистр. 19-10-2010 | Отправлено: 16:13 31-01-2011
YNY

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

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



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
firsteducation Надеюсь, в реестре прописываешь скрипт так как тебе уже раньше советовали?

Цитата:
vbs надо запускать так: cscript C:\blablabla\script.vbs  



----------
Заслуженный SCOтовод, почетный SUNтехник и любитель Кошек

Всего записей: 17273 | Зарегистр. 13-06-2007 | Отправлено: 18:32 31-01-2011 | Исправлено: vlary, 18:33 31-01-2011
firsteducation



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
имя батника: test.bat
тело батника:
@echo work!
pause
 
имя vbs: tester.vbs
тело vbs:
Dim LaunchDir, FSO, WSHShell
Set WSHShell = WScript.CreateObject("WScript.Shell")
LaunchDir = WSHShell.CurrentDirectory
WSHShell.Run LaunchDir & "\test.bat"
 
строка в реестре:
C:\WINDOWS\asdsa\tester.vbs
 
все файлы лежат в C:\WINDOWS\asdsa

Всего записей: 95 | Зарегистр. 19-10-2010 | Отправлено: 20:08 31-01-2011
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
firsteducation
Цитата:
Всё сделал как ты посоветовал, когда вбиваю в cmd через "выполнить", всё запускается, но через реестр не фурычит!  
эм... ну для чистоты проверки вы суньте в vbs строки типа  MSgBox "Текст сообщения", vbInformation, "Заголовок сообщения"
Тем самым вы элементарно проверите вызывается ли сам vbs из реестра...

----------
Microsoft gives you windows, linuх gives you the whole house...
I've been using Vim for about 4 years now, mostly because I can't figure out how to exit it.

Всего записей: 6562 | Зарегистр. 28-08-2008 | Отправлено: 20:26 31-01-2011
el_verdugo



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
firsteducation
Попробуйте сделать явный вызов сервера wscript или cscript, прописав что-то вроде этого:
C:\WINDOWS\System32\wscript.exe C:\WINDOWS\asdsa\tester.vbs

Всего записей: 121 | Зарегистр. 10-02-2006 | Отправлено: 02:52 01-02-2011
YNY

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
firsteducation
в какую ветку реестра ты ставишь запуск ???

Всего записей: 476 | Зарегистр. 18-05-2006 | Отправлено: 11:01 01-02-2011
vlary



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
el_verdugo Запуск консольных приложений рекомендуется делать именно через cscript.


----------
Заслуженный SCOтовод, почетный SUNтехник и любитель Кошек

Всего записей: 17273 | Зарегистр. 13-06-2007 | Отправлено: 11:15 01-02-2011
YNY

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
firsteducation
Вотработающая версия твоего VBS!!!
Проблема, по которой не работала твоя прежняя версия в том, что WSHShell.CurrentDirectory возвращает строку типа Х:\Documents and Settings\Пользователь при старте скрипта из автозапуска, а не то, что мы, типа, хотели))

Всего записей: 476 | Зарегистр. 18-05-2006 | Отправлено: 12:13 01-02-2011
rijk



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Ищу скрипт для очистки локальных профилей пользователей домена. Т.е. если пользователь домена два месяца не логинелся на данном компе, что бы его профиль удалялся. При этом профили локальных пользователей игнорировались

Всего записей: 361 | Зарегистр. 16-10-2006 | Отправлено: 13:41 11-02-2011
YNY

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
rijk
для начала вот этим создаешь список заблокированных аккаунтов в домене, а затем

Всего записей: 476 | Зарегистр. 18-05-2006 | Отправлено: 16:27 13-02-2011 | Исправлено: YNY, 10:24 15-02-2011
rijk



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

Код:
 
Dim iskl()
maxiskl=8
ReDim iskl(maxiskl)
iskl(1)="Administrator"
iskl(2)="User"
iskl(3)="All Users"
iskl(4)="Default"
iskl(5)="Default User"
iskl(6)="Public"
iskl(7)="Все пользователи"
iskl(8)="Администратор"
'iskl()=""
 
Function CheckF(str)
    temp=true
    for i=1 to maxiskl
    if str=iskl(i) then temp=false
    next
    CheckF=temp
End Function
 
Function ShowFolderList(path)
  ON ERROR RESUME NEXT
 
  Dim fso, folder, subFlds, fld, s
  s = ""
  Set fso = CreateObject("Scripting.FileSystemObject")
  if fso.FolderExists(path) then
    Set folder = fso.GetFolder(path)
    Set subFlds = folder.SubFolders
    For Each fld in subFlds
    if datediff("d",fld.DateLastAccessed,now)>60 and CheckF(fld.name) then
            s = s & fld.Path  
            s = s & " "
        fso.DeleteFolder fld.Path, True
    end if
    Next
  end if
  If Err.Number<>0 Then s=s & "- error"
  ShowFolderList = s
End Function
 
dim tt
tt=ShowFolderList("C:\Users")
'MsgBox(tt)
tt=ShowFolderList("c:\Documents and Settings")
'MsgBox(tt)
 

Всего записей: 361 | Зарегистр. 16-10-2006 | Отправлено: 15:37 14-02-2011
YNY

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
rijk хм ну твой подход конечно не плох, но:
1- если кто нить попытается открыть папку просто от лени, то св-во  DateLastAccessed
изменится
2- как ты узнаешь какая папка хранит локальный профиль: мона для сужебных целей завести учетку которой редко пользуешься)  
 
С помощью вот этого мона выбрать не локальные профили

Всего записей: 476 | Зарегистр. 18-05-2006 | Отправлено: 10:12 15-02-2011 | Исправлено: YNY, 10:30 15-02-2011
rijk



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

Цитата:
rijk хм ну твой подход конечно не плох, но:  
1- если кто нить попытается открыть папку просто от лени, то св-во  DateLastAccessed  
изменится  
2- как ты узнаешь какая папка хранит локальный профиль: мона для сужебных целей завести учетку которой редко пользуешься)  
 
С помощью вот этого мона выбрать не локальные профили

1. У меня специфическая работа, 50 компов, 100 пользователей, большая текучка кадров, куча перемещений и вести свой отдел кадров мне не хочется, а так хоть какое-то подспорье. Босс долго жил в Канаде и пытается привить их принципы работы у нас: "не минуты покоя" - так что от лени не лазят, а если лазят то не долго
2. Я внес необходимые мне локальные профили в исключения, у меня это User и Администратор
 

Всего записей: 361 | Зарегистр. 16-10-2006 | Отправлено: 11:51 15-02-2011
nakadze

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

Цитата:
Dim iskl()  
maxiskl=8  
ReDim iskl(maxiskl)  
iskl(1)="Administrator"  
iskl(2)="User"  
iskl(3)="All Users"  
iskl(4)="Default"  
iskl(5)="Default User"  
iskl(6)="Public"  
iskl(7)="Все пользователи"  
iskl(8)="Администратор"  
'iskl()=""  
 
Function CheckF(str)  
    temp=true  
    for i=1 to maxiskl  
    if str=iskl(i) then temp=false  
    next  
    CheckF=temp  
End Function  
 
Function ShowFolderList(path)  
  ON ERROR RESUME NEXT  
 
  Dim fso, folder, subFlds, fld, s  
  s = ""  
  Set fso = CreateObject("Scripting.FileSystemObject")  
  if fso.FolderExists(path) then  
    Set folder = fso.GetFolder(path)  
    Set subFlds = folder.SubFolders  
    For Each fld in subFlds  
    if datediff("d",fld.DateLastAccessed,now)>60 and CheckF(fld.name) then  
            s = s & fld.Path  
            s = s & " "  
        fso.DeleteFolder fld.Path, True  
    end if  
    Next  
  end if  
  If Err.Number<>0 Then s=s & "- error"  
  ShowFolderList = s  
End Function  
 
dim tt  
tt=ShowFolderList("C:\Users")  
'MsgBox(tt)  
tt=ShowFolderList("c:\Documents and Settings")  
'MsgBox(tt)  

Это законченный скрипт? У меня не выполняется(

Всего записей: 36 | Зарегистр. 21-12-2007 | Отправлено: 17:09 16-02-2011 | Исправлено: nakadze, 17:09 16-02-2011
nakadze

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Поменяв DateLastAccessed на DateLastModified, заработало. Да и вообще мне кажется этот параметр более уместен.

Всего записей: 36 | Зарегистр. 21-12-2007 | Отправлено: 12:31 17-02-2011
firsteducation



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Люди помогите, как код оптимизировать, у меня если скрипт с этим кодом расположен не в корне диска, происходит копирование всех папок в пути, а мне нужно чтоб только папку с этим скриптом копировал, что делать?
YNY ПОМОГИ!!!
 
вот пример:
set DV=E:
set MI=0
WMIC.Exe Path Win32_LogicalDisk Where DriveType="2" get Caption > e1.txt
for /F "skip=1" %%i IN ('type e1.txt') Do (if /i %%i==%DV% (set MI=1))
if /i %MI% NEQ 1 goto StCopy1
goto qw
:StCopy1
xcopy "%cd%" "%DV%%~p0" /C /E /H /Y /Q  

Всего записей: 95 | Зарегистр. 19-10-2010 | Отправлено: 18:48 24-02-2011
   

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