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

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



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Можно  и скриптами.    
К примеру    берешь   PERL + его  модули   для  SNMP
и  пишешь скрипт.   Можно   готовые поискать.
 

Цитата:
кучей управляемых свичей

Какие   именно  ?    Если одного производителя то   вендор   поставляет  
как правило   спец софт.   К примеру   для   оборудования ДЛИНКА
прога  D-View

Всего записей: 718 | Зарегистр. 22-12-2002 | Отправлено: 18:19 06-12-2005
AlexSSS

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
похоже получится и без перла, на обычном VBS.
Вначале установить на XP через контрол панель SNMP Protocol и WMI SNMP Provider.
А дальше можно работать через WMI. Проверил - работает, наименование свича и MAC уже получил, надо изучать наименования остальных свойств.
 
> Какие   именно  ?  
Allied Telesyn
Имеющийся софт или доступ через WEB не очень удобны - надо перебирать все свичи.
Я же хочу сделать отчет, в котором будет вся интересующая меня инфа по всем свичам. Конкретно сейчас меня интересует версия FirmWare, которая установлена на разных устройствам, чтобы обновить ее, если стоит не последняя.
Понятно, что первый раз гораздо быстрее пройтись по всем свичам (через WEB) и снять инфу с каждого из них. Но на будущее разобраться со снятием инфы через SNMP - весьма полезно

Всего записей: 747 | Зарегистр. 26-06-2004 | Отправлено: 20:26 06-12-2005 | Исправлено: AlexSSS, 22:00 06-12-2005
ShafMAN

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите на такой простецкий вопрос. Как разобраться с пробелами в путях в методе Run.  
Например

Код:
WshShell.Run("D:\\Program Files\\Folder\\file", x);

не будет работать...
В VBS знаю как справиться с этими пробелами а вот в JavaScript не понятно

Всего записей: 125 | Зарегистр. 09-01-2005 | Отправлено: 23:41 06-12-2005 | Исправлено: ShafMAN, 23:43 06-12-2005
TNR



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Народ как написать скриптик для поиска и удаления найденых файлов ?
Или где такой скачать ?

Всего записей: 1780 | Зарегистр. 15-03-2004 | Отправлено: 11:17 07-12-2005
AlexSSS

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
у Юры Шутенко есть класная статья по использованию FileSystem Object
http://kodu.neti.ee/~juri4/vfpplus/vbs_fso_01_ru.htm
 
рекомендую. Единственное, примеры переведены на VFP, на VBS их придется перевести самому.
Либо найти другую документацию на FileSystem Object, где все на VBS

Всего записей: 747 | Зарегистр. 26-06-2004 | Отправлено: 11:34 07-12-2005
FreemanRU



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ShafMAN
WshShell.Run("\"D:\\Program Files\\Folder\\file\"", x);  
По идеи так....

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

Всего записей: 3796 | Зарегистр. 16-07-2004 | Отправлено: 14:12 07-12-2005
Breaker

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
FreemanRU
Спасибо, получилось
 
Добавлено:
А можно каким-то образом не меняя фонового рисунка, на рабочем столе сообщения всем нарисовать?

Всего записей: 38 | Зарегистр. 19-08-2001 | Отправлено: 15:04 08-12-2005
Uriu

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TNR
В "Личный ящик" пишите что нужно искать и удалять, попробую Вам помочь.

Всего записей: 340 | Зарегистр. 25-11-2004 | Отправлено: 08:35 09-12-2005
Ernie

Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Мой скрипт входа для пользователей домена. Может кому пригодится.

Код:
 
Const LOCAL_SETTINGS_TEMP_INET_FILES = &H20&
Const LOCAL_SETTINGS_RECENT_FILES = &H8&
 
strComputer = "."
 
On Error Resume Next
 
' опредление OU
Set objADSystemInfo = CreateObject("ADSystemInfo")
strUserDN = objADSystemInfo.UserName
 
Set objUser = GetObject("LDAP://" & strUserDN)
arrPath = Split(objUser.Parent, ",")
intPathLength = Len(arrPath(1))
strOU = Right(arrPath(1), intPathLength-3)
'Wscript.Echo "OU = " & strOU
 
 
' определение Username
Set objNetwork = Wscript.CreateObject("WScript.Network")
Do While objNetwork.UserName = ""
   WScript.Sleep 100
Loop
strUser = objNetwork.UserName
'Wscript.Echo "Username = " & strUser
 
' отключение существующих сетевых дисков
objNetwork.RemoveNetworkDrive "Y:"
objNetwork.RemoveNetworkDrive "Z:"
 
' подключение сетевого диска с личными папками
netPath = "\\main\personal$\" & strOU & "\" & strUser
'Wscript.Echo "Personal Folder Path = " & netPath
objNetwork.MapNetworkDrive "Y:", netPath
 
' подключение сетевого диска с временными папками
netTempPath = "\\main\public$"
objNetwork.MapNetworkDrive "Z:", netTempPath
 
