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

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



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

Код:
Set objDiscMaster = CreateObject("IMAPI2.MsftDiscMaster2")
Id = objDiscMaster.Item(0)
Set objRecorder = CreateObject("IMAPI2.MsftDiscRecorder2")
objRecorder.InitializeDiscRecorder Id
Set objEraser = CreateObject("IMAPI2.MsftDiscFormat2Erase")
objEraser.Recorder = objRecorder
objEraser.ClientName = "EraseDisc"
objEraser.EraseMedia

Всего записей: 87 | Зарегистр. 14-03-2006 | Отправлено: 19:47 20-11-2007 | Исправлено: Vorx, 20:04 20-11-2007
b0ne

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день
создаю политику разливающую софт "soft v2"
но необходимо соблюдение условия, данный софт разливается только в том случае если на компе нет "soft v1"
такую проверку можно осуществить при помощи wmi filters. но беда в том что wmi я не знаю, а нужно срочно, просьба, дайте пример wmi скрипта проверяющего версию софта.
можно на примере любой программой, устанавливаемой в програм файлс

Всего записей: 7 | Зарегистр. 07-08-2006 | Отправлено: 12:57 21-11-2007
Vorx



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

Код:
StrComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colSoftware = objWMIService.ExecQuery _
    ("Select * from Win32_Product Where Name = 'Soft'")
 
For Each objSoftware in colSoftware
    if objSoftware.Version="1" then 'устанавливаем v2
Next

Всего записей: 87 | Зарегистр. 14-03-2006 | Отправлено: 13:13 21-11-2007 | Исправлено: Vorx, 13:20 21-11-2007
b0ne

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

Цитата:
Код:StrComputer = "."  
Set objWMIService = GetObject("winmgmts:" _  
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")  
Set colSoftware = objWMIService.ExecQuery _  
    ("Select * from Win32_Product Where Name = 'Soft'")  
 
For Each objSoftware in colSoftware  
    if objSoftware.Version="1" then 'устанавливаем v2  
Next  

 еще вопрос, если я дописываю  
For Each objSoftware in colSoftware  
    if objSoftware.Version="3.62" then objSoftware.Uninstall()  
объект должен удалятся, но почемуто не получается, почему?

Всего записей: 7 | Зарегистр. 07-08-2006 | Отправлено: 15:05 21-11-2007
Vorx



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
b0ne
Имени условие на if objSoftware.Version="3.62" then errReturn=objSoftware.Uninstall() и проверь в конце скрипта чему равно errReturn

Всего записей: 87 | Зарегистр. 14-03-2006 | Отправлено: 15:27 21-11-2007
k14us

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
столкнулся со следующей проблемой.
на конторе спутниковый интернет через vpn. поледний постоянно отваливается (кто использует satgate знает о чем я). вообщем нужно автоматизировать проверку наличия vpn соединения, и при его отсутствии восстанавливать, плюс бывают потери сигнала со спутника, в этом случае совершать проверку досупности внешних ресурсов (например посылть icmp пакеты) и если пакеты не возвращаются разрывать vpn соединение.
 
Добавлено:
и реально ли вообще решить подобную задачу по средствам vb скрипта?

Всего записей: 13 | Зарегистр. 14-10-2006 | Отправлено: 16:23 21-11-2007 | Исправлено: k14us, 16:24 21-11-2007
b0ne

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Vorx
ситуция такая, на этапе выполнения этой строчки скрипт зависает, пробовал с другим софтом, тоже самое, наверно я чегото не понимаю, взял с msdn скрипт удаления софта, все равно не удаляет
вот код, пример на винраре

Цитата:
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" _
    & strComputer & "\root\cimv2")
Set colSoftware = objWMIService.ExecQuery _
    ("Select * from Win32_Product " _
        & "Where Name = 'winrar'")
For Each objSoftware in colSoftware
    objSoftware.Uninstall()
Next


Всего записей: 7 | Зарегистр. 07-08-2006 | Отправлено: 18:44 21-11-2007
Vorx



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
b0ne'
Данный метод может быть использован только для приложений, установленных через Microsoft Windows Installer.
 
