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

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



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Определился, с приписанием путей не проблем нет. Нужно удалить за раз у всех, т.е. не подходит способ с прописыванием у каждого юзера. Нужет скрипт, который перебирает пользователей и удаляет эти ключи, если такое возможно. Вот с перебором и проблема.

Всего записей: 543 | Зарегистр. 16-04-2004 | Отправлено: 06:44 18-04-2007
YNY

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

Цитата:
Связанно это с активным обновлением компьютерного парка в конторе и как следствие, броуновским движением техники. Плюс еще и орг.заморочки (ИТ обслуживание у аутсорсера, я как служба заказчика). Посему нужен именно скрипт.

Ставьте все на терминальный сервер и пусть к нему подкл: самое быстрое решение
 
Добавлено:

Цитата:
ребята!  
подскажите как пробежаться по OU Computers  
и на тех компах которые в сети запустить скриптик который лежит на SYSVOL??? (короче форсировать выполнение скрипта)  

на логон юзера в домен цепляй скрипт так меньшеписать прийдется и shell
 
Добавлено:

Цитата:
Infected Switch


Цитата:
При входе юзера в домен локально срабатывает logon.bat, в котором прописан 1c.reg (добавляет в реестр пути к базам 1c). Как сделать, чтобы он не срабатывал при входе юзера на терминальный сервер (т.к. там уже другие пути нужны)?  

одно из решений: проверять имя компа или IP на котором папки подкл и соотв-но решать какие папки должны быть  
 
 
Добавлено:
coolpunk
 

Цитата:
Нужно одним кликом удалить/добавить запись в реестре у КАЖДОГО юзера, к примеру путь к базе 1С. Желательно в батнике, т.к. в них хоть что-то понимаю, посоветуйте, пожалуйста.

 
АНАХАЙМ??? доступ на чтение и усе эсли боишся что потрут

Всего записей: 476 | Зарегистр. 18-05-2006 | Отправлено: 07:19 18-04-2007
north_crow

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
2 YNY
у меня висит подобный скрипт в логон!!!
но мне нужно именно пробежаться по Computers и форсировать запуск скпритпа, т.к. есть компьютеры которые очень редко перегружаются!!!

Всего записей: 172 | Зарегистр. 04-12-2002 | Отправлено: 08:19 18-04-2007
YNY

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

Цитата:
north_crow

 Ну вообще-то если есть задача связанная с таким атрибутом как время то его лучше всего и использовать: пишется скритп кот через опред промежутки времени запускает другой, если не катит то для отлова ошибок используй msgbox или Wscript.Echo для того чтобы увидеть результаты или пиши их в файл, т.к. возможен вариант что ты запускаешь скрипт с пробегом по объектам которых еще нет или нет доступа или еще че-нить в этом духе, а обработки этого случая у тебя нет вот и выдается ошибка хотя ON ERROR RESUME NEXT  как грубый вариант тебе может помочь но тогда ты не узнаешь полность весь список был обработан или нет!
P.S.
как вариант 2 есть еще кроме логона для юзера вкл/выкл для компа в политиках
 
Добавлено:
и с эверестом: вам надо юзать тот его вариант который не требует инсталляции тогда должно получиться
 
Добавлено:
если есть Visual Studio 2007, то поставьте MSDN там есть возможность посмотреть подробно что за ошибка

Всего записей: 476 | Зарегистр. 18-05-2006 | Отправлено: 08:38 18-04-2007
north_crow

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
2 YNY
эверест лежит в доступном из сети месте!
как позже выяснилось - если вместо эвереста прописать например notepad.exe то он запускается на удаленных машинах, а вот запуск из сетевого ресурса не проходит.

Всего записей: 172 | Зарегистр. 04-12-2002 | Отправлено: 09:08 18-04-2007
YNY

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

Цитата:
а вот запуск из сетевого ресурса не проходит.  

 
rezult=WshShell.Run ("\\sarver\shared\...") - так у меня скрипт запускается через сеть.
(вместо ... подставьте то, что хотите запустить, я тестировал со стандартным виндовым калькулятором и все воркает)
 

Цитата:
эверест лежит в доступном из сети месте!

тут дело не в том, что он в доступном месте просто у вас на компе он (возможно--т.к. не упомяналось вами про это ничего) инсталлирован, т.е. зарег различные *.dll в системе, а у пользователей, при отсутствии инсталлированной проги, соотв этого нет  
 
Добавлено:
Set WshShell = WScript.CreateObject("WScript.Shell") - обязательно до вызова WshShell.Run ()

Всего записей: 476 | Зарегистр. 18-05-2006 | Отправлено: 10:07 18-04-2007
north_crow

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

Цитата:
тут дело не в том, что он в доступном месте просто у вас на компе он (возможно--т.к. не упомяналось вами про это ничего) инсталлирован, т.е. зарег различные *.dll в системе, а у пользователей, при отсутствии инсталлированной проги, соотв этого нет  

