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

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



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sarti
Спасибо за сочувствие. Долбанный кризис заставил работать в такой конторе...
 
AndreySh
Теоретически можно назначить на службу (например) "Удалённый вызов процедур RPC" - "восстановление" - "первый сбой" - "запуск программы" твой Batник, и при этом отключить автоматическое завершение программ при выключении. Но как это будет работать не знаю. Логично, как писал Oldster, делать выключение из батника, а не запускать батник при выключении...

Всего записей: 4 | Зарегистр. 13-07-2008 | Отправлено: 13:57 19-01-2010
YNY

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

Всего записей: 476 | Зарегистр. 18-05-2006 | Отправлено: 14:50 19-01-2010
strani

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

Цитата:
смотрел твои примеры и чет не догнал зачем ты завершаешь сеанс пользователя + от имени кого тогда изменения вносишь, если админа то как все это потом стыкуется с др пользователями тыж ся в грудь бил что они все разные?  

Все делается под системной учетной записью. В последней версии я сделал так:
 
if exist "Reg_Files_User\nul" (
echo *** Завершаем сеанс работы пользователя на всех компьютерах ***
psshutdown -o -f @Computers_List.txt
)
Это строки из файла Remote_Install.cmd. То есть завершаем работу пользователя только в том случае, если в папке Reg_Files_User содержатся reg-файлы.
 
Ниже идут строки из файла Install.cmd.
 
rem *** Корректируем reg-файлы ***
if exist "%~dp0Reg_Files_User\nul" (
attrib -r "%~dp0Reg_Files_User\*.*" /s
for /f "tokens=*" %%F in ('dir "%~dp0Reg_Files_User" /a:-d /b /s') do (
gsar.exe -s[HKEY_CURRENT_USER\ -r[HKEY_LOCAL_MACHINE\Tmp\ -i -o "%%F"
)
)
То есть делаем из обычных reg-файлов с личными настройками reg-файлы, которые можно временно импортировать в системный реестр
 
rem *** Импорт личных и общих настроек в реестр всех пользователей, кроме текущего ***
if exist "%~dp0Reg_Files_User\nul" (
for /f "tokens=*" %%U in (!users!.txt) do (
reg.exe load HKEY_LOCAL_MACHINE\Tmp "%AllUsersProfile%\..\%%U\NTUSER.DAT"
То есть во временную ветку реестра загрузили профиль какого-то пользователя
if errorlevel 1 (
rem *** Ошибка при загрузке реестра пользователя ***
Профиль пользователя, который залогинен, нельзя временно загрузить в системный реестр
) else (
for /f "tokens=*" %%F in ('dir "%~dp0Reg_Files_User" /a:-d /b /s') do regedit.exe /s "%%F"
То есть во временную ветку реестра импортируем ранее модифицированные reg-файлы с личными настройками
)
reg.exe unload HKEY_LOCAL_MACHINE\Tmp
То есть из временной ветки реестра выгружаем профиль пользователя
)
)
 
rem *** Корректируем reg-файлы обратно ***
if exist "%~dp0Reg_Files_User\nul" (
for /f "tokens=*" %%F in ('dir "%~dp0Reg_Files_User" /a:-d /b /s') do (
gsar.exe -s[HKEY_LOCAL_MACHINE\Tmp\ -r[HKEY_CURRENT_USER\ -i -o "%%F"
)
)
То есть делаем из временных reg-файлов обычные. Это так, на всякий случай.
 
ВНИМАНИЕ!!! Обнаружил принципиальную ошибку. Во всех файлах необходимо заменить "\nul" на "\", иначе скрипты не работают! Архив обновил.
 
Время 16:22. Обнаружена ошибка при проверке необходимости завершения работы пользователя. Исправлен файл Remote_Install.cmd! Архив обновил.

Всего записей: 801 | Зарегистр. 09-12-2006 | Отправлено: 21:38 19-01-2010 | Исправлено: strani, 16:24 23-01-2010
Oldster



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

Цитата:
Как определить событие

Что то я не догоняю... кто сервак выключает? Если это юзеер, то на выключение сервака у него должны быть права, тогда делай батник, который все сделает, а потом выкл. сервак, и покажи юзверу что теперь выкл. сервер надо так (запуском батника). Если это по расписанию - то тот же батник, но в шедуллер. Или есть еще какие то варианты у вас?
 
Добавлено:
GlebisZ
    //Этот скрипт предназначен для отправки e-mail с компьютера,  
    //на котором не установлен SMTP-протокол  
    d = new Date();
    
    objEmail = WScript.CreateObject("CDO.Message");  
    objEmail.From = "robot@xxx.ru";  
    objEmail.To = "admin@xxx.ru";  
    objEmail.Subject = "Отчет ..... за " + d.toLocaleDateString();  
    objEmail.Textbody = msg;  
    objEmail.AddAttachment("e:\\Users\\Log_AD.txt");
    
    objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2;  
    objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smpt.mail.ru"  
    objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25;  
    objEmail.Configuration.Fields.Update();  
    
    objEmail.Send();


----------
Ой не TCP моё IP (C) Диман

Всего записей: 1367 | Зарегистр. 08-01-2003 | Отправлено: 21:26 21-01-2010
BumerangII



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, как реализовать
ниже приведенный код не работает
Код:
strVar=WshShell.ExpandEnvironmentStrings("%COMPUTERNAME%")  
if srtVar = S?????-TCS then
    set userVar = "test1"
    set passVar = "xxxxx"
if srtVar = K?????-KST then
    set userVar = "test2"
    set passVar = "yyyyyy"
 


Всего записей: 88 | Зарегистр. 14-12-2005 | Отправлено: 13:41 28-01-2010 | Исправлено: BumerangII, 13:43 28-01-2010
el_verdugo



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
BumerangII
Я так понял, ты хочешь обрабатывать маски имен компьютеров.?.
Чтобы сильно не мудрить, можно сделать так:
Код:
strVar=WshShell.ExpandEnvironmentStrings("%COMPUTERNAME%")  
if (LCase(Left(strVar, 1)) = "s" And LCase(Right(strVar, 4)) = "-tcs") then  
    set userVar = "test1"  
    set passVar = "xxxxx"  
Elseif (LCase(Left(strVar, 1)) = "k" And LCase(Right(strVar, 4)) = "-kst") then
    set userVar = "test2"  
    set passVar = "yyyyyy"
Else
'
End If

Всего записей: 121 | Зарегистр. 10-02-2006 | Отправлено: 03:23 29-01-2010
BumerangII



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

Код:
strVar=WshShell.ExpandEnvironmentStrings("%COMPUTERNAME%")  
if (LCase(Left(strVar, 1)) = "s" And LCase(Right(strVar, 4)) = "-tcs") then  
    userVar = "test1"  
    passVar = "xxxxx"  
Elseif (LCase(Left(strVar, 1)) = "k" And LCase(Right(strVar, 4)) = "-kst") then
    userVar = "test2"  
    passVar = "yyyyyy"
Else
'
End If  

 

Всего записей: 88 | Зарегистр. 14-12-2005 | Отправлено: 12:19 03-02-2010
yazzi

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

Всего записей: 98 | Зарегистр. 14-08-2007 | Отправлено: 14:14 04-02-2010
niichavo



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

Код:
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_OperatingSystem")
For Each objItem In colItems
  WScript.Echo "Country Code: " & objItem.CountryCode
  WScript.Echo "Locale: " & objItem.Locale
  WScript.Echo "OS Language: " & objItem.OSLanguage
  WScript.Echo "Code Set: " & objItem.CodeSet
Next

коды смотрим тут

Всего записей: 836 | Зарегистр. 14-09-2005 | Отправлено: 22:49 04-02-2010
sigmar



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Есть вопрос! Есть домен с AD. В домене машини с XP, Vista и 7. Надо создать логон скрипт, который бы проверял наличие в корне профиля пользователя наличия папки с одним файлом и если папки нет или файл не соответствует эталону, то создавал бы папку и копировал туда эталонный файл. Что мне надо сделать, на чем написать этот скрипт? Если вопрос уже обсуждался - дайте ссылку на обсуждение. Заранее спасибо!

Всего записей: 12 | Зарегистр. 18-09-2009 | Отправлено: 17:17 26-02-2010
Oldster



Старик
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
примерно так (logon.cmd):

Цитата:
 
if exist "%userprofile%\моя_папка\" goto folder_exsist
 
goto end
 
:folder_exsist
mkdir "%userprofile%\моя_папка\"
 
:end
exit
 

дальше "обработать напильником".

----------
Ой не TCP моё IP (C) Диман

Всего записей: 1367 | Зарегистр. 08-01-2003 | Отправлено: 09:43 28-02-2010 | Исправлено: Oldster, 09:43 28-02-2010
vov4ka



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Здравствуте все.Оставлю здесь свой пост-возможно найдeтся человек,который мне поможет. Хочу задать всем вам вопрос. Сам я в написании скриптов,тем полее в .Net полный дуб,но необходимо реализовать слудующую задачу. На серваке стоит вебморда,работающая на Asp.Net 2.0., в левой части которой есть несколько ссылок,в которых потом есть еще вложенные.Кто-то может сбацать прогу или скрипт,который ходит рекурсивно по всем ссылкам, и ищет кнопку,к примеру,"завершить задание".Когда находит-нажимает,выходит в самое начало дерева и ищет в следующем разделе и т.д.?  
 
Помогите или,на худой конец, подскажите куда рыть,т.к. с такими задачами я не сталкивался,а решить ой как надо!!!

Всего записей: 110 | Зарегистр. 29-01-2009 | Отправлено: 14:39 01-03-2010
YURETS777



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как VBS скриптом задать пермишены на файл.
Конкретно нужно задать файлу D:\file.ini полный доступ для группы Все (Everyone)

Всего записей: 2161 | Зарегистр. 29-04-2005 | Отправлено: 14:17 03-03-2010 | Исправлено: YURETS777, 14:20 03-03-2010
DalayLamer



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
YURETS777
выполнить запуск в скрипте cacls или xcacls )

Всего записей: 367 | Зарегистр. 19-10-2005 | Отправлено: 15:52 03-03-2010
YURETS777



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DalayLamer
 
Такой вариант не подойдёт.
 
недостаток cacls - если его запускать на русской винде то так:
 
Set WshShell = Wscript.CreateObject("Wscript.Shell")
prognme = Chr(34) & "cacls" & Chr(34)
parnme = " D:\file.ini /P Все:F"
WshShell.Run prognme & parnme
 
А на аглицкой так
 
Set WshShell = Wscript.CreateObject("Wscript.Shell")
prognme = Chr(34) & "cacls" & Chr(34)
parnme = " D:\file.ini /P Everyone:F"
WshShell.Run prognme & parnme
 
 
И еще при запуске скрипата выскакивает окошко:
Продолжить [Y/N]

Всего записей: 2161 | Зарегистр. 29-04-2005 | Отправлено: 17:18 03-03-2010
yazzi

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
cmd  /c cacls D:\file.ini /e /g Everyone:F для английской винды
cmd  /c cacls D:\file.ini /e /g Все:F для русской винды

Всего записей: 98 | Зарегистр. 14-08-2007 | Отправлено: 08:55 05-03-2010
Pugnator



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Может кто и мне подскажет... имеется PXE сервер, работает на безе debian - но это не принципиально. к нему коннектятся сотни машин по LAN и на них загружается FreeDOS (через memdisk). Основная задача - запустить на клиентах серию тестов. Тесты представляют собой набор досовских утилит с довольно сложной системой распознавания материнки и запуска соответствующих тестов. Проблема в том, что весь набор весит под гигабайт. встает вопрос - как грамотней всего организовать работу такой системы. Буду благодарен за советы и наставления, куда копать. Клиенты, в прицнипе, имеют оперативку от 2Гб и более.Жестких дисков они не имеют

Всего записей: 68 | Зарегистр. 11-02-2006 | Отправлено: 23:40 06-03-2010
YNY

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

Всего записей: 476 | Зарегистр. 18-05-2006 | Отправлено: 09:34 07-03-2010 | Исправлено: YNY, 12:13 12-04-2010
Alexandrnew

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

Всего записей: 583 | Зарегистр. 30-04-2003 | Отправлено: 10:40 10-03-2010 | Исправлено: Alexandrnew, 11:33 10-03-2010
nod201



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Люди помогите!
У меня такая проблема:
Я ставлю лицензионный Windows на тачку а потом приходит чел и тупо его клонирует себе.
Как мне сделать так чтоб на другой машине эта винда не запустилась
Короче нужно защитить установленный Windows от клонирования.
Если кто знает как плиз ХЭЛП МИ.

Всего записей: 139 | Зарегистр. 02-01-2006 | Отправлено: 12:16 12-03-2010
   

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