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

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

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте всем
Помогите кто чем может или пошлите в нужном направлении
Сервер Win2003, батник из двух команд xcopy копирует две папки, запускается шедулером.
В результате отрабатывает только первая команда. В шедулере код завершения 1.
Причем время завершения задания в шедулере в среднем 30 сек, хотя папка копируется 10 мин.
Тот же батник в терминале отрабатывает на ура.
Подскажите пожалуйста где порыться....

Всего записей: 5 | Зарегистр. 18-11-2003 | Отправлено: 06:23 24-10-2008
olezi

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
 Как автоматизировать среднесуточную (+6 сек.) погрешность системных часов компьютера?

Всего записей: 33 | Зарегистр. 07-04-2006 | Отправлено: 20:45 24-10-2008
Real Root



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
olezi
То ли лыжи не едут, то ли я ....
Что значит "автоматизировать погрешность"? Я даже по-пьяне такое не выдумаю
Если нужно раз в сутки передвигать часы на 6 сек вперед, то с помощью большого скрипта, который так неохота писать самому, это сделать вполне легко. Ну а лучше, воспользоваться синхронизацией часов с интернет, помоему можно даже такой локальный сервак поднять. Или легче выяснить причину отстования/убегания системных часов, например игрухи пошифрованные стариком.

Всего записей: 1037 | Зарегистр. 13-04-2006 | Отправлено: 23:17 24-10-2008
cluster

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Не подскажите способов вывода в файл открытых exe-файлов и кем они открыты? Аналог - оснастка "Управление компьютером"

Всего записей: 1720 | Зарегистр. 21-11-2003 | Отправлено: 14:02 25-10-2008
Vby



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
cluster
net file > c:\1.txt

Всего записей: 781 | Зарегистр. 16-09-2004 | Отправлено: 15:28 25-10-2008
Feeer

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вопрос..
 
var objReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\\\.\\root\\default:StdRegProv");
 t="";
