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

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

 

Всего записей: 3778 | Зарегистр. 16-07-2004 | Отправлено: 17:27 11-12-2006 | Исправлено: Smitis, 12:30 20-08-2008
YNY

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
fath
Cacls --Просмотр или изменение файлов избирательных таблиц управления доступом (DACL).
 
 
 

Всего записей: 476 | Зарегистр. 18-05-2006 | Отправлено: 06:07 29-11-2007
abasov



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Коллеги прошу совета. Скрипт архивирует на части и мылит, но аттачи засовывает в одно письмо
Как последовательно обрабатывать по одному файлу из mailPath = "c:\test\" '
 и запускать mailagent = "febootimail.exe"?
 

Код:
 
 
Set objRegExp = CreateObject("VBScript.RegExp")
Set WshShell = CreateObject("WScript.Shell")
objRegExp.Global = True
 
filePath = "c:\test\*.exe" '  
archPath = "c:\test\arch.rar" '
mailPath = "c:\test\" '
inmail = "from@mail.ru"
outmail = "to@mail.ru"
smtp = "first"
ext = "*.rar"
'////////////////////////////////////////////////////////////////////////////////
 
mailagent = "febootimail.exe"
winRarPath = """C:\Program Files\WinRAR\WinRAR.exe"""
 
       WshShell.Run winRarPath & " a -t -m5 -r -y -v40k -agDD-MMM-YY-HH-MM -ep3 " & archPath & " " & filePath, 0, True
    WScript.Sleep 1000
 
sendmail
 
Sub sendmail
 
WshShell.Run mailagent & " -FROM " & inmail & " -TO " & outmail & " -SERVER " & smtp & " -ATTACH " & mailPath & ext & " -MSG " & mailPath & " -DEBUG -WAITAFTER 4 -LOG C:\test\mail.log "
 
 
WScript.Quit  
End sub
 
 

Всего записей: 345 | Зарегистр. 12-11-2002 | Отправлено: 09:08 29-11-2007
G14



Добрый фей
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
abasov
примерно так:

Код:
 
Sub sendmail
FolderPath = mailPath
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(FolderPath)
Set colFiles = objFolder.Files
 
For Each objFile in colFiles
    WshShell.Run mailagent & " -FROM " & inmail & " -TO " & outmail & " -SERVER " & smtp & " -ATTACH " & objFile & " -MSG " & mailPath & " -DEBUG -WAITAFTER 4 -LOG C:\test\mail.log "
Next
WScript.Quit  
End sub
 


----------
http://OpsMgr.ru (более мне не принадлежит. Кому принадлежит - не знаю.)

Всего записей: 3013 | Зарегистр. 19-01-2004 | Отправлено: 09:23 29-11-2007
abasov



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
G14
Спасиб, а как сделать что бы перед каждой коллекцией была пауза?
А то они все вместе запускаются
 
WshShell.Run mailagent & " -FROM " & inmail & " -TO " & outmail & " -SERVER " & smtp & " -ATTACH " & objFile & " -MSG " & mailPath & " -DEBUG -WAITAFTER 4 -LOG C:\test\mail.log ",0,true
 
немного не то, надо пауза

Всего записей: 345 | Зарегистр. 12-11-2002 | Отправлено: 09:33 29-11-2007 | Исправлено: abasov, 09:42 29-11-2007
G14



Добрый фей
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
abasov

Цитата:
немного не то, надо пауза

Да вообще-то я не дочитывал строку до конца Скопировал, поправил параметр аттача
Ну вставь после строки запуска майагента своего Wscript.Sleep xxxx

----------
http://OpsMgr.ru (более мне не принадлежит. Кому принадлежит - не знаю.)

Всего записей: 3013 | Зарегистр. 19-01-2004 | Отправлено: 09:50 29-11-2007
untitledds

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Приветствую Коллеги,
возникла необходимость добовлять принтеры на сервер. Давать права "domain admin" местным совершенно не хочется, давать доступ к терминалу тоже. Ввел их в группу  print operators, но при заходе на шару сервера им не видна пакпка fax and printers. Создал вот такой батничек  

Код:
 
@echo off
setlocal
 
set IP=172.17.17.17
set SERVER=\\server
set DRVPATH=\\sever\DATA$\Distrib\Drivers\HP8150\PCL6
set INFNAME=hp8150_6.inf
set PRNAME="HP Laserjet 8150 PCL 6"
set DRVNAME="HP Laserjet 8150 PCL 6"
set SHARENAME="Printer"
set SHARE="HP8150PCL6"
 
 
cls
 
 
echo.
echo INSTALL PRINTERPORT...
 