' подключение сетевого принтера
objNetwork.AddWindowsPrinterConnection "\\sys\hp"
objNetwork.SetDefaultPrinter "\\sys\hp"
 
' удаление Temporary Internet Files
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(LOCAL_SETTINGS_TEMP_INET_FILES)
Set objFolderItem = objFolder.Self
strInetTempFiles = objFolderItem.Path
'Wscript.Echo "strInetTempFiles - " & strInetTempFiles
DelFiles(strInetTempFiles)
 
' удаление Recent Files History
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(LOCAL_SETTINGS_RECENT_FILES)
Set objFolderItem = objFolder.Self
strRecentFiles = objFolderItem.Path
'Wscript.Echo "strRecentFiles - " & strRecentFiles
DelFiles(strRecentFiles)
 
' Очистка папки User TEMP
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_BootConfiguration")
For Each objItem in colItems
    strUserTempDir = objItem.TempDirectory
    'Wscript.Echo "User Temp Directory: " & strUserTempDir
Next
DelFiles(strUserTempDir)
 
' Очистка папки System TEMP
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
 
Set colItems = objWMIService.ExecQuery("Select * from Win32_Environment WHERE (Name = 'TMP' or Name = 'TEMP') and  SystemVariable = True")
 
For Each objItem in colItems
    strSystemTempDir = objItem.VariableValue
    'Wscript.Echo "System Temp Directory: " & strSystemTempDir
Next
DelFiles(strSystemTempDir)
 
Function DelFiles(strSourceDir)
    Dim lfsObject
    Dim lFileList
    Dim lFolder
    Dim lFile
 
    'Is this a valid call?
    If strSourceDir > "" Then
        On Error Resume Next
        Set lfsObject = CreateObject("Scripting.FileSystemObject")
        Set lFolder = lfsObject.GetFolder(strSourceDir)
        'Wscript.Echo "lFolder - " & lFolder
 
        'Process contained files first
        Set lFileList = lFolder.Files
        'Wscript.Echo "lFileList - " & lFileList
        For Each lFile in lFileList
            'Wscript.Echo "lFile - " & lFile
            lFile.Delete
        Next      
 
        'Process subdirectories
        Set lSubFolders = lFolder.SubFolders
 
        For Each lSubFolder in lSubFolders
            NewSource = strSourceDir & "\" & lSubFolder.Name
            'Wscript.Echo "NewSource - " & NewSource
            'Recursive call to delete all subdirectories
            DelFiles NewSource
            'Delete this directory
            lSubFolder.Delete
        Next
 
        'Cleanup
        Set lfsObject = Nothing
        Set lFileList = Nothing
        Set lFolder = Nothing
        Set lFile = Nothing
    End If
End Function
 

 
P.S. Сколько искал, так нигде не нашел нормального скрипта на VBS для очистки временных папок, поэтому пришлось самому написать.

Всего записей: 126 | Зарегистр. 01-02-2003 | Отправлено: 15:14 09-12-2005
IronWarrior



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

Всего записей: 1232 | Зарегистр. 02-07-2003 | Отправлено: 17:23 09-12-2005
mozers



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Классический скрипт запуска прог на удаленной машине через WMI:
Код:
On Error Resume Next
Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")
CompName = "BOSS" 'имя компьютера
UserName = "Admin" 'имя пользователя
Pass = "abcd" 'пароль пользователя
Set objServices = objSWbemLocator.ConnectServer(CompName, "root\CIMV2", UserName, Pass, Null, Null, 0)
If Err.Number <> 0 Then
    WScript.Echo Err.Number & ": " & Err.Description
    WScript.Quit
End If
Set objClass = objServices.Get("Win32_Process")
Res = objClass.Create("C:\TEMP\sysinfo.exe", Null, Null, PID)
If Res <> 0 Then
    WScript.Echo "Код ошибки: " & Res
End If
 
Работает отлично только если запускаемая прога находится в локальном каталоге. Попытка запуска "\\SERVER\SHARE\sysinfo.exe" натыкается на "Отказано в доступе". Очень странно, учитывая что попытка запуска производится от имени администратора системы (пробовал и от имени текущего пользователя). Да и сам пользователь со своей машины может выполнить "\\SERVER\SHARE\sysinfo.exe" без всяких проблем...
Кстати, аналогично ведет себя и psexec от Русиновича.
В чем грабли? Может в политике чего подкрутить надо?

----------
Интересно только неизведанное...

Всего записей: 2187 | Зарегистр. 03-01-2002 | Отправлено: 21:03 10-12-2005
Uriu

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mozers
 Может нужно попробовать вот так:
 
Set objServices = objSWbemLocator.ConnectServer(CompName, "root\CIMV2", Domain\UserName, Pass)          "Null, Null, 0"- для чего это?
  Domain-имя домена если есть.
 
