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

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



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


Цитата:
обычно, у 80% админов, скрипты лежат на их машине/на серваке...

Очень рад, что хотябы 80% админов живут как люди. А вот у меня условия такие, что есть около 15 компов - управлящие различными агрегатами, за которыми в качестве операторов сидят "мартышки". Компы, управляющие агрегатами слабые, на некоторых 98-я винда. Я бы с удовольствием все необхордимое на C# бы накатал, да вот беда, оперы на компах 96-128 метров . Сам представь что быдет с приложением .NET на таком компе.
Да, самое главное, что территориально, компы расположены в радиусе километров в 500. Да и ездить туда... да что ездить, даже по телефону объяснять что и как - очень напряжно. Коммуникаций нет никаких впринципе. Даже GPRS у местных ОпСоСов в этой области нет. Поэтому и было решено автоматизировать устранение неисправностей, благо при тщательном анализе это вполне возможно. А защита от распространения нужна лишь для того, что мое начальство желает все и вся за 300 баксов. Вот уеду я к вам в Россию, и пусть здесь все нарен наркывается медным тазом... Кстати, часовой простой агрегата измеряется тысячами баксов (нефть, газ и все такое).

Всего записей: 1037 | Зарегистр. 13-04-2006 | Отправлено: 19:21 17-06-2008
cluster

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я извиняюсь, мой вопрос к администрированию мало относится, но не знаю, в какой теме лучше задать.
Нужен скрипт на vbs или wsh, при запуске которого будет всплывать окошко с сообщением <время работы Windows в часах> и <время работы Windows в днях +часах>

Всего записей: 1720 | Зарегистр. 21-11-2003 | Отправлено: 23:09 17-06-2008
Refugee

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
cluster
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
 
Set colOperatingSystems = objWMIService.ExecQuery ("Select * From Win32_PerfFormattedData_PerfOS_System")
 
For Each objOS in colOperatingSystems
    hUptime = Int(objOS.SystemUpTime / 3600)
    dUptime = Int(hUptime/24)
    hUptime = hUptime-dUptime*24
 
    s = "Uptime "
    if dUptime <> 0 then s=s  & dUptime & " days "
    s = s & hUptime & " hours"
 
    msgbox s
Next
 

Всего записей: 513 | Зарегистр. 31-03-2004 | Отправлено: 00:48 18-06-2008
YNY

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

Цитата:
Real Root

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

Всего записей: 476 | Зарегистр. 18-05-2006 | Отправлено: 12:37 18-06-2008
Real Root



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

Цитата:
я надеюсь в день, при таких та расстояниях? ты знаешь у нас тут, кроме Москвы, это ниже средней зарплата, расстояния хоть и не такие, но гемора не меньше

Нет, это в месяц. Нашли лоха, да? А вобще у нас тут это очень даже хорошая з/п. Ср. зар. плата у нас тут 150 у.е. Да и я не каждый день туда-сюда мотаюсь. Если совсем жопа - то еду, но это редко. Хотя, я просто более менее все автоматизировал. А вобще, там на каждый такой агрегат по 2 спеца должно имется, которые там должны сидеть по очереди. З.п. у них должна быть по 100 у.е. Я честно говоря до сих пор понять не могу, каким методом до этого все работало.

 
Подскажите, как можно получить путь к папке Мои докумнты.
Проблема в том, что на некоторых компах, папка Мои документы перенесана из %userprofile% на диск D. А для папки Мои документы переменную %***% что-то не припомню.
 
Добавлено:
Пока что придумал вот такой способ:
DocumentsDir = WshShell.RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Personal")
 
Добавлено:
Да, и еще вопрос, пока что чисто из спортивного интереса. Есть ли возможност при помощи VBScript менять права на файлы и папки NTFS. И есть ли возможность делать тоже самое с параметрами и ключами реестра.
Впринципе, подойдет даже с помощью внешних библиотек.

Всего записей: 1037 | Зарегистр. 13-04-2006 | Отправлено: 21:37 18-06-2008
Refugee

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Real Root
еще можно так:
set s=CreateObject("Shell.Application")
dir=s.NameSpace(5).self.path
впрочем, прямо через реестр лучше
 
права на файлы можно менять через WMI, класс Win32_LogicalFileSecuritySetting, а на файлы/ключи реестра через объект ADsSecurityUtility