локально еверест не установлен!
через логон скрипт еверест же отрабатывает!
 
 
 
Добавлено:
вот пример от майкрософта

Код:
 
strComputer = "webserver"
Set objWMIService = GetObject _
    ("winmgmts:\\" & strComputer & "\root\cimv2:Win32_Process")
 
Error = objWMIService.Create("notepad.exe", null, null, intProcessID)
 
If Error = 0 Then
    Wscript.Echo "Notepad was started with a process ID of " _
         & intProcessID & "."
Else
    Wscript.Echo "Notepad could not be started due to error " & _
        Error & "."
End If
 

блокнот запускается
а если я заменю  

Код:
 
Error = objWMIService.Create("notepad.exe", null, null, intProcessID)
 

на

Код:
 
Error = objWMIService.Create("\\10.28.0.2\sysvol\...\scripts\everest\everest /R \\10.28.0.9\share\crow\log\$DATE\$HOSTNAME /SUM /HTML /SILENT /NOICONS /SAFEST", Null, Null, intProcessID)
 

то в error возвращается код 2 (на MS написано что это Access denied), т.е. как понимаю нету доступа к расшареному ресурсу, т.е. нужно как то передать логин и пароль? а как?

Всего записей: 172 | Зарегистр. 04-12-2002 | Отправлено: 16:11 18-04-2007
YNY

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

Цитата:
то в error возвращается код 2 (на MS написано что это Access denied), т.е. как понимаю нету доступа к расшареному ресурсу, т.е. нужно как то передать логин и пароль? а как?

я написал как запустить скрипт из сетевой папки:
Цитата:
rezult=WshShell.Run ("\\sarver\shared\...")  
.
Если вам так уж надо все через WMI, то поставьте MSDN 2007 (локально лучше чем трафик гнать) там есть пример как подкл к удаленной системе.
Думаю доступ запрещен для выполнения (по exe правой кн и ...) для всех кроме админа, так что даём права и все должно заработать: так лучше чем трахаться с выдачей прав через WMI и паролями - надежность ниже !