При подсоединении с помощью SWbemLocator , если указывать имя и пароль,  производится подсоединение от имени заданной в сценарии учетной записи. На локальном всегда от имени текущей .
 
Если запускать от текущей учетной записи (в сценарии не нужно задавать имя и пароль) то для подключения к пространству имен лучше пользоваться моникером:
 
Set objWMIService = GetObject("winmgmts:" _  
    & "{impersonationLevel=impersonate}!\\" & CompName & "\root\cimv2")  
 
Попробуйте моникером.
 

Всего записей: 340 | Зарегистр. 25-11-2004 | Отправлено: 08:30 11-12-2005 | Исправлено: Uriu, 08:39 11-12-2005
mozers



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Uriu
Увы, но твой вариант - хуже. (Ща все попробовал, протыкал...)
Я могу запускать скрипт из любого профиля (лишь бы права были), указывая в скрипте имя/пасс админа.
В твоем случае, скрипт сработает только если он будет запущен из админского профиля (или из профиля того пользователя, что хозяйничает на компутере-жертве).
Что касаемо запуска прог, то оба варианта ведут себя, увы, идеентично
Локальные пути - без проблем.
Сетевые - хрен на глаз... "Отказано в доступе"


----------
Интересно только неизведанное...

Всего записей: 2187 | Зарегистр. 03-01-2002 | Отправлено: 13:19 11-12-2005
Alan Mon

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mozers
Я думаю дело в правах пользователя SYSTEM. Твой скрипт коннектится к машине с определенным логином и паролем, но потом начинает работать WMI, который запущен от имени SYSTEM той машины. А пользователю SYSTEM по умолчанию доступ в сеть запрещен.

----------
Ребята, давайте жить дружно. Кот Леопольд

Всего записей: 1116 | Зарегистр. 22-07-2004 | Отправлено: 10:33 12-12-2005
mozers



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alan Mon
Посмотрел повнимательнее... Нет. Процесс стартует от имени той учетной записи, что задана в скрипте.
Была мысль,что проблема в том, что процесс стартует скрытым. Нашел скрипт который запускает интерактивный вариант (через ScheduledJob). Один хрен - понимает только локальный путь Ставлю сетевой - все то же "Отказано в доступе"
 Вообще ничего не понимаю


----------
Интересно только неизведанное...

Всего записей: 2187 | Зарегистр. 03-01-2002 | Отправлено: 22:36 12-12-2005
MNT



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вопрос по штатной админской утилите (для Active directory) dsquery.exe.
 
Как с ее помощью (или с помощью других средств) можно получить внутреннее (сокращенное) имя пользователя домена, если известно полное имя пользователя?

Всего записей: 179 | Зарегистр. 27-01-2003 | Отправлено: 11:52 13-12-2005
Uriu

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mozers,Alan Mon
 
 
Если открыть wmimgmt.msc -свойства-безопастность, пользователя SYSTEM там нет.
Интересно почему так сделанно?  
 

Всего записей: 340 | Зарегистр. 25-11-2004 | Отправлено: 06:18 14-12-2005
pav



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте, знатоки VBS. В силу непреодолимых обстоятельств предстоит смена адресного пространства в локальной сети. Машин уже порядка двухсот и бегать и делать вс ручками - муторно. DHCP в сети не используется и этот факт изменить нельзя. Можно ли при помощи скриптов vbs смены ip-адреса и шлюза и скрипта получения текущих сетевых настроек, взятых из майкрософтовского репозитария, сделать скрипт, который бы без вмешательства со стороны пользователя менял бы ему адрес и шлюз. Достаточно будет поменять на стороне пользователя первые три триады адреса, последняя пусть останется такой же. А как заставить пользователей выполнить этот скрипт - не проблема.

Всего записей: 1856 | Зарегистр. 27-01-2002 | Отправлено: 08:24 14-12-2005
finderknowledge

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MNT
dsquery user -name [имя] -o samid
 
Breaker

Цитата:
А можно каким-то образом не меняя фонового рисунка, на рабочем столе сообщения всем нарисовать?

есть такая программка Bginfo, хотя можно наверно поискать и что-нибудь более специализированное, или самому что-нибудь написать  

Всего записей: 26 | Зарегистр. 03-11-2005 | Отправлено: 12:40 14-12-2005 | Исправлено: finderknowledge, 13:14 14-12-2005
earner

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

Цитата:
Классический скрипт запуска прог на удаленной машине через WMI:
...  
Работает отлично только если запускаемая прога находится в локальном каталоге..  

Даже программные пакеты солидных производителей предварительно копируют необходимые файлы на удаленный компьютер.. Наверное, это не спроста..
Может и в данной ситуации стоит также поступить.. дополнить скрипт функцией копирования содержимого какой-нибудь папки на локальном компьютере во временную папку на удалённом..  а потом, если надо, с удалённого всё стереть..

Всего записей: 11 | Зарегистр. 25-09-2003 | Отправлено: 16:14 14-12-2005
   

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