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

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

 

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

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
И еще вопросик можно ли средствами VBS закрывать приложение корректно, а не убивать?

Всего записей: 98 | Зарегистр. 14-08-2007 | Отправлено: 15:31 04-03-2009
el_verdugo



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

Код:
Set oWMI = GetObject("winmgmts:\\.\root\cimv2")
Set oSelQ = oWMI.ExecQuery("SELECT ProcessID FROM Win32_Process WHERE Caption='notepad.exe'")
Set sh = CreateObject("WScript.Shell")
 
For Each oItem In oSelQ
PID = oItem.ProcessID
Proga = sh.AppActivate(PID)
WScript.Sleep(100)
sh.SendKeys("%{f4}")
' следующие 4 строки кода нужны для закрытия без сохранения
' в случае, если они были, иначе последует ввод текста в
' какое-либо окно или запуск чего-либо
WScript.Sleep(100)
sh.SendKeys("{RIGHT}")
WScript.Sleep(100)
sh.SendKeys("{ENTER}")
Next
 
Set oSelQ = Nothing
Set oWMI = Nothing
Set sh = Nothing
 

Вместо Caption='notepad.exe' ставишь название своего процесса и с помощью комбинаций SendKeys и Sleep подгоняешь под свое приложение выполняемые действия...
Если сначала нужно запустить прогу, то можно сделать так

Код:
notepad = sh.Exec("notepad.exe")
WScript.Sleep(100)
sh.Appactivate(notepad.ProcessID)

Всего записей: 121 | Зарегистр. 10-02-2006 | Отправлено: 04:26 05-03-2009
graydevil



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Господа, а как переименовать текущего залогиненого юзера, хочу получить такой cmd -  
 
1. переименовываем текущего в "myuser"  
2. net user "myuser" "pass" /add /passwordchg:no /passwordreq:yes  
 

Всего записей: 59 | Зарегистр. 14-04-2006 | Отправлено: 08:44 05-03-2009
EnMan



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Приветствую присутствующих. В общем была такая собственно нетривиальная (как мне казалось) задача. Раздать пользователям домена файл обмена личной информацией (сертификат). Т.е. импортировать его в личное хранилище сертификатов. Для работы скрипта, выполняющего импорт нужна зарегистрированная в системе библиотека capicom.dll. Было в муках сваяно следующее:

Код:
Set objShell = WScript.CreateObject("WScript.Shell")
 
USERPROFILE = objShell.ExpandEnvironmentStrings("%USERPROFILE%" & "\")
 
strResult = copyFiles("\\dc\Cert\capicom.dll", USERPROFILE ,"True")
strResult = copyFiles("\\dc\Cert\CStore.vbs", USERPROFILE ,"True")
strResult = copyFiles("\\dc\Cert\Managers\client.p12", USERPROFILE ,"True")
strResult = copyFiles("\\dc\Cert\ImportCert.cmd", USERPROFILE ,"True")
 
'MsgBox ("regsvr32.exe /s """&USERPROFILE&"CAPICOM.dll""")
objShell.Run "regsvr32.exe /s """&USERPROFILE&"CAPICOM.dll"""
 
'MsgBox (  """"&USERPROFILE&"ImportCert.cmd""" )
objShell.Run """"&USERPROFILE&"ImportCert.cmd"""
 
Function copyFiles(strSrc,strDst,strOverwriteExisting)
'  Const OverwriteExisting = True
 Set objFSO = CreateObject("Scripting.FileSystemObject")
 objFSO.CopyFile strSrc , strDst , strOverwriteExisting
End Function
 

 
И вроде как оно работает. Но, естественно, только из под админской учетки. Пользователь не имеет прав на регистрацию библиотеки. И т.к. родной RunAs не имеет возможности работать с комстроки с логином\паролем решил заюзать [HTML=http://www.moernaut.com/default.aspx?item=lsrunas]LSRunAs[/HTML]. Бьюсь вторые сутки, что только не делал, не могу вместо этой строки  

Код:
objShell.Run "regsvr32.exe /s """&USERPROFILE&"CAPICOM.dll"""

написать другую,
Код:
чтобы regsvr32 /s "С:\Documents and Settings\ПОЛЬЗОВАТЕЛЬ\capicom.dll"  
запустилась от пользователя с админскими правами
 
Синтакисис LSRunAs (пример)

Код:
lsrunas /user:administrator /password:s3cr3tp@ssw0rd /domain:Mydomain / сommand:notepad.exe /runpath:c:\

Ну с notepad то я запустить могу. Рботает.
 
Пишу:

Код:
lsrunas /user:administrator /password:s3cr3tp@ssw0rd /domain:Mydomain / сommand:"regsvr32.exe /s """&USERPROFILE&"CAPICOM.dll""" /runpath:c:\
сасу сасангу
 
Где то у меня ошибка. Где не пойму. Т.к. это, собственно, первый скрипт мой на vbs. Обложился хелпами - но смотрю в книгу, вижу фигу, что называется.
 

Всего записей: 417 | Зарегистр. 30-10-2004 | Отправлено: 09:03 05-03-2009
graydevil



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

Всего записей: 59 | Зарегистр. 14-04-2006 | Отправлено: 10:23 05-03-2009 | Исправлено: graydevil, 10:25 05-03-2009
yazzi

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
el_verdugo
Не особо работает. Закрывает текущее окно, если нет такого то выключает комп. Мне надо закрыть Outlook, а он висит в трее .  
Еще идеи
 
Добавлено:
Возник еще один вопросик  

Код:
 
intRes = objReg.EnumKey(HKEY_CURRENT_USER, strKey, sNames)
If intRes <> 0 Then  
WScript.Echo intRes & ": не удалось прочитать подразделы ""HKEY_CURRENT_USER\" & strKey & """"
end if  
 

выдает что  intres = 1 или 2. Что  это за ошибки?

Всего записей: 98 | Зарегистр. 14-08-2007 | Отправлено: 14:01 05-03-2009 | Исправлено: yazzi, 16:23 05-03-2009
el_verdugo



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

Код:
Set oWMI = GetObject("winmgmts:\\.\root\cimv2")
Set oSelQ = oWMI.ExecQuery("SELECT ProcessID FROM Win32_Process WHERE Caption='notepad.exe'")
 
' проверка количества процессов и выход, если 0
If oSelQ.Count = 0 Then WScript.Quit
 
Set sh = CreateObject("WScript.Shell")
 
For Each oItem In oSelQ
PID = oItem.ProcessID
Proga = sh.AppActivate(PID)
If Proga Then '  выполняем действия, если окно активировалось (не в трее)
WScript.Sleep(100)
sh.SendKeys("%{F4}")
Else ' приложение в трее, убиваем (или еще чего делаем...)
oItem.Terminate
End If
Next
 

 
graydevil
Эта команда пишет в реестр имя,домен, пароль
Находим ветку
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
Параметр AutoAdminLogon устанавливаем в 1 (если нету - создать, тип - строковой)
Параметр DefaultUserName - имя пользователя (если нету - создать, тип - строковой)
Параметр DefaultDomainName - домен, если присутствует (тип - строковой)
Параметр DefaultPassword - пароль для входа (тип-строковой)
Все это можно оформить скриптом или использовать команду
 
EnMan
в командной строке введи

Код:
wmic /node:"c:\complist.txt" /user:"username" /password:"userpassword" path Win32_Process CALL Create CommandLine="calc.exe" /nointeractive

если в пароле есть спецсимволы - запятая, точка (может быть другие), то параметр password лучше опустить и ввести пароль вручную, ну и конечно вместо "calc.exe" пишешь свой скрипт
PS все будет запущено в невидимом для пользователя режиме (nointeractive), если это конечно, не текущий пользователь...
 
Добавлено:
graydevil

Цитата:
Господа, а как переименовать текущего залогиненого юзера, хочу получить такой cmd -    
   
1. переименовываем текущего в "myuser"  
2. net user "myuser" "pass" /add /passwordchg:no /passwordreq:yes  

 
 
первой командой ты хочешь поменять логин текущего пользователя, а второй добавить ТАКОГО ЖЕ пользователя?
скрипт, который меняет логин пользователя и ставит галочки  passwordchg и passwordreq

Код:
Set sh = CreateObject("WScript.Shell")
ActiveUser = sh.ExpandEnvironmentStrings("%username%")
Set sh = Nothing
Set oWMI = GetObject("winmgmts:\\.\root\cimv2")
Set oUsers = oWMI.InstancesOf("Win32_UserAccount")
 
For Each oUser In oUsers
 
If oUser.Name = ActiveUser Then
oUser.Rename("myuser")
oUser.PasswordChangeable=False
oUser.PasswordRequired=True
End If
 
Next
 
Set oUsers = Nothing
SetoWMI = Nothing
 

Всего записей: 121 | Зарегистр. 10-02-2006 | Отправлено: 05:01 06-03-2009
YNY

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

Цитата:
yazzi WScript.Echo intRes

вообще-то строка открывается и закрывается [ " ] проверяй количество кавычек
пример: "any word" & "any word"
 
 
Добавлено:

Цитата:
graydevil

из личного опыта могу сказать, что не всегда работает прямое ред реестра с приведенными ключами, надо еще вроде чего-то еще изменять )
 
Добавлено:

Цитата:
EnMan

если в полном имени файла есть пробелы, то либо это место, либо все должно быть в кавычках кроме *.dll и усе у вас запашет
 
Добавлено:
и мона пользователей сделать опытными и они сами смогут (эслив не обшибаюсь) сами установить сертификат

Всего записей: 476 | Зарегистр. 18-05-2006 | Отправлено: 06:55 06-03-2009
graydevil



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
el_verdugo
 
Забыл /add убрать.
 
Еще стороняя тулза так делает -  
 
chcp 1251
renuser %USERNAME% "newuser"
 
Добавлено:
А можно ли с батника vbs скрипт пускать?  
 
типа идет батник
.
.
.
кусок vbs скрипта
 
 
Или надо код в батнике копировать в vbs файл ( как это сделать?) и вызывать его потом?

Всего записей: 59 | Зарегистр. 14-04-2006 | Отправлено: 07:50 06-03-2009 | Исправлено: graydevil, 07:56 06-03-2009
YNY

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

Цитата:
graydevil

Цитата:
А можно ли с батника vbs скрипт пускать?  

Цитата:
graydevil

а мож тебе шапку по внимательней почитать???

Всего записей: 476 | Зарегистр. 18-05-2006 | Отправлено: 09:41 06-03-2009
yazzi

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
el_verdugo
Спасибо. Придется убивать
YNY
Да это понятно. Что это за ошибки при чтении регистра под номерами 1 и 2.

Всего записей: 98 | Зарегистр. 14-08-2007 | Отправлено: 09:41 06-03-2009 | Исправлено: yazzi, 09:44 06-03-2009
YNY

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
весь скрипт в тэге  MORE приведи пжалста для начала
 
Добавлено:

Цитата:
yazzi ошибки при чтении регистра  

 
пример чтения из реестра блин

Всего записей: 476 | Зарегистр. 18-05-2006 | Отправлено: 09:48 06-03-2009
yazzi

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

Цитата:
 
In scripting or Visual Basic, the method returns an integer that is 0 (zero) if successful. If the function fails, the return value is a nonzero error code that you can look up in WbemErrorEnum
 

вот мне возвращает 1 и 2 на разных удаленных компьютерах.Как я понял их можно посмотреть в объекте WbemErrorEnum, но как это сделать.

Всего записей: 98 | Зарегистр. 14-08-2007 | Отправлено: 14:32 06-03-2009
EnMan



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ребята, нет ни у кого скрипта, котрый бы посчитал кол-во перезагрузок энного хоста за энный промежуток времени? Нигде не могу найти. А предыдущий опыть написания скрипта был несколько неудачен

Всего записей: 417 | Зарегистр. 30-10-2004 | Отправлено: 21:53 07-03-2009
el_verdugo



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

Цитата:
Ребята, нет ни у кого скрипта, котрый бы посчитал кол-во перезагрузок энного хоста за энный промежуток времени? Нигде не могу найти.

Хоста - локального компьютера(компьютера домена)? Если да, то ставь скрипт на выключение компьютера(в политиках присутствует) и пиши куда-нибудь в лог дату/время(имя компа, если надо), а потом другим скриптом обрабатывай инфу...

Всего записей: 121 | Зарегистр. 10-02-2006 | Отправлено: 07:36 11-03-2009
klimusu



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Создал скрипт для выключение компьютеров
 
shutdown -s -m \\192.168.1.1 -t 300 -c "Shutdown"
shutdown -s -m \\192.168.1.2 -t 300 -c "Shutdown"
shutdown -s -m \\192.168.1.3 -t 300 -c "Shutdown"
 
Можно как-то дать возможность отменить выключение компьютера, если пользователь работает за этим компьютером?
 
Хочется после выполнения скрипта отправить письмо, в котором список выключенных компьютеров. Т.е. разделить те, которые уже были выключены и остальные.

Всего записей: 931 | Зарегистр. 23-01-2006 | Отправлено: 08:07 11-03-2009
el_verdugo



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

Цитата:
Можно как-то дать возможность отменить выключение компьютера, если пользователь работает за этим компьютером?

Можно с помощью команды
Код:
shutdown -a
, только комп работать после этого практически не будет...

Всего записей: 121 | Зарегистр. 10-02-2006 | Отправлено: 08:12 11-03-2009 | Исправлено: el_verdugo, 08:55 11-03-2009
trobadore



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

Всего записей: 20 | Зарегистр. 20-04-2006 | Отправлено: 11:18 11-03-2009
Real Root



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

Цитата:
Можно с помощью команды  

Код:
shutdown -a  

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

Нормально все будет работать, это штатная отмена штатного действия. А вот если вы svchost грохните, то winlogon инициализирует shutdown -r - и во тогда отмена возможна, но как после этого будет комп работать уже не известно.

Всего записей: 1037 | Зарегистр. 13-04-2006 | Отправлено: 11:33 11-03-2009
klimusu



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

Цитата:
shutdown -a  

 
заставить всех пользователей выучить эту команду? есть проще способ, может как-то можно сделать кнопку "отмена"  !?

Всего записей: 931 | Зарегистр. 23-01-2006 | Отправлено: 18:46 11-03-2009
   

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