Конкретно WinRAR можно прибить так :
Код:
Set WshShell = WScript.CreateObject("WScript.Shell")
programfiles=WshShell.ExpandEnvironmentStrings("%PROGRAMFILES%")
WshShell.Run(""""&programfiles&"\WinRAR\Uninstall.exe"" /s"),1,True

А версию WinRAR'а можно получить по версии файла WinRAR.exe:
Код:
Set objFSO = CreateObject("Scripting.FileSystemObject")
Wscript.Echo objFSO.GetFileVersion(programfiles&"\WinRAR\WinRAR.exe)

Всего записей: 87 | Зарегистр. 14-03-2006 | Отправлено: 20:46 21-11-2007 | Исправлено: Vorx, 22:59 21-11-2007
cluster

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ребят, у кого есть скриптик для создания списка пользователей из АД?
Домен: Domain.ru
Каталог: Организация\Главный офис

Всего записей: 1720 | Зарегистр. 21-11-2003 | Отправлено: 10:48 22-11-2007
Etalon

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

Код:
 
On Error Resume Next
 
Const ADS_SCOPE_SUBTREE = 2
 
Set objConnection = CreateObject("ADODB.Connection")
Set objCommand =   CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnection
 
objCommand.Properties("Page Size") = 1000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE  
 
objCommand.CommandText = _
    "SELECT Name FROM 'LDAP://ou=Главный офис, ou=Организация, dc=domain, dc=ru' WHERE objectCategory='user'"  
Set objRecordSet = objCommand.Execute
 
objRecordSet.MoveFirst
Do Until objRecordSet.EOF
    Wscript.Echo objRecordSet.Fields("Name").Value
    objRecordSet.MoveNext
Loop
 

или на Windows PowerShell

Код:
 
$$strFilter = "user" #Если хотим получить список компьютеров то пишем "computer"
 
$Domain = [adsi]"LDAP://ou=Главный офис, ou=Организация, dc=domain, dc=ru"
$Searcher = New-Object System.DirectoryServices.DirectorySearcher
$Searcher.SearchRoot = $Domain
$Searcher.SearchScope = "Subtree"  
$Searcher.PageSize = 1000  
 
$Searcher.Filter = "(objectCategory=$strFilter)"
 
$Searcher.FindAll() | ForEach-Object -Process {$Entry = $_.GetDirectoryEntry(); $Entry.Name}
 

Всего записей: 306 | Зарегистр. 03-02-2006 | Отправлено: 11:24 22-11-2007 | Исправлено: Etalon, 13:26 22-11-2007
cluster

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нужно тоже самое, только в файлик.

Всего записей: 1720 | Зарегистр. 21-11-2003 | Отправлено: 12:03 22-11-2007
Bugriy



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Столкнулся со странной проблемой. Не могу перезагрузить компьютер из скрипта. Скрипт выполняется как Startup Script в AD на компьютерах пользователей домена. Сначала скриптом производятся определённые действия, потом должен быть рестарт.
 
Если запустить скрипт просто руками, то комп перезагружается, если как Startup, то результат непредсказуем. Может произойти перезагрузка, а может и не произойти.
Пробовал и через WMI и командой shutdown, пробовал паузы разные вставлять - результат одинаковый. 50 на 50. . В чём может быть дело?
 
Ещё хотел попробовать с помощью psutils, но там psshutdown при первом запуске выводит лицензионное соглашение, что неприемлимо.

Всего записей: 226 | Зарегистр. 24-08-2005 | Отправлено: 16:36 22-11-2007
Sk1f



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Экспортирую в БД данные из Excel файла.
Нужна проверка типа значения, считываемого из  ячейки в экселевском документе.
Есть какие-нибудь идеи?  
 

Всего записей: 198 | Зарегистр. 04-04-2006 | Отправлено: 11:08 23-11-2007
PhoenixUA



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
cluster
cscript DomainUsers.vbs > users.txt

Всего записей: 2184 | Зарегистр. 17-11-2005 | Отправлено: 11:53 23-11-2007
Smitis



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

Цитата:
Ещё хотел попробовать с помощью psutils, но там psshutdown при первом запуске выводит лицензионное соглашение, что неприемлимо.

Там у всех утилит должен быть ключ -accepteula

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

Всего записей: 3179 | Зарегистр. 09-02-2003 | Отправлено: 15:26 23-11-2007
Toksa

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Люди, подскажите где в WMI описаны свойства сетевого подключения? Не айпи адрес и так далее, а те которые на вкладке "Дополнительно" - то есть пошарено оно или нет, если пошарено - то через какое подключение, если это ВПН подключение - то его настройки.. Я в общем то кое что нашёл - но мало. Задача такая - есть 2 компа - один из них раздаёт ICS-ом инет другому (шарит ВПН-подключение). На этом же компе есть ещё подключения, которые нужно  бы периодически шарить - но ICS умеет шарить только одно подключение, соответственно нужен скрипт который бы шарил то подключение которое я хочу... Как расшаривать/зашаривать подключения - я понял, но вот как шарить с нужными мне настройками - нет...

Всего записей: 8 | Зарегистр. 29-09-2006 | Отправлено: 23:31 24-11-2007
b0ne

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Vorx
спасибо,
таким образом можно MSI пакеты удалять, винрар рассмтаривался в качестве примера, про определения версии не знал спасибо.
ситуация была в том, что когдато давно на большое колличество машин было руками установлено спецефическое ПО. а тут  понадобилось установить новую версию, руками лень, инстал шилдом сделал MSI, но на компе других версий быть не должно, вот и встал вопрос автоматизации.
 
Можно попробовать так
удаление из эд/ремув програм
REG DELETE HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Products\номер продукта
del путь к проге
 
только есть ряд проблем
насколько я понял, номера ПО совпадают только в том случае если на все компы ставилось из одного пакета, я просмотрел пять компов, и там где ПО ставилось с одного экзешника номер совпадал. Хотя наверняка можно задать поиск в этом разделе и найденное удалять. также чистить и другие ключики. вопрос больше на решение подобных проблем в будущем

Всего записей: 7 | Зарегистр. 07-08-2006 | Отправлено: 17:00 26-11-2007 | Исправлено: b0ne, 20:00 26-11-2007
Smitis



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

Цитата:
удаление из эд/ремув програм  
REG DELETE HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Products\номер продукта  
del путь к проге  

Подчистить реестр от записей инсталятора МС (а, зоодно, от файлов в %windir%\installer) можно при помощи программы MSIZAP от самой МС (в пакете есть утилита, работающая из командной строки. Утилита корректно удаляет ВСЕ записи из реестра, связанные с конкретной инсталяцией (их там дофига).

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

Всего записей: 3179 | Зарегистр. 09-02-2003 | Отправлено: 23:04 26-11-2007
sofos



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

Всего записей: 693 | Зарегистр. 23-11-2003 | Отправлено: 15:08 27-11-2007 | Исправлено: sofos, 15:27 27-11-2007
vlazari



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
sofos
На днях делал, но немного для других целей. Кароче разберёшься:
 
Добавлено:
sofos
sofos
На днях делал, но немного для других целей. Кароче разберёшься:
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Path = "c:\tralealea\asd"
 
Dim fso  
Dim oFolder
Dim oFile
Dim oSubFolder
 
  Set fso = createobject("Scripting.FileSystemObject")
   
   Set oFolder = fso.GetFolder(Path)
   
  For Each oFile In oFolder.files
' If DATE LastModified, then: If DateDiff("d", oFile.DateLastModified,Now) > 30 Then
       If DateDiff("d", oFile.DateCreated,Now) > 30 Then
        oFile.Delete True
    End If
  Next
 
Set oFolder = Nothing
 
Set oFolder = fso.GetFolder(Path)
Set colSubfolders = oFolder.Subfolders
 
For Each oSubfolder in colSubfolders
' If DATE LastModified, then: If DateDiff("d", oSubFolder.DateLastModified,Now) > 30 Then
        If DateDiff("d", oSubFolder.DateCreated,Now) > 30 Then
        fso.DeleteFolder(oSubFolder)
    End If
Next
 
Set oSubFolder = Nothing
Set oFolder = Nothing
Set fso = Nothing
'''''''''''''''''''''''''

Всего записей: 243 | Зарегистр. 20-09-2005 | Отправлено: 16:42 27-11-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