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

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



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
WSQ
Нажимаешь комбинацию Shift+PrnScr, а затем вставляешь в документ офиса

----------
What out of that we have not win
What out of that we've not return

Всего записей: 661 | Зарегистр. 27-10-2002 | Отправлено: 11:09 23-10-2006
jONES1979



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

Цитата:
Кто подскажет, как запустить Explorer, открыть определенную папку, задать размеры окна, вид файлов - списком и убрать в нем все паннели, чтоб видны были только файлы.

 

Код:
 
Option Explicit
 
Const sLocalPath   = "c:\Database\"
 
Dim objExplorer
 
' On Error Resume Next
 
Set objExplorer = CreateObject("InternetExplorer.Application")
 
  objExplorer.Navigate "file://" + sLocalPath
  objExplorer.ToolBar = 1
  objExplorer.StatusBar = 0
 
  objExplorer.Width = 400
  objExplorer.Height = 400
  objExplorer.Visible = 1
   
  'objExplorer.Quit
 
 

Всего записей: 324 | Зарегистр. 20-05-2005 | Отправлено: 15:46 23-10-2006
Vlad23

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите на KIXе написать скрипт по работе с файлом. Задача состоит в том, чтобы при логоне пользователя открывался файл baduser.txt, состоящий из строк, содержащих имена пользователей, и проверялось наличия имени пользователя @USERID в этом файле ...

Всего записей: 42 | Зарегистр. 06-03-2006 | Отправлено: 17:23 23-10-2006
WSQ

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо jONES1979 за скрипт - понял где копать, полистаю MSDN
 
JcVai  
Цитата:
Нажимаешь комбинацию Shift+PrnScr, а затем вставляешь в документ офиса  

Уже пробовал по телефону объяснить операционисту что такое Word - счас буду делать одним ярлыком.

