Опрос
Вы участвуете в программе Windows Insider?
Популярные новости
Обсуждаемые новости

Представляем Monad, новую командную строку MSH (Часть 2)

Напечатать страницу
31.01.2006 19:44 | swissglide

Это вторая статья из цикла о Monad - новой командной строке от Microsoft. Первую можно найти по этой ссылке.
Команда переводчиков TheVista.ru приносит свои извинения за большой перерыв между выходом статей.

Так как наш обзор - это, с позволения сказать, лишь краткая экскурсия в обширный мир новых возможностей Monad, рассмотрим следующее глобальное изменение. Безусловно, это способность MSH работать с произвольными данными как с файловыми системами. Это реально благодаря provider model.

Доступ к реестру как к файловой системе.

Исторически так сложилось, что командные строки были жестко привязаны к файловой системе. Четкая иерархическая структура команд обеспечивала передвижение вниз, вверх и внутри уровней такой системы. Годы показали, что такой способ представления данных эффективен, даже не смотря на проблемы, которые он создает - например, сложность манипулирования данными, разбросанными по различным локациям внутри системы.

Конечно, не всегда было возможным рассматривать файловые системы как организованное дерево информации, хотя сегодня это и кажется абсолютно естественным. Но с наличием пережитков того времени - обилия различных стандартов хранения файлов (FAT, NTFS, CIFS, ISO9660) - помогают справиться современные операционные системы, которые берут всю черную работу на себя, оставляя конечному пользователю только легкость работы с организованной иерархией папок. MSH делает еще один шаг вперед - теперь в виде иерархического дерева будет так же представлен реестр и некоторые другие системы хранения данных ОС. Это должно существенно облегчить многие из ежедневных задач.

В MSH, служба provider формирует виртуальный слой информации, который виден в оболочке в качестве отдельного диска. Теперь, в дополнение к привычным A, C и D вы так же можете видеть диски переменных сред, настроек MSH, ярлыков всевозможных программ и частей реестра.

Давайте посмотрим на настройку программы через реестр на примере всеми любимого блокнота.

Но ведь я всегда считал, что реестр был шагом в сторону от файловых систем...
Служба Provider в MSH - отнюдь не шаг назад. Наоборот, представление хранилища данных в качестве обыкновенно диска дает нам возможность использовать один набор инструментов для управления широким кругом информации, хранящейся в разных местах.

Только представьте: теперь реально написать скрипт, который будет сканировать, находить и изменять по заданной маске не только файлы, но и, например, записи реестра, и для этого не понадобится вносить почти никаких изменений!

Ну и как мне сделать подобное?

Реестр разделен на 5 основных секций, известных как "ульи". Мы рассмотрим два из них, HKEY_LOCAL_MACHINE (часто название сокращается до HKLM), в котором хранятся системные настройки, единые для всех пользователей, и HKEY_CURRENT_USER (HKCU), в котором живут настройки конкретного пользователя.

При запуске, MSH создает два дополнительных виртуальных диска (hkcu: и hklm:), которые обозначают соотв. локации в реестре. Вы можете сразу начать их просматривать:

MSH D:MshScripts> cd hkcu:
    MSH D:MshScripts> dir
   
SKC  VC ChildName                      Property


    ---  -- ---------                      --------

      2   0 AppEvents                      {}

      0  31 Console                        {ColorTable00, ColorTable01,

                                            ColorTab...

     23   1 Control Panel                  {Opened}

      0   3 Environment                    {MSHCOMMANDPATH, TEMP, TMP}

      1   6 Identities                     {Identity Ordinal, Migrated5, Last

                                            Us...

      2   0 Keyboard Layout                {}

      0   0 Network                        {}

      1   0 Printers                       {}

      5   0 Software                       {}

      0   0 UNICODE Program Groups         {}

      0   1 SessionInformation             {ProgramCount}

      0   7 Volatile Environment           {LOGONSERVER, CLIENTNAME, SESSIONNAME...



Нетрудно увидеть связь между этими данными и иерархией данных в программе regedit.exe (см. рисунок 1-1).


Рисунок 1-1. Regedit.exe

Блокнот хранит индивидуальные настройки пользователя в HKCU, в разделе SoftwareMicrosoft. Попробуем использовать cmdlet (см. первую статью цикла) get-property чтобы просмотреть содержимое раздела.

MSH D:MshScripts> cd hkcu:SoftwareMicrosoftNotepad

    MSH D:MshScripts> get-property .

    lfEscapement         : 0

    lfOrientation        : 0

    lfWeight             : 400

    lfItalic             : 0

    lfUnderline          : 0

    lfStrikeOut          : 0

    lfCharSet            : 0

    lfOutPrecision       : 1

    lfClipPrecision      : 2

    lfQuality            : 2

    lfPitchAndFamily     : 49

    iPointSize           : 100

    fWrap                : 0

    StatusBar            : 0

    fSaveWindowPositions : 0

lfFaceName           : Lucida Console

    szHeader             : &f

    szTrailer            : Page &p

    iMarginTop           : 1000

    iMarginBottom        : 1000

    iMarginLeft          : 750

    iMarginRight         : 750

    fMLE_is_broken       : 0

    iWindowPosX          : 88

    iWindowPosY          : 88

    iWindowPosDX         : 600

    iWindowPosDY         : 411



Вернемся в regedit.exe и отметим, что полученный нами результат полностью идентичен по содержанию тому, что дает эта программа. Блокнот использует ключ IfFaceName для хранения используемого шрифта. Воспользуемся cmdlet set-property чтобы поменять это значение на Verdana:

MSH D:MshScripts> set-property . -property lfFaceName -value "Verdana"



Теперь при запуске Блокнот будет отображать текст именно этим шрифтом (см. рисунок 1-2).


Рисунок 1-2.

А как насчет...
...Использования такого подхода для настройки других приложений? Это зависит от того, в какой форме программа хранит настройки - XML-файл, INI-файл, реестр или иными способами.

На этом месте логичными будут вопросы "Но ведь есть же и другие средства для этого?" и "А как насчет Group Policy и SMS?". Действительно, платформа Windows предоставляет множество инструментов для управления приложениями, и MSH отнюдь не является их заменой, наоборот, новая командная строка как бы готовит плацдарм для более глубокой настройки индивидуальных программ, позволяя в короткие сроки исследовать систему. Group Policy и SMS незаменимы для выполнения автоматизированных задач в крупных сетях, тогда как MSH - средство повседневного администрирования.

Где я могу узнать больше?

Реестр Windows подробным образом описан на http://support.microsoft.com/default.aspx?scid=kb;EN-US;256986.

В следующей статье мы расскажем о создании "трубопровода" (pipeline) для передачи данных.

Источник: http://www.computerworld.com
Перевод: swissglide

Комментарии

Комментариев нет...
Для возможности комментировать войдите в 1 клик через

По теме

Акции MSFT
420.55 0.00
Акции торгуются с 17:30 до 00:00 по Москве
Все права принадлежат © ms insider @thevista.ru, 2022
Сайт является источником уникальной информации о семействе операционных систем Windows и других продуктах Microsoft. Перепечатка материалов возможна только с разрешения редакции.
Работает на WMS 2.34 (Страница создана за 0.129 секунд (Общее время SQL: 0.105 секунд - SQL запросов: 51 - Среднее время SQL: 0.00207 секунд))
Top.Mail.Ru