Всего записей: 513 | Зарегистр. 31-03-2004 | Отправлено: 23:44 18-06-2008
hotch



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А кто-нибудь сталкивался с необходимостью вытащить в отдельный контейнер компьютеры из определенной подсети???
Компов много, порядка 2000, все в домене, из них надо вынуть все, которые логинятся в определенной подсети. Переместить их в отдельный OU. Логи логонов есть. В текстовом файле и в mdb.
Руками осилил штук 20 %)
Спасите-помогите

Всего записей: 48 | Зарегистр. 02-04-2003 | Отправлено: 17:57 23-06-2008
aleksanchez



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

Код:
Const ForReading = 1
Dim fso
Set fso = CreateObject("scripting.filesystemobject")
Set input = fso.OpenTextFile("c:\names.txt",ForReading)
Set objNewOU = GetObject("LDAP://OU=Finance,DC=fabrikam,DC=com")
Do Until objTextFile.AtEndOfStream
    CompName = objTextFile.Readline
     
    Set objMoveComputer = objNewOU.MoveHere _
    ("LDAP://CN=" & CompName & ",CN=Computers,DC=fabrikam,DC=com", "CN=" & CompName)
Loop

 
в файле c:\names.txt должны быть логины компов (по одному на строку)
Finance - имя контейнера, куда перемещаешь
В принципе должно работать, но не проверял, нет возможности щас
Соответственно то, что выделено красным надо поменять на свой вариант (путь/имя до файла с логинами и имя домена)

Всего записей: 32 | Зарегистр. 03-02-2008 | Отправлено: 14:14 24-06-2008
Real Root



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Подскажите, есть ли альтернативные методы копирования файлов. Т.е. не используя объект Scripting.FileSystemObject.
Честно говоря копирование методом CopyFile (объекта Scripting.FileSystemObject) примитивное до нельзя. Путь к файлу должен существовать, у файла не должно быть запрещающих атрибутов и т.д. Конечно можно написать процедцрку, разгребающую все эти подводные файлы. Но, на это уйдет прилично времени, и код скрипта распухнет донельзя, что не есть оптимально
 
Сейчас для копирования файлов использую Wscript.Run XCOPY bla bla bla, 0 - намного проще и разумнее. Но тут тоже есть своя запарка, а именно запрос является ли адрес назначения файлом или каталогом. Пока что мне нужно перезаписывать существующий файл, и это терпимо, но если файла нет - то облом.

Всего записей: 1037 | Зарегистр. 13-04-2006 | Отправлено: 18:25 24-06-2008
YNY

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

Цитата:
Путь к файлу должен существовать

интересно, а что ты будешь копировать если путь не верен???

Цитата:
не должно быть запрещающих атрибутов и т.д.

хм, ну если ты от имени админа все делаешь, то никаких вопросов быть не должно быть, иначе -- бей по рукам, тем кто искл админа из пермиссий  
 
Добавлено:
Вариант 1
есть такая CaCLS
Просмотр или изменение файлов избирательных таблиц управления доступом (DACL).
Устанавливай права перед копированием и копируй

Всего записей: 476 | Зарегистр. 18-05-2006 | Отправлено: 08:46 25-06-2008
Real Root



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

Цитата:
интересно, а что ты будешь копировать если путь не верен???

Блин, ну неужели не бывает ситуаций, когда нужно скопировать файл, например в D:\Program Files\AnyCompany\AnyProgram\ и при этом даже каталога D:\Program Files\ еще не существует. Есть же проги, которые это без лишних эмоций воссоздают каталоги на всем пути. Вот нужно что-то типа этого.
 

Цитата:
хм, ну если ты от имени админа все делаешь, то никаких вопросов быть не должно быть, иначе -- бей по рукам, тем кто искл админа из пермиссий  

Под запрещающими атрибутами я имел ввиду атрибуты "Только чтение" и "Системный".
 
Впринципе, и для первого и второго случая можно написать функции, обрабатывающие исключения, но код распухнет прилично. Если нужно копировать много файлов, то такие функции только навредят быстродействию.

