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

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

 

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



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Последний раз флуд развожу, больше не буду.
 
YNY
 
   Они соображают в своих программах и все, больше им ничего не надо. В них нет принтера по умолчанию, всегда нужно выбирать. Они выбирали принтер по счету (допустим первый), название ничего не говорит. А после появления Microsoft XPS Document Writer он становился вторым.
   Про Office XP не знаю, массово не использовали, массово начали ставить 2003, до этого использовали 2000. Так вот, при первоначальной установке 2003 SP2 или SP1 нет этого принтера, появляется только при установке обновлений.

Всего записей: 386 | Зарегистр. 29-08-2003 | Отправлено: 09:26 24-05-2007
Teo



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
есть WMI скрипт
при запуске получаю окошко такого содержания
http://img230.imageshack.us/img230/7532/wmisettxl0.png
 
при запуске в консоли получаю ошибку script.vbs(42,1) (null): Invalid Syntax
в строке 42 происходит такое
 
Set wmiServices  = GetObject ( _
    "winmgmts:{impersonationLevel=Impersonate}!//" _
    & strComputerName)
 
 
система XP Embedded
может, кто сталкивался с таким?

Всего записей: 737 | Зарегистр. 21-04-2003 | Отправлено: 15:26 24-05-2007
jONES1979



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Teo а в предыдущей строке что было?

Всего записей: 324 | Зарегистр. 20-05-2005 | Отправлено: 16:47 24-05-2007
Teo



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
jONES1979
 
вот скрипт полностью
фактически ничего
я так понимаю, что-то с WMI
но как узнать, что?

Всего записей: 737 | Зарегистр. 21-04-2003 | Отправлено: 17:47 24-05-2007
YNY

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
[q]jONES1979  
 
вот скрипт полностью[q]
при запуске твоего скрипта мне выдаются сообщения о том что у меня менее 2 разжелов хотя это не так) если откл проверку, то - сообщение о "несовпадении 4-м" -- в общем совсем не понятное.
у меня 2 диска, причем один разбит на 2 раздела.
   For Each wmiDiskDrive In wmiDiskDrives - сначала почему-то начинает с 1 и соотв прекрачает все т.к. на нем нет 2 разделов
 такой как вы говорите ошибки пока не видел
а ваще на кой вам это? только чтоб убедиться что у вас те диски что нада?
 
Добавлено:
возможно что c:\windows\system32\diskpart.exe выполняется токо под админом, такова кол-ва разделов не имею и протестировать неначем)
 
следующая строка повторяется в FUNCTION subCheckPartitionsAmount  и в FUNCTION subMainCheck (boolOk) -?
 
Set wmiServices  = GetObject ( _  
    "winmgmts:{impersonationLevel=Impersonate}!//" _  
    & strComputerName)  
 
Set wmiDiskDrives =  wmiServices.ExecQuery ( _  
    "SELECT * FROM Win32_DiskDrive")  

Всего записей: 476 | Зарегистр. 18-05-2006 | Отправлено: 08:17 28-05-2007
Sk1f



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Такая задача - excel файл, заполненный записями - имена фирм. Нужно перенести эти записи в БД. Все сделал кроме одного момента - ограничение на повторяющиеся имена фирм при считывании их с файла.
Как решить эту проблему?  

Всего записей: 198 | Зарегистр. 04-04-2006 | Отправлено: 12:24 28-05-2007 | Исправлено: Sk1f, 13:53 28-05-2007
Teo



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

Цитата:
а ваще на кой вам это? только чтоб убедиться что у вас те диски что нада?

есть промышленный комп и жёсткая схема подключения винтов
нужно проверить правильность.
 
 

Цитата:
возможно что c:\windows\system32\diskpart.exe выполняется токо под админом, такова кол-ва разделов не имею и протестировать неначем)  

я тестил под варей
 
да скрипт на самом деле работает
 
просто что-то с WMI
объект не создается

Всего записей: 737 | Зарегистр. 21-04-2003 | Отправлено: 11:33 30-05-2007
SpiKost



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Automize 7.32 Enterprise  
<del>




