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

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

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

Цитата:
GoodBoy

в ворде есть редактор HTML и там мона писать: обрезаная визуал студия )

Всего записей: 476 | Зарегистр. 18-05-2006 | Отправлено: 14:14 23-09-2007
GoodBoy

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

Цитата:
Специализированный Adersoft VB Script Editor
или универсальный SciTE . Есть, конечно и другие...

Из них больше понравился VB Script Editor, т.к. в нем есть пошаговая отладка скрипта. Перехожу на него.
 
YNY

Цитата:
в ворде есть редактор HTML и там мона писать: обрезаная визуал студия )

Наверно ты про Microsoft Script Editor 10.0. В нем тоже есть пошаговая отладка, но нет подсказок по возможным методам и свойствам объекта.
 
Народ, а может есть редактор, как среда Визуал Бэйсик, чтобы и пробелы ставил красиво, и регистр в словах редактировал? Три вышеозвученных редактора этого не делают.

Всего записей: 7 | Зарегистр. 14-03-2006 | Отправлено: 19:57 23-09-2007
YNY

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

Цитата:
нет подсказок по возможным методам и свойствам объекта.

зато если выделить тег и нажать F1, то ты получишь справку и тем более (если просто нажмешь F1 без выделения тега или функции) там все просто написано и про св-ва и про методы, а если к примеру ты после _типа_ "document" поставишь "." то как в ВБейсике увидешь методы и прочее а ранее тут был выложен не плохой наборец файлов с пом кот мона посм все св-ва и т.п. про люб объект

Всего записей: 476 | Зарегистр. 18-05-2006 | Отправлено: 13:19 24-09-2007
awsswaawsswa

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
' Подключение принтеров в зависимости от параметра Location в AD
' например Бухгалтерия и Приёмка
 
