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

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

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

Код:
strUserName = "Admin"
strNewUserName = "Root"
strPassword = "password"
        strComputer = "."
    Set objUser = GetObject("WinNT://" & strComputer & "/" & strUserName & ", user")
        Set objComputer = GetObject("WinNT://" & strComputer)
    objComputer.MoveHere objUser.AdsPath, strNewUserName
    Set objComputer = Nothing
    Set objUser = Nothing
    Set objUser = GetObject("WinNT://" & strComputer & "/" & strNewUserName & ", user")
        objUser.SetPassword strPassword
        objUser.SetInfo
    Set objUser = Nothing  
 
 
Set objNetwork = CreateObject("WScript.Network")  
strComputer = objNetwork.ComputerName  
Set objComputer = GetObject("winmgmts:{impersonationLevel=Impersonate}!\\" & _  
strComputer & "\root\cimv2:Win32_ComputerSystem.Name='" & _  
strComputer & "'")
Set colAccounts = GetObject("WinNT://" & strComputer & "")
Set objUser = colAccounts.Create("user", "Admin")
objUser.SetPassword "password"
objUser.SetInfo
Set objGroup = GetObject("WinNT://" & strComputer & "/Администраторы,group")
Set objUser = GetObject("WinNT://" & strComputer & "/Admin,user")
objGroup.Add(objUser.ADsPath)  

Всего записей: 43 | Зарегистр. 01-02-2008 | Отправлено: 16:57 19-05-2010
YURETS777



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нужен VBS скрипт, который ищет и удаляет дублированные строки в массиве строк.
Или просто компактный код для сортировки строк в массиве.

Всего записей: 2161 | Зарегистр. 29-04-2005 | Отправлено: 14:11 20-05-2010
vlary



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YURETS777 В раздел "Музыка и кино" обращаться не пробовал?
Вроде давно уже не ньюб.  
Программирование "удобняшек" на VBScript

Всего записей: 17278 | Зарегистр. 13-06-2007 | Отправлено: 14:52 20-05-2010 | Исправлено: vlary, 14:54 20-05-2010
YURETS777



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

Всего записей: 2161 | Зарегистр. 29-04-2005 | Отправлено: 15:06 20-05-2010
YNY

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

Цитата:
YURETS777

1-ну это све зависит в каком массиве твои строки, 2-если строк очень много то будет бешенно тормозить))))))) и примерно вот так будет выглядеть, но сам вопрос не относится к администрированию, а, скорей всего, относится к программированию )

Всего записей: 476 | Зарегистр. 18-05-2006 | Отправлено: 17:31 20-05-2010 | Исправлено: YNY, 17:34 20-05-2010
vlary



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

Цитата:
сортировщик нужен для упорядочивания записей АД,  
От того, что админ поставит чашку кофе или кружку пива на свич или роутер, они не станут ни сетевым оборудованием, ни даже расходными материалами

Всего записей: 17278 | Зарегистр. 13-06-2007 | Отправлено: 18:29 20-05-2010
arr1val

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

Цитата:
Из примеров и кусков собрал себе скриптик требуемый для работы. Подскажите, как дописать условие "если пользователь Root уже есть - ничего не делать" ?
 

Код:
strUserName = "Admin"
strNewUserName = "Root"
strPassword = "password"
        strComputer = "."
    Set objUser = GetObject("WinNT://" & strComputer & "/" & strUserName & ", user")
        Set objComputer = GetObject("WinNT://" & strComputer)
    objComputer.MoveHere objUser.AdsPath, strNewUserName
    Set objComputer = Nothing
    Set objUser = Nothing
    Set objUser = GetObject("WinNT://" & strComputer & "/" & strNewUserName & ", user")
        objUser.SetPassword strPassword
        objUser.SetInfo
    Set objUser = Nothing  
 
 
Set objNetwork = CreateObject("WScript.Network")  
strComputer = objNetwork.ComputerName  
Set objComputer = GetObject("winmgmts:{impersonationLevel=Impersonate}!\\" & _  
strComputer & "\root\cimv2:Win32_ComputerSystem.Name='" & _  
strComputer & "'")
Set colAccounts = GetObject("WinNT://" & strComputer & "")
Set objUser = colAccounts.Create("user", "Admin")
objUser.SetPassword "password"
objUser.SetInfo
Set objGroup = GetObject("WinNT://" & strComputer & "/Администраторы,group")
Set objUser = GetObject("WinNT://" & strComputer & "/Admin,user")
objGroup.Add(objUser.ADsPath)  

 
Методом "на ошибке работай дальше" первый вопрос решил. Подскажите второй, приведенный скрипт не работает на win2k. Что заменить на что ?

Всего записей: 43 | Зарегистр. 01-02-2008 | Отправлено: 20:39 20-05-2010
Dasky



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
добрый...
подскажите как можно сделать следующее:
в txt файле есть список имен всех компов в домене...на каждом установлен Far...требуется деинсталлировать его и поставить Far2...
спс...

Всего записей: 1234 | Зарегистр. 08-03-2006 | Отправлено: 17:44 02-06-2010
YNY

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Dasky вот держи, пробуй пихаешь в ГПО и все будет работать если пользователи имеют права по кр мере опытных, а там где не нуна просто в журнале событий мбыть ошибки)  
 
 

Всего записей: 476 | Зарегистр. 18-05-2006 | Отправлено: 15:27 04-06-2010 | Исправлено: YNY, 15:30 04-06-2010
volkins

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

Всего записей: 4 | Зарегистр. 28-09-2007 | Отправлено: 15:51 04-06-2010
YNY

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
volkins
Цитата:
перезагрузки шрифты снова "слетают"

 
 Вот статья от микрософт по установке шрифтов. Для запуска скрипта с админскими правами см. данный форум, но, я думаю, что прав опытного пользователя тоже должно хватить (т.к. опытным поль-м разрешена запись в каталог Fonts по умолчанию).
Если считаете, что VB не отрабатывает правильно, то пользуйтесь коммандой COPY из под коммсторки или в BAT файле!

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



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

Всего записей: 1234 | Зарегистр. 08-03-2006 | Отправлено: 09:39 07-06-2010
LightSpektr



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Доброго времени суток. Возможно я не умею пользоваться поиском.  
У меня стоит задача определить версию установленного офиса (2003, 2007, 2010) в домене. win xp/vista/seven. Не подскажете решение?
 
В идеале на выходе должен получиться *.txt файл вида %computername% -  2003/2007/2010
причём на машинах возможно наличие сразу 2-х версий. в этом случае нужно чтобы были написаны обе.

Всего записей: 44 | Зарегистр. 24-01-2008 | Отправлено: 09:13 16-06-2010 | Исправлено: LightSpektr, 09:31 16-06-2010
YNY

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LightSpektr обращайся к YURETS777 -- он уже имеет ответ, т.к. сам этим интересовался)
 
На счет того как пользоваться поискм, если у кого проблемы: открывай "версия для печати" бразером, дави Ctrl+F и набирай что важно))))))))))))

Всего записей: 476 | Зарегистр. 18-05-2006 | Отправлено: 10:09 16-06-2010 | Исправлено: YNY, 10:14 16-06-2010
LightSpektr



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
я имею ввиду что не очень могу сформулировать свой вопрос для поиска)
Сейчас сижу, бытаюсь наваять что-нить в виде батника. пока уткнулся в траблу с русскими кодировками. И я делаю это на XP. Фиг знает как оно будет на остальных виндах работать.  
За информацию спасибо, но вопрос остаётся открытым пока. VBS я не умею.

Всего записей: 44 | Зарегистр. 24-01-2008 | Отправлено: 11:38 16-06-2010
wolf0425



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LightSpektr проблемы с русскими кодировками лучше всего решаются переводом cmd в каждом батнике на использование кодировки 1251 и глобальным преключением фонта консоли на уникодный (люсиду).
 
а со сканом комов на предмет оффиса можно сделать "нечестно":

Код:
for /f %%c in (comp.lst) do ping %%c -n 1 >nul && for /d %%a in ("\\%%c\c$\Program Files\Microsoft Office\OFFICE*") do 1>> office.lst echo %%a

правда в лог попадают только включенные и отозвавшиеся в момент сканирования компы, и система/программы у них должны быть на c: - но это мелкие детали.
 
наличие на компе каталога OFFICE11 = следы установки оффиса-2003, и т.д.

Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 12:52 16-06-2010 | Исправлено: wolf0425, 12:54 16-06-2010
monsoon



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