Всего записей: 1037 | Зарегистр. 13-04-2006 | Отправлено: 13:41 25-06-2008
yazzi

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день. Может кто что подскажет.Существует домен. В домене есть рабочие станции и есть терминал. Некоторые пользователи работают на станциях, а некоторые на терминале. На терминале запрещено выполнение .exe скриптов. В групповой политики у пользователей было прописано "startup.exe". Проблема состоит в том чтобы на терминале не запускать логон скрипт. Я написал следующий скрипт  
Option Explicit
Dim WshNetwork
Dim WshShell
Dim Computer
Set WshNetwork = WScript.CreateObject("WScript.Network")
Set WshShell = WScript.CreateObject("WScript.Shell")
Computer=WshNetwork.ComputerName
If Computer<>"S915-TERMINAL" Then
  WshShell.Run "startup.exe"
Else  
  WScript.Quit
End If
Но так как и выполнение скриптов на терминале для обычных пользователей запрешено он тоже не работает
Отсюда и вопрос существует ли возможность запуска скрипта из под админа или системы. Или кто может подскажет другой вариант.

Всего записей: 98 | Зарегистр. 14-08-2007 | Отправлено: 13:27 26-06-2008
Vby



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
yazzi
А может проще настроить ГПО, чтобы на терминалке не выполнялся логон скрипт?

Всего записей: 781 | Зарегистр. 16-09-2004 | Отправлено: 18:23 26-06-2008
yazzi

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Не подскажешь как это сделать.

Всего записей: 98 | Зарегистр. 14-08-2007 | Отправлено: 08:36 27-06-2008
ohlos



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

Цитата:
возможность запуска скрипта из под админа или системы

Через утилиты AdminLnk или PsExec. Хотя можно попробовать обойтись и стандартным виндузовским RunAs

Всего записей: 729 | Зарегистр. 13-07-2004 | Отправлено: 09:34 27-06-2008
Vby



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
yazzi
Сделать копию политики, исключить из нее логон скрипт, первую политику поставить применение на компы домена, вторую - только на терминалку
 
ЗЫ: по ГПО есть тема Групповые политики (Group Policy, GPO): документация, ссылки

Всего записей: 781 | Зарегистр. 16-09-2004 | Отправлено: 11:11 27-06-2008
yazzi

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Vby
Спасибо. Сделал следующим образом. Создал 2 подразделения в одно запихнул терминал, а другую все остальные компы. Создал две новых групповых политики(Хотя  впринципе можно обойтись одной ) для каждого подразделения одну с логон скриптом другую без. И поставил флаг вклучено на Конфигурация компьютера/Административные шаблоны/система/групповая политика/ Режим обработки замыкания пользовательской групповой политики.

Всего записей: 98 | Зарегистр. 14-08-2007 | Отправлено: 13:56 30-06-2008
hotch



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

Цитата:
Код:Const ForReading = 1  
Dim fso  
Set fso = CreateObject("scripting.filesystemobject")  
Set input = fso.OpenTextFile("c:\names.txt",ForReading)  
Set objNewOU = GetObject("LDAP://OU=Finance,DC=fabrikam,DC=com")  
Do Until objTextFile.AtEndOfStream  
    CompName = objTextFile.Readline  
     
    Set objMoveComputer = objNewOU.MoveHere _  
    ("LDAP://CN=" & CompName & ",CN=Computers,DC=fabrikam,DC=com", "CN=" & CompName)  
Loop  
 
 
в файле c:\names.txt должны быть логины компов (по одному на строку)  
Finance - имя контейнера, куда перемещаешь  
В принципе должно работать, но не проверял, нет возможности щас  
Соответственно то, что выделено красным надо поменять на свой вариант (путь/имя до файла с логинами и имя домена)

 
Прописал свои пути, откуда куда, при запуске ошибка в 6 строке: Error: object required: 'objTextFile'
Текстовый файл лежит в корне с: и содержит пока одну строку с логином компа.

Всего записей: 48 | Зарегистр. 02-04-2003 | Отправлено: 14:31 30-06-2008 | Исправлено: hotch, 10:14 01-07-2008
aleksanchez



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

Всего записей: 32 | Зарегистр. 03-02-2008 | Отправлено: 19:12 01-07-2008
hotch



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
aleksanchez
Заработало!
Спасибо!
 
я добавил: On Error Resume Next т.к. при отсутствии логина компьютера в source OU выдавалась ошибка.

Всего записей: 48 | Зарегистр. 02-04-2003 | Отправлено: 10:53 02-07-2008 | Исправлено: hotch, 11:56 02-07-2008
   

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