Всего записей: 476 | Зарегистр. 18-05-2006 | Отправлено: 06:40 19-04-2007
AlessTO

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Граждане! Есть проблема:
Требуется установить прогу (ПЕРЕсобранную) и, чтоб не париться с настройкой решено было внести изменения в реестр прямо при инсталле. Но эта <%%!Е;!!> часть настроек пишет в sID (куст типа HKU\S-1-5-21-...
Необходим код - вот основа (подогнали добрые люди)

Код:
Set WshShell = CreateObject("Wscript.Shell")
Set fso = Wscript.CreateObject("Scripting.FilesystemObject")
fName = WshShell.SpecialFolders("Desktop") & "\SIDlist.txt"
Set b = fso.CreateTextFile(fName, true)
 
 
strProfileBranch = "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\"
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colAccounts = objWMIService.ExecQuery _
    ("Select * From Win32_UserAccount")
 
For Each objAccount in colAccounts
    If objAccount.Name = "HelpAssistant" or objAccount.Name = "SUPPORT_388945a0" or objAccount.Name = "Администратор" or objAccount.Name = "Гость" then
    else
        b.writeline "" & objAccount.SID
    end if
Next
 
Function GetHomePath(strSID)
    On Error Resume Next
        GetHomePath = WshShell.ExpandEnvironmentStrings(Trim(WshShell.RegRead (strProfileBranch & strSID & "\ProfileImagePath")))
    On Error Goto 0
End Function
 
b.close
WshShell.Run "notepad.exe " & fName
 
Set fso = Nothing
set Wshshell = Nothing

который вычисляет (в данном примере пишет в txt) sID (он ведь у всех разный).
Как можно в этом же скрипте организовать загрузку данных в реестр, учитывая вычисленный sID?

Всего записей: 253 | Зарегистр. 09-12-2006 | Отправлено: 19:50 22-04-2007
Devil66

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Народ, очень нужна помощь! Как получить день недели в Win2000?
Для WinXP есть класс Win32_UTCTime, но в Win2000 он выдает ошибку. Есть универсальный класс и для XP, и для вин2000?

Всего записей: 78 | Зарегистр. 06-02-2006 | Отправлено: 10:19 23-04-2007
YNY

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

Цитата:
Граждане! Есть проблема:  
Требуется установить прогу (ПЕРЕсобранную) и, чтоб не париться с настройкой решено было внести изменения в реестр прямо при инсталле. Но эта <%%!Е;!!> часть настроек пишет в sID (куст типа HKU\S-1-5-21-...  

 
Вообще-то есть возможность внести изменения для текущего юзера и без вычисления SID:
читаем  данные в реестре причем в зависимости от типа данных GetDWORDValue либо GetStringValue, а для записи вместо Get пишем Set
 
sub A()
const HKEY_CURRENT_USER = &H80000001
strComputer = "."
Set oReg=GetObject( "winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")
 
strKeyPath = "Console"
strValueName = "HistoryBufferSize"
 
'oReg.  HKEY_CURRENT_USER,strKeyPath , strValueName, sValue
oReg.GetDWORDValue _
   HKEY_CURRENT_USER,strKeyPath,strValueName,dwValue
WScript.Echo "Current History Buffer Size: " & dwValue  
end sub
 
 
Добавлено:

Цитата:
Для WinXP есть класс Win32_UTCTime, но  

мона попробовать нижеприведённый код а затем вырезать что нада:
 Visual Basic  Copy Code  
' English (US) format.
Dim TestDate As DateTime = #3/12/1999#
 
' FormatDateTime returns "Friday, March 12, 1999".
' The time information is neutral (00:00:00) and therefore suppressed.
Dim TestString As String = FormatDateTime(TestDate, DateFormat.LongDate)
 
или  
 
Visual Basic  Copy Code  
 
Dim oldDate As Date
Dim oldWeekDayName As String
oldDate = #2/12/1969#
oldWeekDayName = WeekdayName(Weekday(oldDate))
' oldWeekDayName now contains "Wednesday".
 
 
А ваще-то ставьте MSDN и вопросы сами отпадут!!!

Всего записей: 476 | Зарегистр. 18-05-2006 | Отправлено: 13:54 23-04-2007
Leuda

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день.
 
Как остановить выполнение *.bat файла на определенное количество времени например 30 секунд и продолжить дальше  выполнение.
Заранее спс

Всего записей: 21 | Зарегистр. 28-12-2006 | Отправлено: 14:34 23-04-2007 | Исправлено: Leuda, 14:41 23-04-2007
Etalon

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

Код:
 
ping -n 30 localhost
 

Всего записей: 306 | Зарегистр. 03-02-2006 | Отправлено: 18:05 23-04-2007
FreemanRU



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

Цитата:
ping -n 30 localhost  

Сильно (без шуток, очень оригинально)!!!!!! Чисто админское решение!!!!
 
Leuda
Есть еще sleep.exe, поищи в гугле.

----------
Если не получается с первого раза - прочти инструкцию. (с)
"Откуда нам знать, что такое война, если мы не знаем мира..."(с)
Записки

Всего записей: 3795 | Зарегистр. 16-07-2004 | Отправлено: 18:46 23-04-2007
Etalon

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
FreemanRU
Если использовать, для паузы в .bat файлах, только встроенные средства
То кроме пинга ничего лучше не придумаешь

Всего записей: 306 | Зарегистр. 03-02-2006 | Отправлено: 08:48 24-04-2007
YNY

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

Цитата:
Как остановить выполнение *.bat файла на определенное количество времени например 30 секунд и продолжить дальше  выполнение.  

может не ждать 30 сек или еще скоко-то вр?
Запускает команду, стоящую за символом &&, только если команда, стоящая перед этим символом была выполнена успешно. В Cmd.exe выполняется первая команда. Вторая команда выполняется, только если первая была выполнена успешно.  

Всего записей: 476 | Зарегистр. 18-05-2006 | Отправлено: 08:57 24-04-2007
Leuda

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Etalon
ping -n 30 localhost
Да прикольная тема, мне тоже понравилось такое решение.  

Всего записей: 21 | Зарегистр. 28-12-2006 | Отправлено: 09:45 24-04-2007
vlazari



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
а что "sleep.exe" не подходит?

Всего записей: 243 | Зарегистр. 20-09-2005 | Отправлено: 09:47 24-04-2007
Smitis



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

Цитата:
Как остановить выполнение *.bat файла на определенное количество времени например 30 секунд и продолжить дальше  выполнение.  


Цитата:
Если использовать, для паузы в .bat файлах, только встроенные средства  
То кроме пинга ничего лучше не придумаешь

Хуже ping-а для паузы трудно придумать - нестабильно, может вообще не сработать.
Зато можно так:

Код:
 
@set @x=0 /*  
@echo off  
 
echo PAUSE BEGIN  
:: Сдесь делаем паузу 30 секунды  
cscript //nologo /e:jscript "%~f0" 30000  
echo PAUSE END  
 
:: Конец CMD-части  
exit /b  
*/  
// JS-часть  
WScript.Sleep(WScript.Arguments(0))
 

 
Добавлено:
П.С.
По батникам есть целых две темы. Лучше спрашивать там.
http://forum.ru-board.com/topic.cgi?forum=5&topic=4582&glp
http://forum.ru-board.com/topic.cgi?forum=62&topic=9040&glp


----------
Разум когда-нибудь победит

Всего записей: 3214 | Зарегистр. 09-02-2003 | Отправлено: 13:09 24-04-2007
Etalon

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

Всего записей: 306 | Зарегистр. 03-02-2006 | Отправлено: 16:11 24-04-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