Цитата:
наличие на компе каталога OFFICE11 = следы установки оффиса-2003, и т.д.  

Папка Office12 например м.б., если для Office2000 или 2003 устанавливался патч FileFormatConverters для открытия в этих версиях файлов Office2007

Всего записей: 1255 | Зарегистр. 30-01-2003 | Отправлено: 13:37 16-06-2010
LightSpektr



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Возился всё утро. В данный момент имею вот такое шаманство -  
 
if exist "%allusersprofile%\Главное меню\Программы\Microsoft Office\Microsoft Office Word 2003.lnk".  echo %username%  2003  >>"\\fs\Public\O\List.txt
if exist "%allusersprofile%\Главное меню\Программы\Microsoft Office\Microsoft Office Word 2007.lnk".  echo %username%  2007  >>"\\fs\Public\O\List.txt"
if exist "%allusersprofile%\Главное меню\Программы\Microsoft Office\Microsoft Office Word 2010.lnk".  echo %username%  2010  >>"\\fs\Public\O\List.txt"
if exist "%allusersprofile%\start menu\programs\Microsoft Office\Microsoft Office Word 2003.lnk".  echo %username%  2003  >>"\\fs\Public\O\List.txt
if exist "%allusersprofile%\start menu\programs\Microsoft Office\Microsoft Office Word 2007.lnk".  echo %username%  2007  >>"\\fs\Public\O\List.txt
if exist "%allusersprofile%\start menu\programs\Microsoft Office\Microsoft Office Word 2010.lnk".  echo %username%  2010  >>"\\fs\Public\O\List.txt
 
коллеги тыкают пальцем и называют индусом)
на счёт кодировки - взял akelpad и сохранил батник с кодировкой dos 866 (oem)
 
скрипт в таком виде работает на XP. на других системах не проверял пока.
 
Следующая задача запустить единожды это чудо на каждом компе. Учитывая что не все в сети а когда будут все - неизвестно.
 
Через ГПО врят ли выдет - даже если дописывать батник в runonce при каждой перезагрузке оно будет прописываться заново.
 
Значит теперь нам нужно обрабатывать получившийся текстовый файл, и если там есть некое слово (в данном случае %username%) нам нужно завершать скрипт.
 
Пляшу дальше. Если есть советы - было бы не плохо.

Всего записей: 44 | Зарегистр. 24-01-2008 | Отправлено: 14:29 16-06-2010
HomeWell



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LightSpektr
мда)))
а если переместят ярлыки например в подпапку "Чудо"?
 
надо такое на VBS писать
и определять версию ворда как например через создание объекта и доставания из объекта ее версию
 
да и не по пользователю надо проверять "обработал", а по имени компа
 
Добавлено:
 

Код:
 
Set w = CreateObject("Word.Application")
WScript.Echo "Version" & w.Version
If w.Documents.Count = 0 Then  
  w.Quit
End If
 

Всего записей: 329 | Зарегистр. 20-12-2005 | Отправлено: 15:25 16-06-2010 | Исправлено: HomeWell, 15:26 16-06-2010
LightSpektr



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

Цитата:
VBS я не умею.

 
Но чисто интуитивно есть вопрос - а если установленных офисов 2 и запустится самый поздний? Нужно оба.
 

Цитата:
а если переместят ярлыки например в подпапку "Чудо"?  

пользователям такое низя да и пару проблемных компов отсмотреть вручную можно будет. Но не сотню.
Решение, пока нет времени полноценно заняться VBS, нужно либо в виде готового скрипта, либо с подробными комментариями, либо в виде консольной команды, в которой я смогу разобраться на данном этапе. Я осознаю и понимаю что VBS решит все мои проблемы но я им пока не владею. Сожалею что приходится занимать чьё-то время.
 
 
Текущая задача.
 
Прочитать текстовый файл вида  

username  2007  
username2 2003
итд

и выполнять тело скрипта только в том случае, если наша переменная %username% не равна ни одной записи в этом файле.

Всего записей: 44 | Зарегистр. 24-01-2008 | Отправлено: 15:52 16-06-2010 | Исправлено: LightSpektr, 16:15 16-06-2010
   

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