option explicit
Dim  Path, strComputerDN, objSysInfo, objComputer,  Network
Dim count
Dim objWMIService,colInstalledPrinters,objPrinter  
Dim PrinterName
Dim temp_bool
Dim strComputer
 
 
sub IsPrinterConnect( PrinterName,temp_bool )  
    on error resume next
    set count=0
   strComputer = "."
    Set objWMIService = GetObject("winmgmts:" _
   & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colInstalledPrinters =  objWMIService.ExecQuery _
   ("Select * from Win32_Printer")
For Each objPrinter in colInstalledPrinters
   If (objPrinter.Name=PrinterName ) then count=count+1
'   Wscript.Echo "Name: " & objPrinter.Name
Next
   if (count >0) then  temp_bool  = true else temp_bool =false
end sub
 
sub ConnectPrinter ( PrinterName )
    on error resume next
           Network.AddWindowsPrinterConnection PrinterName
end sub
 
sub ConnectDefaultPrinter ( PrinterName )
    on error resume next
           Network.AddWindowsPrinterConnection PrinterName
           Network.SetDefaultPrinter PrinterName
end sub
 
on error resume next
 
 
Set Network = CreateObject("Wscript.Network")
Path = Network.ComputerName
Set objSysInfo = CreateObject("ADSystemInfo")
strComputerDN = objSysInfo.ComputerName
Set objComputer = GetObject("LDAP://" & strComputerDN)
'Назначаем необходимый для установки сетевой принтер
'в зависимости от значения поля Location
 
Select Case objComputer.Get("Location")
 
    Case "Бухгалтерия"
call  IsPrinterConnect( "\\Server-1\HP1022", temp_bool)
if (temp_bool=false)then call  ConnectDefaultPrinter("\\Server-1\HP1022")
 
' а сюда подключаем два принтера - первый по умолчанию
    Case "Приёмка"
call  IsPrinterConnect( "\\Server-2\HP1320", temp_bool)
if (temp_bool=false)then call ConnectPrinter( "\\Server-2\HP1320")
call  IsPrinterConnect( "\\Server-3\HPLJ2300", temp_bool)
if (temp_bool=false)then call ConnectDefaultPrinter( "\\Server-3\HPLJ2300")
 
    Case Else
WScript.Quit
    End Select

Всего записей: 91 | Зарегистр. 06-10-2004 | Отправлено: 15:24 24-09-2007
jONES1979



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
GoodBoy PrimalScript - дюже хороший редактор  
http_://enfull.com/english/Programming/%7B83FD34D0-6B29-4E63-8128-DCA25A304DDB%7D.htm
 
Добавлено:
awsswaawsswa пора осваивать теги, например  [more] свой длинный код [/more]

Всего записей: 324 | Зарегистр. 20-05-2005 | Отправлено: 17:53 25-09-2007 | Исправлено: jONES1979, 18:01 25-09-2007
rosalin



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ребята есть какой нибудь скрипт для отключеня компов по сети  
 
но только при простое допустим 2 часа
 
Добавлено:
просто некотрые юзеры леняться выключать свои компьютеры

Всего записей: 2588 | Зарегистр. 15-04-2003 | Отправлено: 19:03 25-09-2007
yazzi

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

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

скрипт должен смотреть какие какой юзер сидит на компьютере, на машине где стоит зр он показывает активного пользователя а на windows 2000 показывает только пользователь с админскими правами вот  
 
 
Добавлено:
GoodBoy
Мне VBSEdit нравиться

Всего записей: 98 | Зарегистр. 14-08-2007 | Отправлено: 20:18 25-09-2007
VirwolfLEOne

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Самый замечательный скрипт shutdown.exe. Кроме серверов, в шедулет таск, работает безотказно И воще: все гениальное - ПРОСТО

Всего записей: 33 | Зарегистр. 28-08-2007 | Отправлено: 23:10 25-09-2007
rosalin



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
VirwolfLEOne
да но мне это надо сделать допустим в интервале 18.00 - 9.00

Всего записей: 2588 | Зарегистр. 15-04-2003 | Отправлено: 08:31 26-09-2007
Etalon

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
yazzi
Вот такой сценарий хорошо узнаёт какой пользователь зарегистрирован на данном компьюте

Код:
 
$ComputerName = "."
$ComputerSystem = Get-WMIobject -class "Win32_ComputerSystem" -namespace "root\CIMV2" -computername $ComputerName
$ComputerSystem.UserName
 

 
Добавлено:
BULLDOG
Ты уже решил свою задачу

Цитата:
Народ. Как в VBS определтить OU залогиневшегося пользователя в AD? Очень нужно.

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

Код:
 
Set objSysInfo = CreateObject("ADSystemInfo")
strComputer = objSysInfo.ComputerName
Set objComputer = GetObject("LDAP://" & strComputer)
arrOUs = Split(objComputer.Parent, ",")
arrMainOU = Split(arrOUs(0), "=")
Wscript.Echo arrMainOU(1)
 

Тоже самое можно сделать и для пользователя

Код:
 
Set objSysInfo = CreateObject("ADSystemInfo")
strUser = objSysInfo.UserName
Set objUser = GetObject("LDAP://" & strUser)
arrOUs = Split(objUser.Parent, ",")
arrMainOU = Split(arrOUs(0), "=")
Wscript.Echo arrMainOU(1)
 


Всего записей: 306 | Зарегистр. 03-02-2006 | Отправлено: 09:13 26-09-2007
awsswaawsswa

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А вот так пихаем задание в Шедулер
 
Scheduling a Task
 
Schedules Notepad to run at 12:30 PM every Monday, Wednesday, and Friday.
 
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set objNewJob = objWMIService.Get("Win32_ScheduledJob")
errJobCreated = objNewJob.Create _
    ("Notepad.exe", "********123000.000000-420", _
        True , 1 OR 4 OR 16, , , JobID)  
Wscript.Echo errJobCreated
 
Краткое пояснение: 123000 - это время
а -420 разница во времени
 
Sunday 64,
Monday 1,
Tuesday 2,
Wednesday 4,
Thursday 8,
Friday 16,
Saturday 32

Всего записей: 91 | Зарегистр. 06-10-2004 | Отправлено: 12:56 26-09-2007 | Исправлено: awsswaawsswa, 09:07 27-09-2007
YNY

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

Цитата:
yazzi

если у тя все еще не получается см мой тебе ответ на 27стр.
 
По поводу того откуда запускать скрипт: на 27стр ты гришь:-Помогите плиз запускаю на сервере скрипт, причем не указав как ты это делаешь (из приведенного тобой отрывка скрипта этого не видно), с целью опр имя лог юзера, отсюда и мое высказывание по пов-ду размещ и запуска скрипта!!!  

Всего записей: 476 | Зарегистр. 18-05-2006 | Отправлено: 14:29 26-09-2007
salavatwest

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как спомощью скрипта переименовать комп по имени учетной записи входящий в домен?
 

Всего записей: 9 | Зарегистр. 05-02-2006 | Отправлено: 14:36 27-09-2007
abasov



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

Цитата:
Как спомощью скрипта переименовать комп по имени учетной записи входящий в домен?  

 
Есть код, надо только немного переделать

Код:
 
'Переименование компьютера в домене 1-й вариант CMD
'netdom renamecomputer komp /newname:komp_new /userd:domain\Administrator /passwordd:****** /usero:domain\Administrator /passwordo:******
 
' 2-й вариант
' ------ SCRIPT CONFIGURATION ------
' ------
strComputer     = ""       e.g. joe-xp
strNewComputer  = ""    e.g. joe-pc
strDomainUser   = ""      e.g. administrator@domain
strDomainPasswd = ""
strLocalUser    = ""  e.g. joe-xp\administrator
strLocalPasswd  = ""
' ------ END CONFIGURATION ---------
 
'###########################
' Connect to Computer
'###########################
set objWMILocator = CreateObject("WbemScripting.SWbemLocator")
objWMILocator.Security_.AuthenticationLevel = 6
set objWMIComputer = objWMILocator.ConnectServer(strComputer,  _
                                                 "root\cimv2", _
                                                  strLocalUser, _
                                                  strLocalPasswd)
set objWMIComputerSystem = objWMIComputer.Get( _
                               "Win32_ComputerSystem.Name='" & _
                               strComputer & "'")
'###########################
' Rename Computer
'###########################
rc = objWMIComputerSystem.Rename(strNewComputer, _
                                 strDomainPasswd, _
                                 strDomainUser)
if rc  0 then
    WScript.Echo "Rename failed with error: " & rc
else
    WScript.Echo "Successfully renamed " & strComputer & " to " & _
                 strNewComputer
end if
 
WScript.Echo "Rebooting..."
set objWSHShell = WScript.CreateObject("WScript.Shell")
objWSHShell.Run "rundll32 shell32.dll,SHExitWindowsEx 2"
 

 
 
Добавлено:
У кого есть скрипт, что бы  отслеживать подключение внешних внешних устройств (USB), если подключено - слать мылом?

Всего записей: 345 | Зарегистр. 12-11-2002 | Отправлено: 15:05 27-09-2007 | Исправлено: abasov, 20:29 27-09-2007
AHTuXPuCT666

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть логон скрипт который добавляет группу PowerGroup в группу Локальные Администраторы
 
[code]
'Добавление заданной группы в группу Локальные Администраторы
Set WshShell = CreateObject("WScript.Shell")  
WScript.Sleep 10000
Set Network = CreateObject("Wscript.Network")  
strComputer = Network.ComputerName
Set objGroup = GetObject("WinNT://" & strComputer & "/Администраторы,group")  
Set objGroup1 = GetObject("WinNT://DOMAIN/PowerGroup,group")  
objGroup.Add(objGroup1.ADsPath)  
[\code]
 
Как его запустить от имени Администратора???

Всего записей: 2 | Зарегистр. 28-09-2007 | Отправлено: 10:15 28-09-2007
fragpit



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как обновить .dll файл на всех машинах в домене? Т.е. надо его скопировать всем. Нужен скрипт! Помогите. Спасибо.

Всего записей: 13 | Зарегистр. 28-09-2007 | Отправлено: 12:35 28-09-2007
abasov



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

Цитата:
Как его запустить от имени Администратора???

AHTuXPuCT666
 

Код:
 
Dim WshShell, ObjFSO
Set WshShell = CreateObject("WScript.Shell")  
set objFSO = CreateObject("Scripting.FileSystemObject")  
 
appl="cmd /C wscript.exe скрипт_который_надо_запустить.vbs"  
pass="xxx"  
users="admin"  
Set objWMIService = GetObject _  
      ("winmgmts:\\.\root\cimv2:Win32_Process")  
      errReturn = objWMIService.Create _  
("cmd.exe /c ""title RUNAS_AUTO & runas.exe /netonly /user:" & users & " """ & appl & """""", Null, Null, intProcessID)  
wscript.Sleep(1000)  
wshShell.AppActivate "RUNAS_AUTO"  
wshShell.SendKeys pass & "{ENTER}"  
 

 
 
Добавлено:
fragpit

Цитата:
запустить от имени Администратора???  


Цитата:
Как обновить .dll файл на всех машинах в домене? Т.е. надо его скопировать всем. Нужен скрипт! Помогите. Спасибо.  

 

Код:
 
' Скрипт для замены файлов на сетевых машинах
'  C:\Program Files\WinRAR\winrar.exe
'  D:\Program Files\WinRAR\winrar.exe
 
 
 
Option Explicit
 
 Dim LogFileName1
 LogFileName1 = CStr("C:\IPSy1.txt")
 Dim fso
 Set fso = WScript.CreateObject("Scripting.FileSystemObject")
 
 Dim file1
 Set file1 = fso.CreateTextFile(LogFileName1)
 
on error resume next
 Err.Clear
 
 
 
Dim ADComp,  objADComp
dim host_file
dim pach_host_file
 
Set ADComp = GetObject("WinNT://domain.ru")
Set fso = WScript.CreateObject("Scripting.FileSystemObject")
 
ADComp.Filter = Array("Computer")
 
For Each objADComp in ADComp
    Dim strComputer, objPing, objStatus
 
    strComputer = objADComp.Name
    Set objPing = GetObject("winmgmts:{impersonationLevel=impersonate}")._
            ExecQuery("select * from Win32_PingStatus where address = '"_
         & strComputer & "'")
 
    For Each objStatus in objPing
        
 
            If objStatus.StatusCode=0 Then  
        
            Dim LogResult, objWMIService, colItems, objItem
            On Error Resume Next
            Set objWMIService = GetObject("winmgmts://" & strComputer & "/root\CIMv2")
            If Err <> 0 Then
                
                 file1.WriteLine   strComputer &"  Access Deny"
                 Err.Clear
 
 
 
 
            Else
                
 
                    pach_host_file = "\\" & strComputer
                    
                    If (fso.FolderExists(pach_host_file & "\C$\Program Files\WinRAR")) Then
 
                            Set host_file = fso.OpenTextFile(pach_host_file & "\C$\Program Files\WinRAR\winrar.exe",1,false)
                        if err then
                             file1.WriteLine strComputer &"  каталог  C:\Program Files\WinRAR - есть но файла winrar.exe НЕТ!"
                            Err.Clear
                        else
                             file1.WriteLine strComputer &"  каталог  C:\Program Files\WinRAR - и  файл winrar.exe ЕСТЬ"
 
                        end if
                     Else
                             file1.WriteLine strComputer &"  отсутствует каталог  C:\Program Files\WinRAR !"
                    end if
 
 
                    If (fso.FolderExists(pach_host_file & "\D$\Program Files\WinRAR")) Then
                        Set host_file = fso.OpenTextFile(pach_host_file & "\D$\Program Files\WinRAR\winrar.exe",1,false)
                        if err then
                             file1.WriteLine strComputer &"  каталог  D:\Program Files\WinRAR - есть но файла winrar.exe НЕТ!"
                            Err.Clear
                        else
                             file1.WriteLine strComputer &"  каталог  D:\Program Files\WinRAR - и  файл winrar.exe ЕСТЬ"
 
                        end if
                     Else
                             file1.WriteLine strComputer &"  отсутствует каталог  D:\Program Files\WinRAR !"
                    end if
 
 
 
 
 
 
 
                    
 
                     Err.Clear
 
            end if
        Else
            
            
        End if
    Next
Next
 
 

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



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
abasov
опа .. спасибо. А не мог бы немного прокомментировать. А то не пойму куда переменные мои вставлять.

Всего записей: 13 | Зарегистр. 28-09-2007 | Отправлено: 14:12 28-09-2007
abasov



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

Цитата:
А то не пойму куда переменные мои вставлять

Убери лишние условия, замени RAR на свою библиотеку

Всего записей: 345 | Зарегистр. 12-11-2002 | Отправлено: 14:22 28-09-2007
fragpit



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

Всего записей: 13 | Зарегистр. 28-09-2007 | Отправлено: 15:56 28-09-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