Всего записей: 47 | Зарегистр. 14-06-2006 | Отправлено: 19:48 23-10-2006
VovaMozg



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Люди, помогите решить такую проблемму (сотню раз уже везде задаю никто не отвечает  
 Имеется сетевой принтер, печатают на котором через print-server (Windows 2003). В Windows 2003 R2 есть такая фича как управлние принт-серверами. И там есть фильтры, которые можно настраивать на принтер. Так вот тут у меня 2 вопроса:
 
1. Натроенные фильтры работатют только тогда, когда запущена консоль, в которой этот фильтр создан, а енто не гут. Как сделать, чтобы фильтру, а точнее скрипты, в этих фильтрах работали без консоли?
 
2.В фильтре я настроил выполнение скрпита, когда идёт печать. Скрпит определяет кто печатет, с какой машины, имя документа и т.д., всё енто заносит в скул базу... а ещё срипт - VBS. Всё енто я определяю средствами WMI. Так вот. не могу определить сколько страниц напечататно. Код:
 
Set colPrintJobs = objWMIService.ExecQuery ("Select * from Win32_PrintJob")
For Each objPrintJob in colPrintJobs
strPrinter = Split(objPrintJob.Name,",",-1,1)
document_name=objPrintJob.Document //Какой документ печатается
pages_printed=objPrintJob.TotalPages // Сколько страниц печатается
Next
 
Так вот этот objPrintJob.TotalPages и определяется неправильно...

Всего записей: 761 | Зарегистр. 02-06-2005 | Отправлено: 15:14 24-10-2006
snorri

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

Цитата:
Вообщем почти все осилил, осталось только зделать WMI запросы на получение инфы о железе и о софте...Помогите с этим плз

 
 
Подробнее...
 
скрипт работает под win98 и winXP (на остальных не проверял)  
в коде закоментишь оправку почтой если она не нужна
при отправке почтой:
1 выставить адрес отправителя и получателя (можно один и тот же)
2 выставить smtp сервер через который будет уходить письмо ( ("http://schemas.microsoft.com/cdo/configuration/smtpser ")  "*" )
в первом inputbox задается имя компа (если "." - localhost, можно имя просто или IP-адрес)
во втором inputbox задается путь куда сохранить текстарь с результатами
 
З.Ы. если кто подскажет как выбирать IP-адрес и дефолтовый Gateway буду премного благодарен, так как в этом скрипте система  сильно матерится если раскоментить эти строки

Всего записей: 3 | Зарегистр. 11-05-2006 | Отправлено: 15:27 24-10-2006
strizhakovs

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

Цитата:
Подробнее...  
 
скрипт работает под win98 и winXP (на остальных не проверял)  
в коде закоментишь оправку почтой если она не нужна  
при отправке почтой:  
1 выставить адрес отправителя и получателя (можно один и тот же)  
2 выставить smtp сервер через который будет уходить письмо ( ("http://schemas.microsoft.com/cdo/configuration/smtpser ")  "*" )  
в первом inputbox задается имя компа (если "." - localhost, можно имя просто или IP-адрес)  
во втором inputbox задается путь куда сохранить текстарь с результатами  
 
З.Ы. если кто подскажет как выбирать IP-адрес и дефолтовый Gateway буду премного благодарен, так как в этом скрипте система  сильно матерится если раскоментить эти строки

 
Очень полезный скрипт! Спасибо пригодится!
Но я обошелся своими силами вот таким методом:
 
strComputer = "computer_name"
strUserName = "administrator"
strPassword = "password"
Set objLocator = CreateObject("WbemScripting.SWbemLocator")
Set objWMIService = objLocator.ConnectServer(strComputer, "root\cimv2", strComputer & _
                                      strUserName, strPassword)
 

Всего записей: 51 | Зарегистр. 26-09-2006 | Отправлено: 16:53 24-10-2006
Bugriy



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите разобраться. Есть задача переименовать группу компьютеров в домене. Есть файлик в экселе с новыми и старыми именами компьютеров. написал скрипт, который дёргает из файлика эти имена:
 
var ExcelPath,objExcel,objWorkbook,PathDir,WshShell,intRow;
 
WshShell=WScript.CreateObject("WScript.Shell");
 
PathDir=WshShell.CurrentDirectory+"\\";
ExcelPath=PathDir+"network.xls";
 
objExcel=WScript.CreateObject("Excel.Application");
objWorkbook = objExcel.Workbooks.Open (ExcelPath);
 
intRow = 1;
 
do  
 
{
WScript.Echo("["+objExcel.Cells(intRow,2).Value+"]"+" from ["+objExcel.Cells(intRow,3).Value+"]");
intRow=intRow+1;
}
while (objExcel.Cells(intRow,2).Value != undefined);
 
objExcel.Quit();
 
 
 
Теперь собственно надо прицепить к скрипту переименовывание. Нашёл в книге O'Reily готовый скрипт на VBS:
 
    ' This code renames a computer in AD and on the host itself.
    ' ------ SCRIPT CONFIGURATION -------
    strComputer     = "<ComputerName>"      ' e.g. joe-xp
    strNewComputer  = "<NewComputerName>"   ' e.g. joe-pc
    strDomainUser   = "<DomainUserUPN>"     ' e.g. administrator@rallencorp.com
    strDomainPasswd = "<DomainUserPasswd>"
    strLocalUser    = "<ComputerAdminUser>" 'e.g. joe-xp\administrator
    strLocalPasswd  = "ComputerAdminPasswd>"
    ' ------ 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"
 
Не могу разобраться, как он работает. Мне нужно список не переименовавшихся компов скинуть в другой экселевский файл.
Скрипт по идее должен работаь в 2 этапа: переименовывать учётку компа в домене и менять свойство name у Win32_ComputerSystem.Name. Домен-то доступен всегда, а вот компьютеры бывают выключены. То есть сначала надо переименовать комп, и если всё пройдёт удачно, то переименовывать его учётку в домене, иначе - отписать имя компа в файл. Как это сделать?

Всего записей: 226 | Зарегистр. 24-08-2005 | Отправлено: 17:50 24-10-2006
jONES1979



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

Цитата:
 Домен-то доступен всегда, а вот компьютеры бывают выключены. То есть сначала надо переименовать комп, и если всё пройдёт удачно, то переименовывать его учётку в домене, иначе - отписать имя компа в файл. Как это сделать?  

 
как вариант: при обращении к выключенному компьютеру произойдет ошибка, которую ты сможешь отловить с помощью объекта Err. ТО ЕСТЬ если Err.Number = 0, то переименовываешь, иначе сохраняешь имя компа в файл
...
 
...
 
Кстати, сдается мне что код:

Код:
 
set objWSHShell = WScript.CreateObject("WScript.Shell")  
    objWSHShell.Run "rundll32 shell32.dll,SHExitWindowsEx 2"  
 

перегрузит твой собственный комп

Всего записей: 324 | Зарегистр. 20-05-2005 | Отправлено: 12:10 25-10-2006
Bugriy



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А где там в скрипте идёт обращение к домену, а где к компу? Я так понимаю, что
 
    rc = objWMIComputerSystem.Rename(strNewComputer, _  
                                     strDomainPasswd, _  
                                     strDomainUser)
 
 - обращение непосредственно к переименовываемому хосту. А где обращение к домену?
 
И что делает эта строка?
    set objWMIComputerSystem = objWMIComputer.Get( _  
                                   "Win32_ComputerSystem.Name='" & _  
                                   strComputer & "'")  
Разве имя компа не совпадает с тем что указано в  strComputer     = "<ComputerName>" ?

Всего записей: 226 | Зарегистр. 24-08-2005 | Отправлено: 13:19 25-10-2006
urel

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Bugriy
обсуждалось както, и пиршли к выводу что работает только у меня, но всеже:
 
берем пример из скрипт центра:

Цитата:
'Rename a Computer and Computer Account
 
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
 
Set colComputers = objWMIService.ExecQuery _
    ("Select * from Win32_ComputerSystem")
 
For Each objComputer in colComputers
    err = objComputer.Rename("WebServer")
Next

 
доработываем напильником и вставляем в логон скрипт  
в зарание созданной политике для компьютеров, в зарание созданном UO с интересующими нас компьютерами.
на уровне этого OU делигируем полные или просто на запись права данным компьютерам (например domain computers, если домен небольшой и не страшно=)
 
далее остается gpupdate/ force и пару раз перезагрузиться.

Всего записей: 292 | Зарегистр. 16-09-2004 | Отправлено: 16:52 25-10-2006
Bugriy



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
urel
Чё-то извращение какое-то выносить компы в отдельное OU и логон скриптом их переименовывать. Ещё и права делегировать. Мне 60 компьютеров надо переименовать и это только первый этап.

Всего записей: 226 | Зарегистр. 24-08-2005 | Отправлено: 08:31 26-10-2006
Sk1f



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Bugriy, это не изврат. А поможет тебе более централизованно управлять компьютерами в сети.  
 

Всего записей: 198 | Зарегистр. 04-04-2006 | Отправлено: 09:16 26-10-2006
tedhome

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нужна помощь.
Задача стоит в перемещении (копировании) файла с одного компьютера на другой по локалке, но без использования bat файлов.
 
Есть код при копировании локально (из папки в папку) все ok, но по сети не копируется.
 
On Error Resume Next
Set objService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\CIMV2")
If Err.Number <> 0 Then
    WScript.Echo Err.Number & ": " & Err.Description
    WScript.Quit
End If
Set colFolders = objService.ExecQuery("SELECT * FROM  Win32_Directory WHERE Name = 'c:\\test\\info.txt'")
For Each objFolder In colFolders
    objFolder.Copy "\\192.168.10.12\c$"
Next
 
Как победить эту штуку?
 
Пробовал и через  
 
Set fso = CreateObject("Scripting.FileSystemObject")
FSO.CopyFile "info.txt", "\\192.168.10.12\c$"
 
возникает ошибка Permission denied

Всего записей: 23 | Зарегистр. 01-09-2006 | Отправлено: 11:15 26-10-2006
urel

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Bugriy
как ты уже заметил - компьютеры у тебя не все время включены, так  
tedhome
для доступа на административные шары нужно иметь права администратора на удаленной системе. те логин пароль пользователя выполняющего скрипт = логин пароль пользователя, члена группы локальных администраторов на удаленной системе, причем для XP/2003 по умолчанию такой пароль не должен быть пустым.

Всего записей: 292 | Зарегистр. 16-09-2004 | Отправлено: 12:36 26-10-2006
isem



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

Цитата:
FSO.CopyFile "info.txt", "\\192.168.10.12\c$"

 
попробуй FSO.CopyFile "info.txt", "\\192.168.10.12\c$ adminpassword /user:admin"

Всего записей: 81 | Зарегистр. 22-07-2005 | Отправлено: 12:48 26-10-2006
tedhome

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
права на административные шары есть только доменого администратора. Нужен именно локальный? Хорошо локальные администратора сделаем. А что нужно в скрипт добавить чтобы он заработал? Или его необходимо под правами локального администратора запускать?
 
Добавлено:
попробовал в качестве логина использовать домменного администратора
FSO.CopyFile "info.txt", "\\192.168.10.12\c$ adminpassword /user:tedhome@domain.com"
В результате Path not found.

Всего записей: 23 | Зарегистр. 01-09-2006 | Отправлено: 12:52 26-10-2006
Bugriy



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Пишу скрипт для переименования компьютера на js.
 
Затык на строке, которая непосредственно переименование осуществляет.
 
rc = objWMIComputerSystem.Rename(strNewComputer,strDomainPasswd,strDomainUser);
 
Ошибка: Недопустимые параметры метода.
 
На MSDN про метод rename пишут вот что:
 
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/rename_method_in_class_win32_computersystem.asp
 
В чём ошибка?
 
 
// This code renames a computer in AD and on the host itself.
// ------ SCRIPT CONFIGURATION ------
strComputer     = "old_name";
strNewComputer  = "new_name";    
strDomainUser   = "admin@domain.ru";      
strDomainPasswd = "pwd";
 
objWMIComputerSystem=GetObject("winmgmts://"+strComputer+"/root/cimv2:Win32_ComputerSystem");
 
 
rc = objWMIComputerSystem.Rename(strNewComputer,strDomainPasswd,strDomainUser);
if (rc != 0)
    {WScript.Echo ("Rename failed with error: " + rc)};
else
    {WScript.Echo ("Successfully renamed " + strComputer + " to " + strNewComputer)};

Всего записей: 226 | Зарегистр. 24-08-2005 | Отправлено: 13:06 26-10-2006
urel

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
tedhome
ещебы
domain admins при введении компьютера в домен заводяться вгрупу локальных админов
все пермишины по умолчанию настроены именно на локальные группы.
только не  
 FSO.CopyFile "info.txt", "\\192.168.10.12\c$"
а
 FSO.CopyFile "info.txt", "\\192.168.10.12\c$\"
 
 
Добавлено:
Bugriy
Нужно прменять к таким обьектам, как я понимаю,  
objWMIService.ExecQuery("Select * from Win32_ComputerSystem")  
в примере МСДНа
bjWMIService.InstancesOf("Win32_ComputerSystem")
наверно такойже запрос

Всего записей: 292 | Зарегистр. 16-09-2004 | Отправлено: 13:19 26-10-2006 | Исправлено: urel, 14:18 26-10-2006
tedhome

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ok спасибо. Огромное!  сабака была зарыта в отсутствии \. Спасибо!

Всего записей: 23 | Зарегистр. 01-09-2006 | Отправлено: 13:33 26-10-2006
   

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