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

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

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

Цитата:
 
  DLL Requires Activeds.dll.    
IID IID_IADsCollection is defined as 72B945E0-253B-11CF-A988-00AA006BC149.  
   
Добавлено:  
и нада ск всего войти сначало в домен

 
Конечно всему перечисленному машинка соответсвует. Все в домене.
Однако ошибка вылезает.
Причем, аналогичное действие с Sessions проходит на ура.
 
Может кто-то подскажет как правильно закрыть открытые файлы по сети на определенной машине. Именно файлы, а не сессии пользователей.

Всего записей: 10 | Зарегистр. 13-02-2006 | Отправлено: 10:00 29-08-2007
Teo



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

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

ты забыл добавить, ИМХО
если ты мне скажешь, как проще сделать смену паролей людьми, которые сидят на ноутах и с ними же ездят в командировки, при этом не будучи введенными в домен (а зачем? плодить профили?), то я скажу - да, изврат полный
 

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

это не решение, а костыль...
а если я удаленных клиентов к ВПН подключать буду?
че, и пусть долбятся на шары по полдня?

Цитата:
пример подкл к  серверу:  

этот пример, я взял оттуда же, откуда и ты
и он не работает...
тот кусок, что у меня - с msdn

Всего записей: 737 | Зарегистр. 21-04-2003 | Отправлено: 10:58 29-08-2007
YNY

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

Цитата:
jeki54

 
Чтобы просмотреть сведения о совместно используемых файлах, введите:
 
net file
 
Чтобы закрыть файл под номером 1, введите:
 
net file 1 /close
 
так порще и быстрей а через WMI у меня пишет ошибку 80004001 - (
 
Добавлено:
For Teo :::
во первых если нада чтоб пользователи меняли свой пароль (для логона на комп или в домен)- то есть соотв политика паролей (и не тока в домене), во вторых на конкретный вопрос есть конкретный ответ, а на не точный вопрос - соответствующий ему !
 
Тот пример, что я привел, не совсем так выглядит как у тебя и ты должен был это увиДетЬ !-)
 
Добавлено:
+ jeki54 в упр компом пишеть что файл не открыт но окна не закрывает, возм прийдется использовать что-то для закрытия файла на лок машине (там где был открыт)
 
Добавлено:
см в хелпе по винде + посмотри Net session связь с файлом мона полностью заблокировать если не тока сессию закрыть но и если на вр изменений откл шару

Всего записей: 476 | Зарегистр. 18-05-2006 | Отправлено: 12:45 29-08-2007
ali1977



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
подскажите пжалста где у нас на форуме можно найти скрипт (если он был - искал в батниках, ниче не нашел) чтоб настоить его так чтоб он каждый день определенный файл копировал по сети с другого компа и прожигал его на болванку на моем компьютере

Всего записей: 606 | Зарегистр. 15-07-2006 | Отправлено: 21:36 29-08-2007
jeki54

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

Цитата:
Чтобы закрыть файл под номером 1, введите:  
net file 1 /close  

А как узнать номер этого файла?
 

Цитата:
в упр компом пишеть что файл не открыт но окна не закрывает

Файлы нормально закрываются из оснастки.
Проблема в том, что не работает метод Remove при удалении из коллекции resources, из коллекции sessions все работает великолепно.

Всего записей: 10 | Зарегистр. 13-02-2006 | Отправлено: 06:27 30-08-2007
YNY

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

Цитата:
А как узнать номер этого файла?  
 
введи  в коммандной строке net file - и ты увидешь все что нада а если будешь пользоваться net session то еще больше увидешь, возм не работает для файлов т.к. закрытие сессии и так разрывает связи с файлами  
 
Добавлено:
objResource.Name -- возвращает тот же номер ресурса что и перечисленные комманды
 
Добавлено:
[h1]http://www.microsoft.com/technet/scriptcenter/tools/scripto2.mspx[/h1]
[h2]ПРОЧИТАТЬ ВСЕМ[/h2]

Всего записей: 476 | Зарегистр. 18-05-2006 | Отправлено: 07:47 30-08-2007
jeki54

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YNY
 
Сделал удаление нужных блокировок через дерганье "net file /close", но это хоть работает:
 
ComputerName = "."
Set FileService = GetObject ("WinNT://" & ComputerName & "/LanmanServer")
Set Collection = FileService.Resources
For Each Resource In Collection
         resourcepath = LCase (Resource.Path)
        If  InStr (resourcepath, "с:\shares") <> 0 Then
                resname = Resource.Name
                Set WshShell = WScript.CreateObject("WScript.Shell")
                Set objScriptExec = WshShell.Exec("net file " & resname & " /close")
        End If
Next
 
Теперь заблокированные ресурсы на сетевой папке разблокируются и файлы можно обновлять.

Всего записей: 10 | Зарегистр. 13-02-2006 | Отправлено: 15:54 30-08-2007
YNY

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

Цитата:
jeki54
рад за тебя, но еслиб ты пользоваля net session то тебе хватило бы только ее без всякого WMI

Всего записей: 476 | Зарегистр. 18-05-2006 | Отправлено: 06:26 31-08-2007
jeki54

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YNY
 
Этот скриптик - небольшой кусочек большого скрипта, который занимается бекапом и т.п. Так что не проще
Но за наводку спасибо, в сторону cmd посмотреть мысли не было.

Всего записей: 10 | Зарегистр. 13-02-2006 | Отправлено: 07:48 31-08-2007
north_crow

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
коллеги!
прошо совета...
есть вот такой скрипт которые добавляет коментарий в свойство компа. он ессно работает только из под адмниских прав

Код:
 
'==========================================================================
'
' Изменение коментария в свойствах компьюьера в соответсвии с доменным именем
'
'==========================================================================
 
' Определяем контекст пользователя в АД
Set WSHNetwork = CreateObject("WScript.Network")
On Error Resume Next
Path = WSHNetwork.UserName
Set objSysInfo = CreateObject("ADSystemInfo")
strUserDN = objSysInfo.UserName
Set objUser = GetObject("LDAP://" & strUserDN)
 
' Остановка службы сервер для внесения данных о пользователе
Set objWMIService = GetObject("winmgmts:")
Set colSoftware = objWMIService.ExecQuery ("Select * FROM Win32_Service WHERE Name ='Lanmanserver'" )
For Each objSoftware in colSoftware
objSoftware.StopService()
Next
 
' Внесение данных о пользователе в свойcтва компьютера
Set WSHShell = WScript.CreateObject("WScript.Shell")
Set WshNetwork = CreateObject("WScript.Network")
WSHShell.RegWrite "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters\srvcomment",  objUser.DisplayName
 
' Перезапуск службы сервер
Set objWMIService = GetObject("winmgmts:")
Set colSoftware = objWMIService.ExecQuery ("Select * FROM Win32_Service WHERE Name ='Lanmanserver'" )
For Each objSoftware in colSoftware
objSoftware.StartService()
Next
 

 
у меня есть программка написаная в AutoIT и скомпилиная в ехе которая запускает скрипты с админскими правами

Код:
 
; Set the RunAs parameters to use local adminstrator account
RunAsSet("admin user", "domen", "password")
 
; Run registry editor as admin
$start_line = "wscript " & $CmdLine[1]
Run($start_line)
 
; Reset user's permissions
RunAsSet()
 

она работает замечательно на всех остальных скриптах которые требуют админские права - но почемуто именно скрипт для записи коментария не отрабатывает

Всего записей: 172 | Зарегистр. 04-12-2002 | Отправлено: 09:38 31-08-2007 | Исправлено: north_crow, 09:39 31-08-2007
alecsandrb

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

Всего записей: 36 | Зарегистр. 03-09-2003 | Отправлено: 09:47 31-08-2007
north_crow

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
alecsandrb
т.е. если я в ГПО сначало поставлю скрипт на измение пароля на локального админа, а потом за ним скрипт на изменение коментария, но запущу его не от имени домменой записи а от имени локального админа - то коментарий запишется?

Всего записей: 172 | Зарегистр. 04-12-2002 | Отправлено: 10:05 31-08-2007
alecsandrb

Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
north_crow
 
Сорри запутал немного похоже тебя и себя.
Все работает так:
  -  разрешаешь в ГПО изменение реестра доменному пользователю
    (после этого твой скрипт будет работать на локальной машине  
     кроме перезапуска служб)
  -  скриптом AutoIT под учеткой доменного админа перезапускаешь службу  Lanmanserver, читаешь из реестра запись и записываешь ее в AD (так работает у меня для того чтобы хранить одинаковое описание в АД и на ПК).
 
Если я правильно тебя понял то тебе достаточно в ГПО разрешить изменение ветки реестра, запускать твой скрипт, и потом перезапускать службу под доменным или локальным админом.

Всего записей: 36 | Зарегистр. 03-09-2003 | Отправлено: 11:27 31-08-2007
YNY

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
north_crow
я не совсем понял  накой ты объявляешь Set WshNetwork = CreateObject("WScript.Network")  елси потом никак не используешь?
попробуй записать во все ControlSet
 
Добавлено:
alecsandrb вообще-то приведенный north_crow скрипт читает из АД и пишет в локальный реестр, т.е. делает все, что твой, но наоборот  
 
 
 
 
Добавлено:
north_crow
 
 WSHShell.RegWrite .... у меня ваще никуда ничего не пишет, на стр. 13 или рядом я оставлял пример того как читать и писать в реестр на WMI
 
 
Добавлено:
изиняюсь -- пишет просто не разкомментировал нужную строку )))
 
Добавлено:
Ыстина На локальном компе значение в реестре меняется как надо

Всего записей: 476 | Зарегистр. 18-05-2006 | Отправлено: 11:34 31-08-2007
Rotorina



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

Код:
 
echo GET /announce.php?passkey=12&info_hash=%cbe5&peer_id=- >>1.txt
 

Как перенести в 1.txt символ &?
Пытался его заменять на :038 или двойное :038:038, в файл 1.txt впихивает этот :038, вместо нужного &.

Всего записей: 109 | Зарегистр. 03-08-2007 | Отправлено: 12:50 31-08-2007 | Исправлено: Rotorina, 12:51 31-08-2007
Etalon

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

Цитата:
Как перенести в 1.txt символ &?  

^&

Всего записей: 306 | Зарегистр. 03-02-2006 | Отправлено: 13:50 31-08-2007
Rotorina



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

Всего записей: 109 | Зарегистр. 03-08-2007 | Отправлено: 14:30 31-08-2007 | Исправлено: Rotorina, 16:19 31-08-2007
VPavlenko

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день!
Имеется сеть на 150 компьютеров с одним контроллером домена под
Win2003.
Вопрос такой: можно ли с помощью скрипта или .bat - файла отслеживать
и записывать  например, в текстовый файл информацию о входе-выходе
пользователя в домен(дату-время + имя пользователя + ip-адрес
компьютера).  Желательно с примером скрипта (.bat - файла) или ссылки
на примеры. Буду очень признателен за информацию!!!

Всего записей: 3 | Зарегистр. 29-08-2007 | Отправлено: 18:25 31-08-2007
VirwolfLEOne

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
VPavlenko  
date /t >> userlog.txt
time /t >> userlog.txt
echo %computername% >> userlog.txt
echo %username% >> userlog.txt
echo -----------------
 
userlog расположи на ранее созданой шаре(скрытой к примеру) сетевой доступ юзверя делаешь полным, разрешения только на запись к примеру.
 
Скрипт засовываешь в политику домена (чтоб срабатывал при входе пользователя).
Сам пользуюсь, очень удобно.

Всего записей: 33 | Зарегистр. 28-08-2007 | Отправлено: 18:43 31-08-2007
gap5



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
VPavlenko
Вот мой небольшой vbs скриптец, запускается с параметрами on & off соответственно и пишет строчку в файл "\\server.net\Auth_Logs\Месяц.Год\Число.Месяц.txt"
 
Но иногда бывают случаи, когда пропускаются записи (например записи о логоне юзера нет, а запись о логоффе есть), видимо из-за невозможности одновременного доступа к файлу, или из-за кэширования реквизитов для входа, хотя в этом случае скрипт все равно должен выполняться...
 

Код:
on error resume next
wYYYY = DatePart("YYYY" , Now)
wMM = DatePart("M" , Now)
If Len(wMM) = 1 Then
   wMM = "0" & wMM
End If
wHH = DatePart("h", Now)
If Len(wHH) = 1 Then
   wHH = "0" & wHH
End If
wNN = DatePart("n", Now)
If Len(wNN) = 1 Then
   wNN = "0" & wNN
End If
wSS = DatePart("s", Now)
If Len(wSS) = 1 Then
   wSS = "0" & wSS
End If
Curtime = wHH & ":" & wNN & ":" &wSS
Set WshShell = CreateObject("WScript.Shell")
CompName = WshShell.ExpandEnvironmentStrings("%computername%")
UserName = WshShell.ExpandEnvironmentStrings("%username%")
Curdate = (FormatDateTime(date(),vbgeneraldate))
Dim objFSO, objFolder, objShell, objTextFile, objFile
Dim strDirectory, strFile, strText
strDirectory = "\\server.net\Auth_Logs\"
strMonthDirectory = (wYYYY &"."& wMM)
strFile = ("\auth-" & curdate & ".log")
strTextOFF = ("LOGOFF |  " & Curdate & " at " & Curtime & "  |  " & Compname & vbTab &"-> "& username)
strTextON  = ("LOGON  |  " & Curdate & " at " & Curtime & "  |  " & Compname & vbTab &"<- "& username)
WTODO = Wscript.Arguments.Item(0) 'cmd argument
 
' Create the File System Object
Set objFSO = CreateObject("Scripting.FileSystemObject")
 
' Check that the strDirectory folder exists
If not objFSO.FolderExists(strDirectory) Then
    WScript.Quit
End if
If not objFSO.FolderExists(strDirectory & strMonthDirectory) Then
   Set objFolder = objFSO.CreateFolder(strDirectory & strMonthDirectory)
End if
 
If not objFSO.FileExists(strDirectory & strMonthDirectory & strFile) Then
   Set objFile = objFSO.CreateTextFile(strDirectory & strMonthDirectory & strFile)
End If  
 
set objFile = nothing
set objFolder = nothing
Const ForAppending = 8
 
Set objTextFile = objFSO.OpenTextFile _
(strDirectory & strMonthDirectory & strFile, ForAppending, True)
 
IF WTODO = "off" then
objTextFile.WriteLine(strTextOFF)
Elseif wtodo = "on" then
objTextFile.WriteLine(strTextON)
End if
 
objTextFile.Close
 
WScript.Quit

Всего записей: 1033 | Зарегистр. 30-05-2006 | Отправлено: 18:43 31-08-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