cscript //D c:\print\portmgr.vbs -a -c %SERVER% -p "IP_%IP%" -h %IP% -t raw -n 9100 -me -y public -i 1 -2d
echo OK
 
echo.
echo Install driver printer and printer
cscript //D c:\print\prnmgr.vbs -c %SERVER% -a -b %PRNAME% -p "%DRVPATH%" -f "%DRVPATH%\%INFNAME%" -m %DRVNAME% -r "IP_%IP%"
 
echo.
echo Share Printer
 
cscript //D c:\print\prncfg.vbs -s -b "%SERVER%\%PRNAME%" -l %SHARENAME%  -h %SHARE% +shared +published +rawonly -direct +queued
echo OK
echo.
echo.
 
 
endlocal
 
pause
 

собственно с рабочими машинами это проходит, а вот при указании сервера, сразу при добавлении порта начинает ругаться что не правильное имя принтера.

Код:
 
Error: Adding port "IP_172.17.17.17", error: 0x80070709. The printer name is
inva
lid.
 

при чем такая ошибка выпадает и у пользователя с правами domain admin.
Подскажите как можно дать право устанавливать принтера на сервере и публиковать их? не давая domain admin и terminal
Спасибо
 
 
!!!UP!!!
спасибо разобралсясам

Всего записей: 4 | Зарегистр. 22-09-2005 | Отправлено: 09:56 29-11-2007 | Исправлено: untitledds, 16:25 29-11-2007
cluster

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

Цитата:
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.CommandText = _  
    "Select Name, Location from 'LDAP://OU=MyOU,DC=fabrikam,DC=com' " _  
        & "Where objectClass='user'"    
objCommand.Properties("Page Size") = 1000  
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE  
Set objRecordSet = objCommand.Execute  
objRecordSet.MoveFirst  
 
Do Until objRecordSet.EOF  
    Wscript.Echo "User Name: " & objRecordSet.Fields("Name").Value  
    objRecordSet.MoveNext  
Loop  
 
или  
 
$strFilter = "user"  
   
$Domain = [adsi]"LDAP://OU=MyOU,DC=fabrikam,DC=com"  
$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  
}  

 
Так мне в файл надо!

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



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

Код:
 
' Скрипт Архивирует и мылит частями в отдельном письме
Set objRegExp = CreateObject("VBScript.RegExp")
Set WshShell = CreateObject("WScript.Shell")
objRegExp.Global = True
 
mailagent = "febootimail.exe"
winRarPath = """C:\Program Files\WinRAR\WinRAR.exe"""
 
'///////////////////////////////////////////////////////////////////////////////
filePath = "c:\test\*.*" ' откуда архивировать
archPath = "c:\test\arch" ' куда архивировать
mailPath = "c:\test\" ' откуда отправлять
inmail = "from@mail.ru"
outmail = "to@mail.ru"
smtp = "first" ' SMTP серврер
part = "100" ' в килобайтах размер части
'////////////////////////////////////////////////////////////////////////////////
 
 
 WshShell.Run winRarPath & " a -t -m5 -r -y -v" & part & "k -agDD-MMM-YY-HH-MM -ep3 " & archPath & " " & filePath, 0, True
 
 
    WScript.Sleep 1000
sendmail
 
 Sub sendmail
FolderPath = mailPath
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(FolderPath)
Set colFiles = objFolder.Files
 
For Each objFile in colFiles
 
 
    WshShell.Run mailagent & " -FROM " & inmail & " -TO " & outmail & " -SERVER " & smtp & " -ATTACH " & objFile & " -MSG " & objFile & " -DEBUG -WAITAFTER 4 ",0,true
     
WScript.Sleep 4000
Next
 
WScript.Quit  
End sub  
 

Всего записей: 345 | Зарегистр. 12-11-2002 | Отправлено: 10:45 29-11-2007
Etalon

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

Цитата:
а как сделать что бы перед каждой коллекцией была пауза?  
А то они все вместе запускаются  


Код:
Result = WshShell.Run mailagent & " -FROM  
" & inmail & " -TO " & outmail & " -SERVER " & smtp & " -ATTACH " & objFile & " -MSG " & mailPath & " -DEBUG -WAITAFTER 4 -LOG C:\test\mail.log ",0,true

Следующая команда в сценарии не будет выполняться пока WshShell.Run mailagent не вернёт код ошибки
 
cluster
Так у тебя же с выводом в файл было всё нормально
Вот я и показал тебе только, как получить список пользователей в конкретной OU и вложенных в неё OU
 
Если нужно сохранение в файл то покажи как должны выглядеть строки, кот. ты хочешь в него писать.