варез в этом разделе запрещен. /emx/

Всего записей: 164 | Зарегистр. 23-05-2006 | Отправлено: 11:30 31-05-2007 | Исправлено: emx, 15:44 31-05-2007
Sk1f



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Нужно сделать задержку(delay) в vbs-скрипте.  
Как?  

Всего записей: 198 | Зарегистр. 04-04-2006 | Отправлено: 14:50 31-05-2007
Teo



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

Всего записей: 737 | Зарегистр. 21-04-2003 | Отправлено: 19:09 31-05-2007
ali0

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

Цитата:
Такая задача - excel файл, заполненный записями - имена фирм. Нужно перенести эти записи в БД. Все сделал кроме одного момента - ограничение на повторяющиеся имена фирм при считывании их с файла.  
Как решить эту проблему?  

 
Можно средствами Эксела предварительно отсортировать по этому параметру и при переносе сравнивать текущую запись с предыдущей.

Всего записей: 21 | Зарегистр. 21-02-2007 | Отправлено: 15:14 02-06-2007
Sk1f



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Teo громадное спасибо. )))
Если бы раньше посмотрел, то мучений с программой было бы меньше.

Всего записей: 198 | Зарегистр. 04-04-2006 | Отправлено: 21:31 03-06-2007
uZver



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

Цитата:
ограничение на повторяющиеся имена фирм при считывании их с файла.

 

Цитата:
Можно средствами Эксела предварительно отсортировать по этому параметру  

данные - фильтр - расширенный фильтр - только уникальные записи.

Всего записей: 195 | Зарегистр. 10-10-2003 | Отправлено: 13:12 04-06-2007
hamet2000

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В скрипте использую команду назначение LPT1порта на сетевой принтер.
Подскажите, как сделать так чтобы при перезагрузке компа начначение порта запоминалось!
 
WshNetwork.AddPrinterConnection("LPT1:","\\Server1\Epson")
 
Добавлено:
Еще вопрос. Нужно каждую ночь выключать компьютеры пользователей домена определенной OU
помоему это не лутший вариант использование cmd в скрипте, особенно если много компов в OU  подскажите как дописать грамотно скрипт.
 Set WshShell = WScript.CreateObject("WScript.Shell")
 cmd = "shutdown -r -f -m \\"
   
Set objConnection = CreateObject("ADODB.Connection")  
Set objCommand =   CreateObject("ADODB.Command")  
objConnection.Provider = "ADsDSOObject"  
objConnection.Open "Active Directory Provider"  
Set objCOmmand.ActiveConnection = objConnection  
objCommand.CommandText = _  
      "Select Name, Location from 'LDAP://OU=Lima,DC=test,DC=ru' " _  
        & "where objectClass='computer'"  
objCommand.Properties("Page Size") = 1000  
objCommand.Properties("Timeout") = 10    
objCommand.Properties("Searchscope") = 5  
objCommand.Properties("Cache Results") = False    
Set objRecordSet = objCommand.Execute  
objRecordSet.MoveFirst  
Do Until objRecordSet.EOF  
         strComputer = objRecordSet.Fields("Name").Value  
      WshShell.Run cmd & strComputer
    objRecordSet.MoveNext  
Loop  

Всего записей: 57 | Зарегистр. 21-12-2005 | Отправлено: 03:42 05-06-2007
Sandman319



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет!  
Прошу подсказать как решить одну проблему. Передо мной стоит такая задача: vbs-скриптом создаю папку, в свойствах безопасности у нее стоит галочка "наследовать от родительского объекта применимые к дочерним объектам разрешения". Есть ли возможность каким либо образом из vbs-скрипта эту галку снять? Долго объяснять для чего это надо, но поверьте - надо! С помощью wmi не нашел способа, может кто подскажет как это можно сделать?

Всего записей: 14 | Зарегистр. 04-01-2003 | Отправлено: 15:33 06-06-2007
Sk1f



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Sandman319, используй xcacls.vbs

Цитата:
 
 Function Permission(FolderPath)
 Dim CmdX
   Set WshShell = Wscript.CreateObject("Wscript.Shell")  
   CmdX = "xcacls.vbs " & FolderPath & " /I COPY"
   WshShell.Run(CmdX)  
   WScript.Sleep 2200
   
 End Function  
 
Call Permission("C:\Test")
 

 
Скрипт xcacls.vbs найдешь на странице microsofta.

Всего записей: 198 | Зарегистр. 04-04-2006 | Отправлено: 08:29 07-06-2007 | Исправлено: Sk1f, 13:19 07-06-2007
Sandman319



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sk1f
Дружище, спасибо тебе огромное!!! Все получилось!

Всего записей: 14 | Зарегистр. 04-01-2003 | Отправлено: 10:31 07-06-2007
YNY

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


Цитата:
стоит галочка "наследовать от родительского объекта  

возможно подойдет вот это, хотя не совсем то что вы просили:
Cacls
Просмотр или изменение файлов избирательных таблиц управления доступом (DACL).
 
Синтаксис
cacls имя_файла [/t] [/e] [/c] [/g пользователь:разрешение] [/r пользователь [...]] [/p пользователь:разрешение [...]] [/d пользователь [...]]
 
Параметры
имя_файла  
Обязательный параметр. Вывод избирательных таблиц управления доступом (DACL) указанных файлов.  
/t  
Изменение избирательных таблиц контроля доступа (DACL) указанных файлов в текущем каталоге и всех подкаталогах.  
/e  
Редактирование избирательной таблицы управления доступом (DACL) вместо ее замены.  
/c  
Продолжение внесения изменений в избирательные таблицы управления доступом (DACL) с игнорированием ошибок.  
/g пользователь:разрешение  
Предоставление прав доступа указанному пользователю
 
Добавлено:
подробности в справке и поддержке винды)
 
Добавлено:
может кто подскажет как остановить службу на компе посредством скрипта ?
 
Добавлено:
а более точно по пермиссиям:
...rename a file without getting an error message? Use the CIM_DataFile class. Ensure that you pass the entire path name when calling the Rename method, for example, "C:\Scripts\Test.txt" instead of "Text.txt".strComputer = "."
 
Set objWMIService = GetObject _
    ("winmgmts:" & "!\\" & strComputer & "\root\cimv2")
 
Set colFiles = objWMIService.ExecQuery _
    ("Select * from CIM_DataFile where Name = " _
        & "'c:\\scripts\\toggle_service.vbs'")
 
For Each objFile in colFiles
    errResult = objFile.Rename("c:\scripts\toggle_service.old")
Next
 
Смотреть надо класс CIM_DataFile  
 (The ChangeSecurityPermissions method in CIM_DataFile is implemented by WMI.)

Всего записей: 476 | Зарегистр. 18-05-2006 | Отправлено: 12:02 07-06-2007
Sandman319



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YNY
Спасибо за подсказку направления поисков, про класс CIM_DataFile, хотя то что подсказал Sk1f сняло все вопросы.
 
а по поводу как остановить службу могу предложить такой способ
 
Set objWMIService = GetObject("winmgmts:")
Set colSoftware = objWMIService.ExecQuery _
("Select * FROM Win32_Service WHERE Name ='ИМЯ_СЛУЖБЫ'" )
For Each objSoftware in colSoftware
objSoftware.StopService()
Next
 
старт соответственно  
 
objSoftware.StartService()

Всего записей: 14 | Зарегистр. 04-01-2003 | Отправлено: 14:07 07-06-2007 | Исправлено: Sandman319, 14:08 07-06-2007
YNY

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

Цитата:
Sandman319

пасибо конечно за пример остановки/запуска служб да только он почему-то воткает если 'ИМЯ_СЛУЖБЫ' не хранится в переменной а иначе выдается ошибка 0х80041017
(
 
Добавлено:
уже все воркает)

Всего записей: 476 | Зарегистр. 18-05-2006 | Отправлено: 09:01 09-06-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.Board
© Ru.Board 2000-2020

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru