Управление сетями Windows с помощью сценариев (Часть 5)

Published on Февраль 18, 2009 by   ·   Комментариев нет

В предыдущей статье из этого цикла мы начали изучение возможностей класса Win32_NetworkAdapterConfiguration. Этот мощный класс WMI имеет 61 свойства и 41 метод, которые можно использовать для просмотра и изменения сетевых настроек TCP/IP на компьютерах Windows.

Для того, чтобы продемонстрировать мощь этого класса, мы рассмотрим пример сценария (script), который мы разработали в первой и во второй статьях, и, используя информацию об этом классе из MSDN, мы настроим наш сценарий на выполнение некоторых других действий. А именно, мы возьмем сценарий, в котором мы меняли IP адрес сетевого адаптера (network adapter) и настроим его таким образом, чтобы он отключал NetBIOS по протоколу TCP/IP (NetBT) на всех сетевых адаптерах, которые связаны с TCP/IP.

Для этого нам необходимо изучить возможности этого мощного класса WMI, и мы будем этим заниматься на протяжении нескольких следующих статей. Но перед этим давайте поговорим о переломном моменте (Hump).

Переломный момент

После того, как я начал эту серию статей, посвященную управлению сетями Windows networks с помощью сценариев (script), мне начали приходить письма от читателей. В большинстве этих писем читатели задавали один простой вопрос: «Как мне научиться писать сценарии?» Моей первой реакцией на такой вопрос обычно было желание рассказать вам о различных ресурсах, которые включают статьи на TechNet, различные книги, новости и т.п.. Конечно это очень похоже на ситуацию, когда кто-то спрашивает вас научить его французской кухне, а вы ответ сообщаете ему адреса кулинарных школ, названия и авторов кулинарных книг.» Ответ такого рода может быть полезен лишь тем, у кого есть достаточно силы воли, чтобы самостоятельно заняться изучением, но это в свою очередь вызывает другой более интересный вопрос: «Почему у некоторых из нас возникают проблемы с обучением?»

Однажды я попытался стать поваром, и ниже я приведу, как я это делал:

  1. Я купил несколько старых вырезок с рецептами из журнала Gourmet Magazine в местном книжном магазине и начал их читать.
  2. Я начал покупать различные виды экзотических ингредиентов – различные травы, специи, масла и т.п.
  3. Я выбрал один из рецептов, который звучал достаточно аппетитно — «Carrot Ginger Soup Frog» и купил для него все необходимое. (Frog или лягушка – это название ресторана, в котором работал шеф-повар, который придумал рецепт этого супа, т.е. лягушки для супа не нужны).
  4. Я пригласил несколько друзей женского пола на обед, на котором я планировал представить это кулинарное чудо на всеобщее обозрение. (Обратите внимание, что я сказал несколько друзей, а не одного)
  5. Пришел долгожданный день обеда, и я начал готовить этот замечательный суп—в первый раз, до этого я не практиковался в его приготовлении.

Так каков же был результат всего этого? Суп был повсюду—на плите, на стенах, на потолке. А грязная посуда огромной кучей упиралась высоко в потолок. Плюс к этому, мне даже не удалось попробовать все это великолепие, ни мне, ни моим друзьям.

Так что же пошло не так? Много вещей. А именно:

  1. Я начал изучение со слишком высокого для меня уровня, пытаясь приготовить блюдо, которое требовало некоторых начальных навыков, которых у меня еще не было.
  2. Я поленился протестировать процесс приготовления перед тем, как пускать его в «массовое производство».
  3. Я не смог понять разницу между изучением и навыком.

Так какой же подход мне следовало использовать вместо того, который опробовал я?

  1. Мне следовало пройти базовый курс обучения французской кухне, который по вечерам проходил в местном кулинарном кружке.
  2. Попробовать приготовить обычный белый соус, до того, как перейти к чему-то более сложному.
  3. Выучить новые кулинарные понятия, а не пользоваться теми, которые предлагались в таком журнале, как Gourmet.
  4. Практиковаться, практиковаться и практиковаться, до того как начать экспериментировать.

Как все это связано с написанием сценариев? Во-первых, небольшая шутка, вроде той, которую я привел выше, позволяет вам лучше настроиться и более внимательно слушать, а когда вы более внимательно слушаете, вы лучше сможете понять то, о чем я вам говорю. Практически каждый администратор Windows administrator, который хочет научиться писать сценарии, проходит на своем пути через большую кочку, которую я называют переломным моментом или Hump. Это переломный момент возникает, когда мозг начинает выключаться, потому что не так просто понять и впитать такое количество новых концепций. А все это из-за того, что концепции не существуют в вакууме, они взаимосвязаны. Например, вы не сможете понять, что такое свойство (Property) до тех пор, пока не поймете, что такое метод (Method). А свойства и методы существует в контексте класса (Class). А классы должны ссылаться на объекты (Object), которые и будут обладать этими свойствами (Properties) и методами (Methods), а более правильно будет сказать, что объекты ссылаются на класс Class, который имеет свойства и методы, о которыми вы можете использовать, и о которых вы можете прочитать. Звучит очень запутанно, не правда ли? Именно, так, потому что это действительно не просто!

«Почему я просто не могу научиться писать сценарии? Для чего мне нужно изучать все эти концепции и всю эту терминологию?» Хорошо, а зачем вам нужно отличать белый соус от коричневого? Или знать о том, что соусы бывают четырех различных типов: пюре, крахмал, эмульсия, желе? Или для чего мне нужно знать историю соуса bechamel? Да потому что по этому долгому пути вы никуда не попадете до тех пор, пока вы ну изучите основные понятия. Это касается не только французской кухни.

Но с другой стороны, у большинства из нас в реальном мире (т.е. те из нас, которые не хотят становиться профессионалами) не хватает времени, денег или терпения на то, чтобы уделить французской кухне все свое время на изучение основ приготовления соусов перед тем, как приступить к приготовлению свинины. Я знаю, что устанете уже через несколько недель и решите, что лучше найти себе другую работу. То же самое относительно написания сценариев: если я являюсь очень загруженным администратором, то я просто не могу потратить три года на изучение свойств и методов, которые относятся к каждому классу WMI, который хоть как-то касается сетевой работы в Windows. Или на изучение всех аспектов синтаксиса языка VBScript, чтобы быть в нем профессионалом. Я потратил достаточно времени на изучение языка Fortran во время своего обучения в университете, писал программу за программой, которые выводили квадраты первых десяти чисел, выводили первые 100 простых чисел, первую тысячу последовательности Фибоначи и так далее и тому подобное. Поэтому потратьте ваше ограниченное время на преодоление этого переломного момента в изучении написания сценариев.

Преодоление переломного момента

Понятно, что не существует магического ответа на этот вопрос, но есть некоторые советы, которые могут вам помочь. Ниже описано то, что помогло мне:

  1. Начать с малого. Стрельба в облака – это не слишком хорошее начало, ни для изучения французской кухни, ни для написания сценариев (script). Поэтому, если вы действительно хотите научиться писать сценарии, которые будут обращаться к Active Directory за структурой организационной единицы (OU structure) в домене, и отображать эту структуру на странице HTML, а также научиться писать этот сценарий за неделю, то вы, вероятно, слишком высоко ставите свою планку, либо вы гораздо умнее меня. Вы можете найти с помощью поиска сценарии, которые делают что-то похожее и настроить эти сценарии под свои собственные нужды, и это будет нормально, но это всего лишь один из аспектов изучения—плюс к этому, вы можете столкнуться со сложным сценарием, который вы до конца не поймете.
  2. Сфокусироваться на определенной области в написании сценариев. Одна из моих самых больших слабостей заключается в том, что я хочу знать все обо всем, и знать это прямо сейчас. Поэтому, когда я впервые захотел написать сценарий, я начал читать всё пособие о языке VBScript Language Reference с начала до конца. Необходимо также добавить, что это было сухое чтение, и я сдался на четверти пути. Гораздо лучше сфокусироваться на определенной области в написании сценариев, например, выполнение задач, связанных с работой с TCP/IP, именно на эту область нацелены все мои статьи. После того, как вы станете профессионалами в этой не слишком маленькой области написания сценариев, вы сможете перейти на другую область и так далее.
  3. Уделить немного времени на изучение основ. Хотя идея сфокусироваться на одной из областей является очень неплохой идеей, очень важно также изучить основы. Выучить, как вводить информацию в уже работающий сценарий. Выучить, как обрабатывать простые ошибки. Выучить, как отображать результаты в читаемом виде. Выучить синтаксис предложения SELECT. Выучить различные типы переменных. Изучить некоторые основные классы WMI, а также выучить несколько основных методов и свойств для каждого класса. И так далее. Вы можете не быть экспертом во всех этих областях, но вы должны знать достаточно о каждой из них, для того чтобы написать подходящий сценарий.
  4. Сохранять пометки о том, что вы выучили. На протяжении долгого периода времени (очень долгого) меня расстраивали мои неудачные попытки в написании сценариев, т.к. у меня не хватало знаний. Как вы могли догадаться из моего рассказа относительно изучения языка Fortran в университете, я изучал компьютерное программирование во времена процедурного программирования (procedural programming). Результатом этого стали трудности в переходе на объектно-ориенитированное программирование (object-oriented programming), когда оно стало популярным (среди администраторов Windows), когда язык VBScript отделился от Visual Basic. На протяжении долгого периода времени меня сильно смущали термины объект (Object), свойство (Property), метод (Method), класс (Class) и тому подобные, и это создавало для меня большое препятствие (The Hump) в изучении написания сценариев. Конечно, я мог взять сценарий, который кто-то написал до меня, и если это было не сложно, то я мог даже догадаться, как он работает и настроить его под себя. Но MSDN был для меня как латынь, а WMI был абсолютной загадкой. До тех пор, пока я не начал делать пометки. Однажды я написал простое предложение, что свойства (Properties) – это то, что можно читать, в то время как методы, это то, что можно выполнить, и неожиданно гора стало бугорком, который я с легкостью перешагнул. Другие понятия стали быстро вставать на свои места, т.к. все они очень связаны друг с другом—после того, как вы разберетесь с одними из них, другие тоже станут понятными.
  5. Собирать полезные ресурсы и использовать их в своей работе. Если вы найдете хорошую книгу, посвященную написанию сценариев, купите ее и прочитайте от начала до конца, выполняя все упражнения. Есть также большое количество ресурсов на TechNet Script Center , и я приведу некоторые из них в своих следующих статьях из этой серии. Другие ресурсы включают курсы (с помощью инструктора и для самообучения), обсуждения и так далее. Нет нехватки хороших ресурсов по изучению написания сценариев—тут главное правильно воспользоваться теми, которые нашли вы. Например, этой статьей!
  6. Практика, практика, практика. Изучение новых возможностей требует огромного терпения. В действительности, я по-прежнему не могу приготовить приличный соус, чтобы в нем не оказалось несколько кусков! То же самое относиться и к написанию сценариев: тренировка позволяет совершенствоваться. На дороге будут встречаться препятствия различных размеров, и поэтому необходима решительность и настойчивость для их преодоления. И в целом, вы гораздо большему научитесь после написания сотни коротких сценариев, чем после написания нескольких длинных и сложных. Поэтому поставьте себе в качестве цели написание нескольких небольших сценариев, что поможет вам лучше закрепить полученные знания.
  7. Получать от этого удовольствие. Наконец, я не знаю, как вы, но у меня обучение проходило с большим эффектом, когда я получал от него удовольствие. Если у вас есть несколько административных задач (administration task) в вашей сети, которые, как вы думаете, можно гораздо проще решить с помощью сценариев, то это может быть одним из мотивов для изучения написания сценариев. С другой стороны, если вы слишком заняты (а кто из администраторов не занят), то может быть гораздо проще, если вы найдете кого-нибудь другого, кто напишет для вас сценарий. Но если написание сценариев станет для вас таким же хобби, как голь, то вы научитесь гораздо быстрее, и сможете гораздо больше, чем если это будет для вас обузой. И точно также, как в гольф гораздо интереснее играть с другими, чем одному, точно также любое обучение будет гораздо интереснее, если вы будете заниматься вместе с друзьями или знакомыми.

Заключение

Я написал эту статью, потому что чувствую, что некоторые из моих читателей уже приблизились к этому переломному моменту после первых четырех статей. Будем надеяться, что то, что я сказал в этой статье, поможет вам преодолеть трудности, которые тянут вас назад. В следующей статье я вернусь к изучению класса Win32_NetworkAdapterConfiguration class, и вы сможете увидеть все, что можно с ним делать, а по пути мы выучим новые концепции и закрепим знания, полученные ранее в предыдущих статья. Мы также изучим дополнительные тонкости синтаксиса языка VBScript и увидим, как мы сможем сделать наши сценарии более элегантными и полезными. А затем мы изучим некоторые другие классы WMI, более углубленные темы по написанию сценариев, как альтернативные полномочия, удаленное выполнение сценариев, COM объекты, WSF сценарии и т.д. Мы рассмотрим некоторые инстурменты, которые помогут нам в написании сценариев, но очень важно сначала изучить основы, т.к. с их помощью вы сможете лучше понимать то, что вы делаете, и поэтому улучшите свои навыки. Я также попытаюсь дать вам несколько упражнений, которые вы должны будете выполнить самостоятельно, и если вы действительно хотите научиться писать сценарии, вы должны будете выполнить их, а не просто посмотреть на них и сказать, что можете это сделать. К тому же, практика позволяет нам совершенствоваться. И наконец, вы можете спокойно написать мнe, если у вас возникнуть какие-либо вопросы, относительно этой статьи. Удачи!

www.windowsnetworking.com


Смотрите также:

Readers Comments (Комментариев нет)




Да человек я, человек! =)




Exchange 2007

Проведение мониторинга Exchange 2007 с помощью диспетчера System Center Operations Manager 2007 (часть 3)

Если вы хотите прочитать предыдущие части этой серии статей, перейдите по ссылкам: Проведение мониторинга Exchange 2007 с помощью диспетчера System ... [+]

Практическое рассмотрение перехода с Exchange 2003 на Exchange 2007 (часть 1)

Введение В этой статье из нескольких частей я хочу показать вам процесс, который недавно использовал для перехода с существующей среды Exchange 2003 ... [+]

Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (часть 2)

Если вы пропустили первую часть этой серии, пожалуйста, прочтите ее по ссылке Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (Часть ... [+]

Мониторинг Exchange 2007 с помощью диспетчера System Center Operations Manager 2007 (часть 2)

Если вы пропустили предыдущую часть этой серии статей, перейдите по ссылке Мониторинг Exchange 2007 с помощью диспетчера System Center Operations ... [+]

Подробное рассмотрение подготовки Active Directory для Exchange 2007 (часть 5)

Если вы пропустили предыдущие части этой серии статей, перейдите по ссылкам: Подробное рассмотрение подготовки Active Directory для Exchange 2007 (часть 1) ... [+]

Установка и настройка Exchange 2007 из командной строки (Часть 3)

If you missed the previous parts in this article series please read: Exchange 2007 Install and Configuration from the command line (Part ... [+]

Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (часть 1)

Инструмент ExRCA Текущий выпуск инструмента предоставляется только в целях тестирования и оснащен 5 опциями: Тест подключения Outlook 2007 Autodiscover Тест подключения Outlook 2003 RPC ... [+]

Развертывание сервера Exchange 2007 Edge Transport (часть 5)

Если вы хотите прочитать предыдущие части этой серии статей, перейдите по ссылкам: Развертывание сервера Exchange 2007 Edge Transport (часть 1) Развертывание ... [+]

Установка и настройка Exchange 2007 из командной строки (часть 2)

Если вы пропустили первую статью данного цикла, пожалуйста, перейдите по ссылке: Exchange 2007 Install and Configuration from the command line (Part ... [+]

Использование интегрированных сценариев Using Exchange Server 2007 – часть 2: генерирование отчетов агента Transport AntiSpam Agent

Если вы пропустили предыдущую часть этой серии статей, перейдите по ссылке Использование интегрированных сценариев Using Exchange Server 2007 – часть ... [+]