var n = objReg.GetStringValue(0x80000002, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion", "qqq",t);
 
WScript.Echo(t);
WScript.Echo(n);
 
Почему WScript.Echo(t) пустая строка а не значение параметра реестра? где ошибка ?
WScript.Echo(n) - выдает 0, т.е. все выполняется...значение qqq не пустое.
Заранее спасибо !!!

Всего записей: 9 | Зарегистр. 25-08-2008 | Отправлено: 16:28 28-10-2008
Refugee

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
У GetStringValue последний параметр передается by reference, так что её в JScript использовать её непросто:
 
var regprov = GetObject("winmgmts:!\\\\.\\root\\default:StdRegProv");  
var method = regprov.Methods_.Item("GetStringValue");
var inparams = method.InParameters.SpawnInstance_();
inparams.hDefKey = 0x80000002;
inparams.sSubKeyName = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion";
inparams.sValueName = "qqq";
var outparams = regprov.ExecMethod_(method.Name, inparams);
if (outparams.ReturnValue == 0)
    WScript.Echo("Value = " + outparams.sValue);

Всего записей: 513 | Зарегистр. 31-03-2004 | Отправлено: 21:20 28-10-2008
gbcfkf



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

Цитата:
а какие аттрибуты тебе ещё нужны? перечисли. завтра попробую на работе. отпишусь.

Спасибо, уже не надо.
Видимо дело было в том, что другие атрибуты были в "плохом" формате  
например LastLogonTimeStamp представляет собой 64 битное число... чтоб его вывест надо использовать такую конструкцию:
....  
Set objUser = GetObject("LDAP://cn=" Вася Иванов,ou=tmp,ou=123,dc=domen,dc=ru")
Set objLastLogon = objUser.Get("lastLogontimestamp")
intLastLogonTime = objLastLogon.HighPart * (2^32) + objLastLogon.LowPart  
...
И вот уже после этого можно выводить переменную на экран
 
 
А вот еще насущный вопрос:
как скриптом двигать мышкой?
Нужно написать скрипт, чтобы после запуска он в бесконечном цикле двигал курсором мышки туда-сюда
Это возможно?

Всего записей: 702 | Зарегистр. 17-10-2006 | Отправлено: 04:07 29-10-2008 | Исправлено: gbcfkf, 04:10 29-10-2008
GTHack



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
приветствую коллеги!
 
подскажите плс как можно с комм.строки заполучить размер свободного места на логическом диске ?
 
идея в чем :  
 
всем юзерам цепляется диск L: с сервака (на сервере прописаны квоты)
в автологине запускается скрипт который контролирует
когда у юзера остается менее 30 мегабайт - выдает предупреждение
 
скрипт был и работал, но он был основан на утилитке diskfree.exe которую сожрал вирус
утилиту найти не могу
нужен аналог
 
заранее всем спасибо !

----------
Мой блог

Всего записей: 554 | Зарегистр. 03-03-2003 | Отправлено: 10:05 30-10-2008 | Исправлено: GTHack, 10:08 30-10-2008
zzxx1488

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
день добрый
интересует как можно ср-вами vbs получить дефолт гейт, который на данный момент используется
дело в том что у меня помимо лана еще 3 подключения к впн и все время гейты разные, т.е. route print выдает
0.0.0.0 0.0.0.0 10.16.0.25
0.0.0.0 0.0.0.0 192.168.56.1
0.0.0.0 0.0.0.0 171.16.31.14
 
также затрудняет ситуацию, что винда в разных местах на разных языках, т.е. англ,рус,нем и я пытался одно время сделать батник ищущий слово default gateway и соотв-но потом копирующий значение, но на нем и рус виндах это не прокатило
 
соот-но вопрос, как можно получить текущий гейт который исп-ся на данный момент
 
Добавлено:
впринципе нарыл такой скрипт, но он выдает все существующие гейты на компе, другое дело, меня интересует именно тот который показывает route print в графе default gateway на тот момент когда я запущу скрипт
 
 
On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
 & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colNicConfigs = objWMIService.ExecQuery _
 ("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True")
For Each objNicConfig In colNicConfigs
  If Not IsNull(objNicConfig.DefaultIPGateway) Then
    strDefaultIPGateway = Join(objNicConfig.DefaultIPGateway)
  End If
  WScript.Echo "    Default Gateways(s):            " & strDefaultIPGateway
Next
 

Всего записей: 62 | Зарегистр. 04-10-2008 | Отправлено: 14:44 30-10-2008
Smitis



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

Цитата:
подскажите плс как можно с комм.строки заполучить размер свободного места на логическом диске ?


Цитата:
скрипт был и работал, но он был основан на утилитке diskfree.exe которую сожрал вирус

DISKUSE.EXE у мелкософта


----------
Разум когда-нибудь победит

Всего записей: 3217 | Зарегистр. 09-02-2003 | Отправлено: 14:19 31-10-2008
Feeer

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Пытаюсь получить МАС адрес таким вот образом
 
MACAddress = "";
ServicesSet = GetObject("winmgmts:{impersonationLevel=impersonate}!\\\\.\\root\\cimv2");
Items = ServicesSet.ExecQuery("Select * From Win32_NetworkAdapter");
 var enumItems = new Enumerator(Items);  
 for (; !enumItems.atEnd(); enumItems.moveNext()) {  
     var objItem = enumItems.item();
     if(objItem.MACAddress){
     WScript.Echo(objItem.MACAddress); };
 }
 
MAC он конечно тоже выдает, но вместе с ним еще чего-то... как отсеять?
Заранее спасибо !
 
Добавлено:
Просьба переписать на JScript
 
<job id="Example">
<script language="VBScript">
 
Set Shell = CreateObject("Shell.Application")
'получение папки "Сетевое окружение"
Set objFolder = Shell.NameSpace("::{208D2C60-3AEA-1069-A2D7-08002B30309D}")
'получение папки "Вся сеть"
Set objFolder = objFolder.Items().Item("EntireNetwork").GetFolder
'получение папки "Microsoft Windows Network"
For Each objItem In objFolder.Items()
    If objItem.Name = "Microsoft Windows Network" Then
        Set objFolderNetwork = objItem.GetFolder
    End If
Next
 'перебор доменов и рабочих групп
 For Each objItem In objFolderNetwork.Items()
    If objItem.IsFolder Then
        Set objFolder = objItem.GetFolder
        'перебор компьютеров
       For Each objSubItem In objFolder.Items()
           ' WScript.Echo objSubItem.Name
       Next  
    End If
 Next
</script>
 
Заранее спасибо !!!

Всего записей: 9 | Зарегистр. 25-08-2008 | Отправлено: 10:09 01-11-2008
YNY

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

Цитата:
Feeer
Пытаюсь получить МАС адрес таким вот образом
сначало определись для какова адаптера или типа подключения теюе надо МАС, а затем подставь проверку в if(objItem.MACAddress and objItem.Name="CorrektConnektName")
 
Добавлено:
Или используй вот эту конструкцию с "Where NetConnectionID = " &"'Local Area Connection 2'", только учти, что в английской винде будет на англиском, а вот в русской на русском
шлепни по этой ссылке или наведи на вопрос за ней

Всего записей: 476 | Зарегистр. 18-05-2006 | Отправлено: 12:56 07-11-2008 | Исправлено: YNY, 13:01 07-11-2008
adSka



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Дравствуйте!
как на WSH проверить доступность папки на запись? (чтобы скрипт не вываливал ошибок при отсутствии записи)
.
щас делаю theShellObject.exec ("cmd /c echo test  > c:\\testdir\\testfile");
потом проверяю наличие theFileSystemObject.FileExists("c:\\testdir\\testfile")
или что-то типа того...
но для вменяемой работы, требуется вводить паузу WScript.sleep (500), что при проверке большого числа папок вызовет тормоза ацкие... по сему возник такой вопрос...

Всего записей: 130 | Зарегистр. 13-11-2006 | Отправлено: 04:51 09-11-2008 | Исправлено: adSka, 04:52 09-11-2008
YNY

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

Цитата:
как на WSH проверить доступность папки на запись?  

с помощью скриптов нереально без тормозов проверить большое количество каких-либо параметров!!!

Всего записей: 476 | Зарегистр. 18-05-2006 | Отправлено: 07:42 10-11-2008
demon1981



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

Всего записей: 189 | Зарегистр. 28-03-2007 | Отправлено: 14:27 10-11-2008
Liveofan

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

Код:
'**************************  
'*** AutorunDisabled ******  
'**************************  
Dim WSHShell  
Set WSHShell = wscript.CreateObject("wscript.Shell")  
'******************************************  
'**** Добавляем записи в реестр ***********  
'******************************************  
WSHShell.RegWrite "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Cdrom\AutoRun", "0", "REG_DWORD"  
 
WSHShell.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer\NoDriveTypeAutoRun", "255", "REG_DWORD"  
 
WSHShell.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\IniFileMapping\Autorun.inf\", "@SYS:DoesNotExist"  
 
WSHShell.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\CancelAutoplay\Files\*.*", ""  
 
'*************************************************  
'**** Удаление MountPoints2 из реестра ***********  
'*************************************************  
WSHShell.RegDelete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\"  
 
WSHShell.RegDelete "HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\"  
 
WSHShell.RegDelete "HKEY_USERS\S-1-5-18\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\"  
 
WSHShell.RegDelete "HKEY_USERS\S-1-5-20\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\"  
 
WSHShell.RegDelete "HKEY_USERS\S-1-5-21-2170445449-3629066266-18666223-4272\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\"  

 
Все замечательно работает, все необходимые записи добавляются в реестр, но вот при попытке удаления MountPoints2 из реестра, пишет, что данный раздел удалить невозможно, хотя я спокойно его могу удалить ручками. Подскажите, в чем может быть проблема? Как мне все-таки с помощью скрипта удалить MountPoints2 из реестра.

Всего записей: 118 | Зарегистр. 03-08-2007 | Отправлено: 09:35 12-11-2008
YNY

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

Цитата:
но вот при попытке удаления MountPoints2  

ну ты приколист, CURRENT_USER и какой-то из S-1-5-2*-21***** и есть ты в виде админа -- это раз,  возмона в профиль SYSTEM нет полного доступа. А ваще накой тебе удалять ключи в реестре? просто добаь в те где политики - нужные значения + с разрешениями помути, а т.к. виры обычно с админскими правами лазят, то .....

Всего записей: 476 | Зарегистр. 18-05-2006 | Отправлено: 11:27 12-11-2008
Liveofan

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

Цитата:
Через ключ MountPoints2 в реестре также существует возможность для системы обходить заданный запрет на автозапуск сьёмных носителей. Как с этим бороться? Полностью удалить ВСЕ ключи MountPoints2 которые вы находите в реестре (там могут уже быть заданы параметры по автозапуску для сьёмных устройств, которые система уже знает).  
  - форум ВирусИнфо
 
Если комп новый то без проблем вирусы туда уже не пролезут, если поставлю запрет, а если комп старый, то автозапуск может там уже сидеть, потому надо убить.  
Смысл мне добавлять политики и пути, если все это можно убить )  
И авторан полностью умрет на всем, если самому его не запустить...  
Мне как раз и нужно, чтобы если пользователь 2 раза щелкнет на открытие диска, чтобы он просто открылся, не обращая внимание на авторан.
 

Всего записей: 118 | Зарегистр. 03-08-2007 | Отправлено: 12:54 12-11-2008 | Исправлено: Liveofan, 13:00 12-11-2008
NIKZZZZ



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

Цитата:
Мне как раз и нужно, чтобы если пользователь 2 раза щелкнет на открытие диска, чтобы он просто открылся, не обращая внимание на авторан.  

 

Код:
Windows Registry Editor Version 5.00
 
;значения ключа "NoDriveTypeAutoRun"
;0x1 - отключить автозапуск на приводах неизвестных типов
;0x4 - отключить автозапуск сьемных устройств
;0x8 - отключить автозапуск НЕсьемных устройств
;0x10 - отключить автозапуск сетевых дисков
;0x20 - отключить автозапуск CD-приводов
;0x40 - отключить автозапуск RAM-дисков
;0x80 - отключить автозапуск на приводах неизвестных типов
;0xFF - отключить автозапуск вообще всех дисков.
 
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoDriveTypeAutoRun"=dword:000000ff

Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 14:29 12-11-2008
   

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