Всего записей: 306 | Зарегистр. 03-02-2006 | Отправлено: 11:32 29-11-2007 | Исправлено: Etalon, 14:10 29-11-2007
cluster

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

Цитата:
Так у тебя же с выводом в файл было всё нормально

А мне никак не адаптировать твои примеры для создания файла..
 
Список можно простой:
Логин; ПОлное имя; Описание;
или
Логин <TAB> Полное имя <TAB> Описание;

Всего записей: 1720 | Зарегистр. 21-11-2003 | Отправлено: 11:58 29-11-2007
FogFromDark



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
А вот еще такой вопрос, как бы мог выглядеть скрипт проверяющий что сетевой интерфейс уже получил IP и продолжающий мапить сетевые шары? Это иногда необходимо когда на клиентах не отрабатывает скрипт при входе в домен и не подключаются сетевые шары. Вот приблизительно как это должно выглядеть:
 

Код:
 
Option Explicit
Dim WshNetwork, objWMIService, IPConfig, IPConfigSet, count, i
Const strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Err.Number=0
On Error Resume Next
count = 0
Do While count=0
    Set IPConfigSet = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration Where IPEnabled=TRUE")
    For Each IPConfig in IPConfigSet
        If Not IsNull(IPConfig.IPAddress) Then
            count = count+1
        End If
    Next    
loop  
'далее идет скрипт подключения шар
 

Всего записей: 9 | Зарегистр. 18-09-2002 | Отправлено: 12:49 29-11-2007
Etalon

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

Код:
 
$strFilter = "user"
 
$Domain = [adsi]"LDAP://OU=MyOU, DC=fabrikam, DC=com"
$Searcher = New-Object System.DirectoryServices.DirectorySearcher
$Searcher.SearchRoot = $Domain
$Searcher.SearchScope = "Subtree"  
$Searcher.PageSize = 1000  
 
$Searcher.Filter = "(objectCategory=$strFilter)"
 
$s = ""
 
$Searcher.FindAll() | ForEach-Object -Process {
    $Entry = $_.GetDirectoryEntry()
    $s += $Entry.sAMAccountName + ";" + $Entry.Name + ";" + $Entry.Department + "`n"
}
Out-File -filepath users.txt -inputobject  $s
 

Всего записей: 306 | Зарегистр. 03-02-2006 | Отправлено: 12:59 29-11-2007 | Исправлено: Etalon, 13:09 29-11-2007
abasov



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

Всего записей: 345 | Зарегистр. 12-11-2002 | Отправлено: 13:17 29-11-2007
Etalon

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
abasov
Ну почемуже? Можно отсылать почту не сторонней утилитой MailAgent, а встроенными средствами ОС. Пример...

Всего записей: 306 | Зарегистр. 03-02-2006 | Отправлено: 14:02 29-11-2007
abasov



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Etalon
Не универсально, например на серверах обычно объекта CDO нет, нафик там Office или глюклук
 
Добавлено:
Etalon
бог с ним не в винде консольных средств отправки мыла, дык в висте убрали телнет, нет его, теперь компонентом отдельным...

Всего записей: 345 | Зарегистр. 12-11-2002 | Отправлено: 14:36 29-11-2007
Etalon

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
abasov
Проверил сервер. Офиса там отродясь не было, а CDO есть. Странно...

Всего записей: 306 | Зарегистр. 03-02-2006 | Отправлено: 15:00 29-11-2007
G14



Добрый фей
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
abasov

Цитата:
Не универсально, например на серверах обычно объекта CDO нет, нафик там Office или глюклук  
 

CDO это часть COM, он есть на всех серверных ОС, начиная с Win2000.
 
Добавлено:

Цитата:
бог с ним не в винде консольных средств отправки мыла, дык в висте убрали телнет, нет его, теперь компонентом отдельным...

ну и что? а зачем нужен telnet ?

----------
http://OpsMgr.ru (более мне не принадлежит. Кому принадлежит - не знаю.)

Всего записей: 3013 | Зарегистр. 19-01-2004 | Отправлено: 15:15 29-11-2007
abasov



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
G14
telnet'ом тоже можно отправить мыло, на крайний случай

Всего записей: 345 | Зарегистр. 12-11-2002 | Отправлено: 19:12 29-11-2007
sofos



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

Всего записей: 682 | Зарегистр. 23-11-2003 | Отправлено: 23:46 29-11-2007
rosalin



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Уважаемые All  
 
неужеле никто не поможет
мне в моей беде
 
Вот это....


----------

Всего записей: 2474 | Зарегистр. 15-04-2003 | Отправлено: 10:49 30-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.Board
© Ru.Board 2000-2020

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru