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

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

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
gap5
ну, вроде того. только 1 ньюанс - свежую дату будут иметь только вновь сознанные файлы. так что смотреть наверно last access time.
думается, что проще будет просто делать ротацию каждую ночь. - для файлов не критично, а для документов должны быть другие каналы.

Всего записей: 292 | Зарегистр. 16-09-2004 | Отправлено: 22:56 21-01-2007
gap5



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
urel
В каком смысле другие каналы? Задача чтобы юзеры при обмене файлами между отделами не оставляли их лежать в открытом доступе надолго...
 
Кстати, еще вопрос по автоматизации администрирования:
Как в AD получить список последней смены пароля всеми юзерами (а еще лучше вообще количество смен, кол-во символов... в общем максимум информации)?

Всего записей: 1033 | Зарегистр. 30-05-2006 | Отправлено: 23:08 21-01-2007
urel

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
gap5
да по почте например.  
лежать мало или долго - влюбом случае они там будут лежать - кому нужно тот возьмет.

Всего записей: 292 | Зарегистр. 16-09-2004 | Отправлено: 12:44 22-01-2007
Bugriy



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Можно ли в скрипте на vbs получить пути к папкам windows и program files? SpecialFolders тут не прокатывает.

Всего записей: 226 | Зарегистр. 24-08-2005 | Отправлено: 14:27 24-01-2007
Vby



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

Цитата:
program files


Код:
 
Const PROGRAM_FILES = &H26&
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(PROGRAM_FILES)
Set objFolderItem = objFolder.Self
Wscript.Echo objFolderItem.Path
 

 

Цитата:
windows

Const WINDOWS = &H24&
 


----------
Ци ёсць што?

Всего записей: 781 | Зарегистр. 16-09-2004 | Отправлено: 15:15 24-01-2007
urel

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Set WshShell = WScript.CreateObject("WScript.Shell")
WScript.Echo WshShell.ExpandEnvironmentStrings("%WINDIR%")
WScript.Echo WshShell.ExpandEnvironmentStrings("%PROGRAMFILES%")
 

Всего записей: 292 | Зарегистр. 16-09-2004 | Отправлено: 15:18 24-01-2007
Bugriy



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
urel
 
Спасибо! А к системному диску?

Всего записей: 226 | Зарегистр. 24-08-2005 | Отправлено: 15:26 24-01-2007
trueempty

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Уважаемые господа!
Помогите, пожалуйста с примеров решения такой задачи в виде скрипта на VBS.
Нужно "логировать" процесс обращения клиентов к серверному ресурсу. Для этого написан скрипт, который конвертирован в EXE-файл и "подставлен" вместо оригинального. Соответственно скрипт запускается на компьютере пользователя и я могу взять имя компьютера (name), имя пользователя (user).
На сетевом ресурсе создана папка \\serv\log, в которой по мере обращения пользователей должны создаваться папки, имя которых для каждого компьютера такое: name_user.
Предварительно ресурс в скрипте подключается посредством net use с правами, дающими возможность записи (проверял в режиме отладки Проводником).
Классический пример из книги Г.Борна  
Set fso = WScript.CreateObject("Scripting.FileSystemObject")
Set oFolder = fso.CreateFolder(path)
Работает если папка создается на локальном диске.
Получаемая ошибка выглядит так
Ошибка выполнения Microsoft VBScript:  Разрешение отклонено
P.S. Пока не проверял будет ли работать если подключать ресурс через букву - но не хотелось бы, т.к. диски уже могут быть на пользовательских компьютерах "размэплены"

Всего записей: 789 | Зарегистр. 22-10-2002 | Отправлено: 15:34 24-01-2007 | Исправлено: trueempty, 16:11 24-01-2007
urel

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Bugriy
этот метод позволяет получить доступ к переменным окружения
просмотреть все можно набрав в cmd - set
%SystemDrive%  
 
Добавлено:
 
trueempty
Классическая нехватка прав, Сэр. =)
 
Добавлено:
trueempty
проверь пермишены на шаре. можешь ли ты этим пользователем создавать папки через сеть?

Всего записей: 292 | Зарегистр. 16-09-2004 | Отправлено: 16:53 24-01-2007
trueempty

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
To urel
Спасибо за ответ, но с правами все нормально. Проверял так
1)запустил скрипт в VisualStudio и выполнил команду net use ...
2)запустил (ПУСК->Выполнить ) \\serv\log
3)Проводником проверил, что папка создается  
 
Собственно это я отметил в предыдущем тексте только коротко:
(проверял в режиме отладки Проводником)
Боюсь, что unc-путь не поддерживается и нужно "мэпить".
Соответственно - проверять нет ли уже такого ресурса, если есть запоминать на что он подмэплен, выполнить свою работу и вернуть пользовательские диски на место.
 

Всего записей: 789 | Зарегистр. 22-10-2002 | Отправлено: 18:08 24-01-2007 | Исправлено: trueempty, 18:10 24-01-2007
Sk1f



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
trueempty, запости сам скрипт.  

Всего записей: 198 | Зарегистр. 04-04-2006 | Отправлено: 19:11 24-01-2007
gap5



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, как в VBS указать имя папки на "русском с пробелами" и как описать все ее содержимое (файлы и папки), т.к. в указанном варианте перемещает только файлы?
 
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.MoveFile "D:\Дневной отчет" , "D:\Rotate"

Всего записей: 1033 | Зарегистр. 30-05-2006 | Отправлено: 19:52 24-01-2007
urel

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
gap5
да почти так и будет
Код:
 Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.MoveFile "D:\Дневной отчет\*.*" , "D:\Rotate\"

 
 
Добавлено:
trueempty
ты лучше замусти сам эксплорер/что угодно - под этой учеткой и посмотри - создаст нет.
что характерно - думал что fso работает только на локальной машине...
нет оно успешно обрабатывает и unc
Код:
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.CreateFolder "\\192.168.110.7\e$\test_ test"


Всего записей: 292 | Зарегистр. 16-09-2004 | Отправлено: 21:56 24-01-2007
Asker80



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Народ, а кто-нить уже PowerShell'ом пользуется? Как впечатления? Я вот пару статей по нему прочитал и очень впечатлился. Буду ставить и юзать(учить) потихоньку.

Всего записей: 482 | Зарегистр. 29-08-2005 | Отправлено: 06:19 25-01-2007
trueempty

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
To urel
Запустить под нужной учетной записью не получится, т.к. она определена только на сервере, который недоменный - соответственно доменной аутентификации нет.
Есть предположение, что не создается папка поскольку на самом деле я брал в качестве имени комбинацию из имени_компа, имени_пользователя и даты - соответственно в дате (возвращается командой Now) есть символ ":" - что для имени папки недопустимо.
По состоянию на сейчас вроде получается - убрал часть с датой (вырежу потом без ":") и дал пользователю AuthenticatedUser все права на "шару" (закладки Security и SharePermission).
Разумеется перед созданием папки подключаюсь так
 
Set WshShell = WScript.CreateObject("WScript.Shell")
Code = WshShell.Run ("net use \\serv\log /u:user_name password", 0, False)
 
 
Если получится, могу написать в ПМ.
Еще раз спасибо - пока повожусь сам
P.S.
Убрал права AuthenticatedUser на закладке Security - вроде тоже создается папка.

Всего записей: 789 | Зарегистр. 22-10-2002 | Отправлено: 09:23 25-01-2007 | Исправлено: trueempty, 09:29 25-01-2007
Bugriy



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нужно застопить и удалить одну службу, а потом стереть папку где находятся файлы используемые службой. Проблема в том, что не удаётся удалить папку сразу после остановки службы. То есть со второго или третьего запуска скрипт срабатывает, а после первого папка не удаляется. Я вставил задержку 5 секунд - иногда помогает, иногда нет. Предполагаю, что надо каким-то образом дождаться остановки службы. Как это сделать?
 
 
Set colServiceList = objWMIService.ExecQuery _
    ("Select * from Win32_Service Where Name = 'servicename'")
 
For Each objService in colServiceList
 
     objService.StopService()
     objService.Delete()
 
objTextFile.WriteLine(compname&": Остановлена и удалена служба servicename")
 
Next
 
WScript.Sleep(5000)
 
F=objFSO.DeleteFolder(PFpath&"\folder",true)
 
if (not F) then  
objTextFile.WriteLine(compname&": Успешно удалена папка "&PFpath&"\folder")
else
objTextFile.WriteLine(compname&": Ошибка при удалении папки "&PFpath&"\folder")
end if

Всего записей: 226 | Зарегистр. 24-08-2005 | Отправлено: 10:23 25-01-2007
urel

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Bugriy
 
кто мешает поставить цикл? дотех пор пока не удалит

Всего записей: 292 | Зарегистр. 16-09-2004 | Отправлено: 11:25 25-01-2007
Bugriy



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
urel
Мне это тоже конечно в голову приходило, но уж очень это топорно.

Всего записей: 226 | Зарегистр. 24-08-2005 | Отправлено: 12:19 25-01-2007
urel

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Bugriy
если есть большое желание - то можно подождать звершение процесса
в цикле делать запросы к wmi на предмет наличия процесса.
но так imho проще =)

Всего записей: 292 | Зарегистр. 16-09-2004 | Отправлено: 15:28 25-01-2007
Bugriy



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
urel
Оказывается, дело не в службах. В трее висит иконка. Я этот процесс прибиваю, но он не прибивается и держит папки. Точнее он прибивается через раз. В чём может быть дело?
 
Set colProcessList = objWMIService.ExecQuery _
    ("Select * from Win32_Process Where Name = 'lcfep.exe'")
 
For Each objProcess in colProcessList
    objProcess.Terminate()
objTextFile.WriteLine(Date()&" "&Time()&" "&compname&": Удалена из системного лотка иконка endpoint'a")
Next
 
Причём на некоторых компах скрипт срабатывает сразу, а на других раза со второго-третьего. Причём не смотря на то что процесс такой есть, в логах не остаётся записи. Такое впечатление что скрипт его не находит.

Всего записей: 226 | Зарегистр. 24-08-2005 | Отправлено: 16:56 25-01-2007 | Исправлено: Bugriy, 17:15 25-01-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