Настройка Windows

Сборник статей по настройке Windows

Настройка Windows 9x/ME
В этом разделе собрана информация по настройке различных параметров операционной системы: оптимизация работы, запрещение доступа к элементам оболочки, увеличение быстродействия Windows, настройка внешнего вида GUI.
читать дальше

Windows NT/2000/XP
Реестр Windows NT, 2000 и XP похож на реестр Windows 9x, но существуют и отличия. Многое из описанного в других разделах применимо и в NT, а вот об отличиях и особенностях реестра этой операционной системы пойдет речь в этом разделе.
читать дальше

Windows Script Host (WSH)
Мощнейшее средство автоматизации работы с Windows - WSH. Как в автоматическом режиме подключить сетевой диск, поковыряться в реестре, создать ярлык, запустить программу, выключить компьютер? Это и многое другое может WSH.
читать дальше

Ведущий раздела: И. Чеботарев
Автор сборника: К. Тарасов

© 2003-2004 К. Тарасов, И. Чеботарев
http://www.whatis.ru/


Настройка Windows

Основной материал раздела, где, собственно, и содержится информация по различным настройкам оболочки Windows.

"Хитрые" ярлыки папок
Инструкция по созданию ярлыка папки, который в проводнике будет вести себя также как папка, на которую он ссылается.
читать дальше

Скрываем информацию через баги в FAT32, NTFS и DOS-командах
Любопытная особенность FAT32, позволяющая создавать невидимый для операционной системы каталог.
читать дальше

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

Где и как Windows хранит информацию о Active Desktop
Небольшое описание файла, отвечающего за отображение информации, когда вид Рабочего стола представлен как Active Desktop.
читать дальше

Создание нестандартного ярлыка
Все знают, что при установке MS Office на рабочем столе появляется ярлык Microsoft Outlook. В отличие от других ярлыков, у этого нет стрелочки и привычного меню, появляющегося при нажатии правой кнопки мыши.
читать дальше

Используем Active Desktop
Или во что можно превратить Рабочий стол, если проявить немного фантазии и терпения.
читать дальше

Настройка свойств протокола TCP/IP
Как автоматизировать процесс настройки свойств протокола с примером reg-файла.
читать дальше

FAQ по файлу подкачки
В статье рассматриваются различные вопросы, связанные с файлом подкачки и его оптимизацией.
читать дальше

Сокрытие информации
Довольно любопытная статья о том, как прятать данные и запуск программ от постороннего взгляда.
читать дальше

Смена надписи на кнопке "Пуск"
Как вручную поменять эту изрядно поднадоевшую надпись.
читать дальше

Если поселился незванный гость...
Информация о том, как различные программы (в частности трояны) прописываются в автозагрузку.
читать дальше

Ускорение работы с Интернетом
Эта информация дополняет материалы изложенные в статье Настройка модемного соединения.
читать дальше

Разгоняем Windows
Повышаем производительность компьютера стандартными средствами не тратя денег на апгрейд.
читать дальше

Оптимизация памяти
Что сделать, чтобы не грузить лишнего.
читать дальше

Параметры файла msdos.sys
Управление процессом загрузки операционной системы при помощи файла msdos.sys
читать дальше

Установка Windows
Как правильно поставить операционку, убрать все лишнее и настроить ее.
читать дальше

Добавление нового пункта в меню "Создать"
... или о том, как повысить производительность работы на компьютере.
читать дальше

Контекстное меню файлов и папок
Развитие предыдущей статьи - изменение контекстного меню. Может быть довольно полезным :)
читать дальше

Регистрация расширений файлов
Вы заметили, что при двойном щелчке на различных файлах, Windows запускает соответствующее им приложение. А откуда он знает что надо запустить? И как это настроить самому? Читайте...
читать дальше

Установки Рабочего стола и оболочки
О том где хранятся настройки различных параметров и элементов оболочки (шрифтов, графических элементов, иконок, и т.п.).
Часть 1
Часть 2
Часть 3

Ограничение доступа к настройкам Windows
Небольшая статья для тех, кто хочет обезопасить свой компьютер от неуемного любопытства коллег и друзей.
читать дальше

Windows ручками
Комментарий в присущей малолетним хакерам, когда они обучают великовозрастных чайников, стилистике.
читать дальше

Настройка модемного соединения
Прочитав эту статью вы сможете настроить ваше модемное соединение с Интернет оптимальным образом, увеличив скорость на 20-40%.
читать дальше

Настройка меню кнопки "Пуск"
Оказывается меню, появляющееся при нажатии на кнопку "Пуск", можно полностью преобразить. Настала пора отключить все лишние и добавить недостающие пункты.
читать дальше

Запрещение запуска программ.
Статья очень пригодится начальникам, чтобы их подчиненные не играли на рабочем месте, а запускали только нужные программы :).
читать дальше

Что скрывается в автозагрузке?
Почему так долго грузится компьютер, какие программы запускаются в этот момент и как отключить их старт.
читать дальше

Реестр Windows
Здесь вы найдете теоретический материал о структуре реестра, его резервировании, способах работы с ним, reg-файлах. Здесь вы узнаете о том, что же это такое - реестр Windows.
читать дальше


Реестр Windows

Структура реестра
Статья большей частью для программистов и людей интересующихся устройством реестра на низком уровне.
читать дальше

Структура reg-файлов
Статья о том, как написать reg-файл и о требованиях к структуре этих файлов.
читать дальше

Восстановление реестра
Что делать если непоправимое свершилось: реестр испорчен и Windows не грузится? Переустанавливать операционную систему? Не спешите - сперва прочтите эту статью.
читать дальше

Редактор RegEdit и структура реестра
Описание стандартного средства редактирования реестра, а также внутренней структуры этой базы данных.
читать дальше

Что такое реестр?
Небольшая статья о реестре: что это такое, зачем он нужен и как Microsoft дошла до такого.
читать дальше


Восстановление реестра

При работе с реестром надо соблюдать осторожность. Удаление каких-либо важных данных случайно или по незнанию может привести к краху операционной системы. Тогда спасти положение может только восстановление последней работоспособной копии.

Если Вы собрались поэкспериментировать с реестром, предварительно сохраните на диске файлы SYSTEM.DAT и USER.DAT. Они находятся в каталоге, куда была установлена операционная система и имеют атрибуты "только для чтения" и "скрытый". В случае если реестр будет серьезно испорчен, Вы сможете переписать эти файлы в каталог Windows, установить нужные атрибуты и реестр будет как новенький. Только не вздумайте восстанавливать эти файлы, когда загружен Windows, иначе система накроется окончательно и спасет ее только полная переустановка! Для восстановления этих файлов надо предварительно перезагрузиться в DOS и уже там заменять испорченные файлы хорошими.

Но это не единственный вариант восстановления данных. Дело в том, что операционная система, при каждом удачном запуске сохраняет копию реестра в CAB-файле, который записывается в скрытый каталог SYSBCKUP каталога Windows. По умолчанию, хранятся последние пять копий. Это число может варьироваться от 0 до 99 и устанавливается значением ключа MaxBackupCopies в файле scanreg.ini в каталоге Windows. Правда не стоит устанавливать слишком большое значение, т.к. файлы занимают немало места (один файл имеет размер больше мегабайта).

Чтобы восстановить реестр с одной из этих резервных копий надо перезагрузиться в DOS и выполнить команду

SCANREG /RESTORE

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

Но если Вы устанавливали какие-то программы или меняли настройки операционной системы в промежуток между последней резервной копией и сбоем в реестре, то все эти данные безвозвратно пропадут. Надо ли нам это? Однозначно нет! Чтобы в любое время создать резервную копию реестра воспользуйтесь командой

SCANREG /BACKUP

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

Еще один вариант резервирования и восстановления реестра состоит в экспортировании раздела или целой ветви, которую Вы планируете изменять. Это можно осуществить в Regedite для Windows в меню "Реестр". Выделите нужный раздел и щелкните по пункту "Экспорт файла реестра". После задания имени файла данные этого раздела будут в него экспортированы. Файл имеет расширение REG. Для его импортирования в реестр достаточно дважды щелкнуть на нем и данные будут перенесены. Правда этот способ восстановления информации имеет один существенный недостаток: все удаленные или измененные записи будут восстановлены, но вот добавленные записи удалены не будут. Поэтому данный способ больше подходит, если Вы проводите какие-то несущественные изменения, и чтобы откатить их не вводя старые данные заново, можно воспользоваться экспортом/импортом.

Вообще, работать с реестром надо крайне осторожно, но если Вы будете периодически резервировать его, то никаких проблем возникнуть не должно.


Редактор RegEdit и структура реестра

Основным средством для просмотра и редактирования записей реестра служит специализированная утилита "Редактор реестра". Для ее запуска наберите в запуске программы (Пуск->Выполнить) команду regedit. Откроется окно программы, в которой слева отображается дерево реестра, похожее по виду на отображение структуры диска в Проводнике, а справа выводятся ключи, содержащиеся в выбранном (активном) разделе. С помощью редактора Вы можете редактировать значения, импортировать или экспортировать реестр, осуществлять поиск. Интерфейс и меню программы до боли знакомо любому пользователю Windows, и я думаю, что останавливаться на нем подробно не стоит, т.к. его освоение не составит никакого труда.

Чему действительно необходимо уделить внимание, так это структуре реестра. Он содержит шесть корневых разделов (ветвей), на которых ниже остановимся подробнее, каждый из них включает подразделы, отображаемые в левой части окна в виде значка папки. Конечным элементом дерева реестра являются ключи или параметры, делящиеся на три типа:

- строковые (напр. "C:\Windows");
- двоичные (напр. 10 82 A0 8F). Максимальная длина такого ключа 16Кб;
- DWORD. Этот тип ключа занимает 4 байта и отображается в шестнадцатеричном и в десятичном виде (напр. 0x00000020 (32) - в скобках указано десятичное значение ключа).

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

HKEY_CLASSES_ROOT. В этом разделе содержится информация о зарегистрированных в Windows типах файлов, что позволяет открывать их по двойному щелчку мыши, а также информация для OLE и операций drag-and-drop;

HKEY_CURRENT_USER. Здесь содержатся настройки оболочки пользователя (например, Рабочего стола, меню "Пуск", ...), вошедшего в Windows. Они дублируют содержимое подраздела HKEY_USER\name, где name - имя пользователя, вошедшего в Windows. Если на компьютере работает один пользователь и используется обычный вход в Windows, то значения раздела берутся из подраздела HKEY_USERS\.DEFAULT;

HKEY_LOCAL_MACHINE. Этот раздел содержит информацию, относящуюся к компьютеру: драйверы, установленное программное обеспечение и его настройки;

HKEY_USERS. Содержит настройки оболочки Windows для всех пользователей. Как было сказано выше, именно из этого раздела информация копируется в раздел HKEY_CURRENT_USER. Все изменения в HKCU (сокращенное название раздела HKEY_CURRENT_USER) автоматически переносятся в HKU;

HKEY_CURRENT_CONFIG. В этом разделе содержится информация о конфигурации устройств Plug&Play и сведения о конфигурации компьютера с переменным составом аппаратных средств;

HKEY_DYN_DATA. Здесь хранятся динамические данные о состоянии различных устройств, установленных на компьютере пользователя. Именно сведения этой ветви отображаются в окне "Свойства: Система" на вкладке "Устройства", вызываемого из Панели управления. Данные этого раздела изменяются самой операционной системой, так что редактировать что-либо вручную не рекомендуется.

Наибольший интерес представляют ветви HKEY_CURRENT_USER и HKEY_LOCAL_MACHINE. Именно там хранятся настройки, позволяющие привести Вашу операционную систему в надлежащий вид :). Поэтому, почти все внимание в дальнейших статьях будет посвящено именно этим ветвям реестра.


Структура reg-файлов

Знание реестра Windows будет не полным без умения написать reg-файл. Начнем с того, что это такое. Reg-файл - это файл, имеющий определенную структуру и содержащий информацию, которая может быть импортирована в реестр. Если была заблокирована работа с редактором реестра (как это сделать, можно прочитать в статье), то наиболее легким способом подредактировать реестр будет создание и импортирование reg-файла (конечно, можно выйти в DOS, в защищенный режим, воспользоваться другими программами, но это все гораздо сложнее, а главное дольше).

К reg-файлам предъявляются определенные требования по структуре. Начнем с того, что в первой строке файла обязательно должно быть введено

REGEDIT4

Обратите внимание на то, что буквы должны быть большие. Кроме этого в первой строке ничего быть не должно. После этого текста ОБЯЗАТЕЛЬНО должна быть пустая строка. Затем, указывается раздел реестра, в котором надо прописать или изменить какие-то параметры. Название раздела должно быть заключено в квадратные скобки [...]. Ниже прописываются параметры, которые надо добавить, по одному параметру в строке. Если вам надо провести изменения в нескольких разделах, то вы должны оставлять одну пустую строку между последним параметром предыдущего раздела и названием следующего раздела. Может немного запутанно, но вот как это должно выглядеть:

REGEDIT4

[Razdel1]
"param1"="znachenie1"
"param2"="znachenei2"
"param3"="znachenie3"

[Razdel2]
"param_1"="znachenie_1"

Последняя строка в файле должна быть ПУСТОЙ. После того, как вы создали такой файл, просто запустите его как обычную программу, вам будет выдан запрос о необходимости провести изменения в реестре, и после положительного ответа информация из файла будет импортирована. О результатах импортирования Windows сообщит в появившемся после этого окне.

Теперь пару слов о параметрах, которые можно добавлять. Как вы, наверное, обратили внимание, в приведенном выше примере добавляются параметры с помощью строк типа "param1"="znachenie1". Т.е. таким образом добавляется СТРОКОВЫЙ параметр с именем "param1" и значением "znachenie1". Но ведь существуют еще и параметры двоичные и DWORD. Формат записи для их добавления несколько другой. Для параметров типа DWORD используется строка

"param"=dword:XXXXXXXX

Здесь "param" - имя параметра, dword - указывает на тип этого параметра (буквы должны быть обязательно маленькие!) и после двоеточия следует значение из восьми цифр в шестнадцатеричном (!) формате. Однако большинство параметров DWORD имеют значение либо 0, либо 1, значит, вы должны написать соответственно либо 00000000, либо 00000001 вместо значков ХХХХХХХХ. Пробелы в строке не допускаются.

Для добавления двоичного параметра формат записи несколько иной:

"param"=hex:XX,XX,XX,....

Теперь расшифрую эту строку. Ну, с названием параметра все ясно, после знака "=" идет hex, т.е. указывается, что это будет двоичный параметр, затем идут шестнадцатеричные числа, отделенные запятой. Например, если вам надо добавить двоичный параметр равный "be 00 00 00", то вы пишете строку

"param"=hex:be,00,00,00

В реестре существуют параметры "По умолчанию" ("Default"). Чтобы присвоить им какое-то значение через reg-файл, надо добавить такую строку:

@="znachenie"

Здесь значок @ показывает, что у нас присваивается значение параметра "По умолчанию". Обратите внимание на то, что он не заключается в кавычки.

Теперь я приведу пример простенького reg-файла, который прописывает в реестр сайт, устанавливающий домашнюю страничку в Internet Explorer'e:

REGEDIT4

[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main]
"Start Page" = "http://www.whatis.ru/"

По-моему все очень просто и понятно. Но есть у reg-файлов одна особенность: с помощью них нельзя удалять параметры в реестре, правда, можно удалить раздел целиком. Для удаления раздела из реестра надо перед его именем в квадратных скобках поставить символ "-". Вот как это выглядит:

[-HKEY_LOCAL_MACHINE\Software\QuickSoft\QuickStart]

Благодаря этой записи, подраздел "QuickStart" из раздела "QuickSoft" будет удален со всем содержимым. Однако, как быть с параметрами? Ведь их удалять нельзя. Так, установка ограничений на доступ к различным настройкам оболочки Windows, как описано в статье, производится с помощью параметров типа DWORD. При этом, если значение параметра равно 1 (00000001), то ограничение включено, а если равно 0 (00000000), то ограничение отключено. Таким образом, параметры удалять вовсе не обязательно, достаточно просто присвоить им значения равные нулю.

Замечание по поводу удаления, сделанное Николаем Басмановым:
При помощи REG-файлов можно удалять параметры. Синтаксис:

REGEDIT4

[HKEY_CURRENT_USER\Software]
"xxx"=-

Вот, пожалуй, вся основная информация по структуре reg-файлов. Рекомендую еще попробовать поэкспортировать из реестра какие-нибудь разделы (не очень большие с маленькой вложенностью), чтобы лишний раз посмотреть структуру файлов. Это никогда не помешает. Теперь вы и сами сможете с легкостью вносить изменения в реестр с помощью reg-файлов.


Структура реестра

Статья взята с сайта http://paullee.ru/articles, автор General Paul Lee Corruption.

Сегодня мы поговорим о том, что многие называют "помойной ямой" Windows, а именно о реестре. Многие уже научились работать с содержимым реестра: менять параметры системы, извлекать полезную информацию и т.д. - но не все знают, что же представляет из себя реестр Windows "изнутри".

В системе Win95/98 (о ней сегодня пойдет речь) реестр хранится в двух файлах SYSTEM.DAT и USER.DAT. Как их найти. В корневом каталоге загрузочного диска имеется файл установок командного процессора MSDOS.SYS, в разделе [Paths] которого следует отыскать переменную WinDir. Ее значение - каталог с установленной Win95/98, в нем и находятся интересующие нас файлы. Надо заметить, что они имеют атрибут Hidden (скрытый) и Read only (только для чтения).

Что же представляет из себя файл реестра? Это файл данных древовидной структуры, состоящий из трех основных частей: заголовка, индекса, и данных, которые могут располагаться в одном или нескольких блоках.

Заголовок - запись размером 20h (32) байта имеет следующий вид:

       00h: 4 байта - "CREG" сигнатура заголовка реестра
       08h: двойное слово - адрес первого блока данных
       10h: слово - количество блоков данных

Индекс - список ссылок на элементы реестра (на его ветви), имеет свой подзаголовок размером в 10h байт:

       00h: 4 байта - "RGKN" сигнатура индекса реестра
       04h: двойное слово - размер индекса
       08h: слово - относительное смещение адреса в файле
            (обычно равно 20h - размер заголовка реестра)
       0Ch: двойное слово - количество записей в индексе

Далее идут записи индекса следующей структуры:

       00h: двойное слово
       04h: двойное слово - контрольная сумма ключа
            (сумма всех букв имени ключа в верхнем регистре)
       08h: двойное слово
       0Ch: двойное слово - указатель на предка
       10h: двойное слово - указатель на потомка
       14h: двойное слово - указатель на следующий ключ этого уровня
       18h: слово - номер блока данных, в котором находится ключ
       1Ah: слово - номер (не порядковый!) ключа в блоке данных

Таким образом, мы видим, что в индекс представляет собой каркас дерева, которое может состоять из (0FFFFFFFFh-10h)/1Ch=9249248h (153391688) элементов (где 0FFFFFFFFh - максимальный размер индекса, 10h - подзаголовок индекса, 1Ch размер записи в индексе), с условием того, что индекс в файле может быть только один (?).

Все данные (имена ключей, их параметры и значения параметров) находятся в блоках данных. Исходя из размера отведенного под количество этих блоков в заголовке файла реестра, видно, что их может быть не более 64k (65536). Хотя, как дальше будет видно, под размер самого блока данных отведено двойное слово, мне лично не довелось встречать блоки больше 0F000h байт. Если принять этот факт за правило, то не трудно вычислить максимальный размер файла реестра ~7,75Gb. Если же использовать возможности по "раздутию" файла на полную катушку, то размер одного файла может достичь совершенно немыслимых размеров ~256Tb.

Итак, блоки данных. Каждый блок данных имеет свой подзаголовок:

       00h: 4 байта - "RGDB" сигнатура блока данных
       04h: двойное слово - размер блока данных
       08h: двойное слово - размер свободного раздела в блоке
       0Ch: слово - (8)
       0Eh: слово - номер блока данных
       10h: двойное слово - указатель на свободный раздел
       14h: слово - количество разделов в блоке (включая свободный раздел)
       16h: слово - свободный номер для создания элемента
       18h: 8 байт - выравнивание

Для каждого нового элемента создается свой раздел, начиная с начала свободного раздела. При удалении раздела данные в блоке сдвигаются, заполняя собой освободившееся место и увеличивая, тем самым, свободный раздел. При уменьшении размера информации внутри раздела, место не освобождается, а только меняется реальный размер записи (см. далее).

Записи в блоке данных имеют следующую структуру:

       00h: двойное слово - размер записи
       04h: слово - номер записи в блоке
       06h: слово - номер блока данных
       08h: двойное слово - реальный размер записи
       0Ah: слово - размер имени ключа (n)
       0Ch: слово - количество параметров
       0Eh: n байт - имя ключа
       0Eh+n: - информация о параметрах:

            00h: двойное слово - тип параметра
            04h: двойное слово (?)
            08h: слово - размер имени параметра (n)
            0Ah: слово - размер значения параметра (m)
            0Ch: n байт - имя параметра
            0Ch+n: m байт - значение параметра

Информация о параметрах записывается один за другим, без какого-либо разделения. Если у параметра отсутствует имя (размер равен нулю), то он считается параметром "по умолчанию" для этого ключа.

Программа редактирования реестра RegEdit предоставляет возможность создания параметров лишь трех типов (1, 3, 4), хотя Windows позволяет хранить до 65536 типов параметров.

ПРИЛОЖЕНИЕ 1

Типы параметров зарезервированные в MSDE

0 - REG_NONE
    Неопределенный тип
1 - REG_SZ
    Строка, заканчивающаяся нулем
2 - REG_EXPAND_SZ
    Строка, заканчивающаяся нулем
    (со ссылками на переменные окружения)
3 - REG_BINARY
    Двоичный тип
4 - REG_DWORD или REG_DWORD_LITTLE_ENDIAN
    Двойное слово
5 - REG_DWORD_BIG_ENDIAN
    Двойное слово
6 - REG_LINK
    Символическая связь
    (Symbolic Link)
7 - REG_MULTI_SZ
    Многостроковый параметр
    (строки разделены конечными нулями)
8 - REG_RESOURCE_LIST
    Представление ресурса в виде карты ресурса
    (Resource list in the resource map)
9 - REG_FULL_RESOURCE_DESCRIPTOR
    Представление ресурса в виде аппаратного описания
    (Resource list in the hardware description)
10 - REG_RESOURCE_REQUIREMENTS_LIST

ПРИЛОЖЕНИЕ 2

Схематичное представление структуры файла реестра


Что такое реестр? Общая теория

В последнее время из уст молодых людей, пользующихся компьютером, можно частенько услышать фразы типа "Windows - MUST DIE, UNIX - COOL". Причем кричат об этом, как правило, люди сидящие под этим самым Windows-ом, а UNIX видевшие пару раз у соседа-программера. В чем же причина такой "нелюбви" к самой распространенной операционной системе? Многие скажут, что проблема Windows в огромном количестве дырок, служащих для атаки хакеров на удаленные машины. Но ведь в UNIX-системах дырок ничуть не меньше, и неграмотно настроенный UNIX можно сравнить с решетом. Другое дело, что по настройке UNIX можно найти множество документации, грамотно объясняющей, как эти самые дыры залатать. Беда Windows в недостаточной документированности (не считать же справочную информацию, встроенную в Окна, ее заменителем). И разработчики упорно скрывают от пользователей самые интересные возможности операционной системы.

Очень немногие пользователи Windows знают, что есть возможность настроить практически все параметры оболочки. Причем эти настройки зачастую невозможно подкорректировать стандартными средствами и инструментами самой операционной системы. И большинство настроек Windows хранятся в реестре.

Реестр - база данных операционной системы, содержащая конфигурационные сведения. Физически вся информация реестра разбита на два файла: SYSTEM.DAT и USER.DAT, находящиеся в каталоге Windows. Реестры Windows 9х и NT частично различаются. Информация, приведенная в этом разделе по большей части относится к версии 9х и ME, если это не оговаривается отдельно. Но, все же, различия не настолько кардинальны и большая часть информации будет справедлива и для Windows NT.

В современном виде реестр впервые появляется в Windows 95 (в Windows 3.1 был только файл REG.DAT, содержащий информацию, которая сейчас расположена в разделе HKEY_CLASSES_ROOT). По замыслу Microsoft он должен был полностью заменить файлы ini, хранящие всю настроечную информацию. И по заверениям разработчиков файлы ini оставлены только для совместимости со старыми программами, ориентированными на более ранние версии операционной системы. В действительности это не совсем так и часть настроек по-прежнему хранится в этих файлах. По рекомендациям Microsoft, сторонние разработчики программного обеспечения должны хранить настроечную информацию также в реестре. Таким образом, в нем хранится информация по аппаратной конфигурации компьютера, различные настройки операционной системы и настройки программ, которые Вы устанавливаете.

Так почему все-таки произошел переход от ini файлов к реестру? Дело в том, что на эти файлы накладывается ряд серьезных ограничений, и главное из них состоит в том, что предельный размер такого файла составляет 64Кб. К тому же информация в них плохо структурирована в отличие от реестра.

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

ПРЕДУПРЕЖДЕНИЕ: НИКОГДА не удаляйте или не меняйте информацию в реестре, если Вы не уверены что это именно то, что нужно. В противном случае некорректное изменение данных может привести к сбоям в работе Windows и, в лучшем случае, информацию придется восстанавливать из резервной копии.

Надеюсь Вы прониклись идеей необходимости изучения этого интересного и важного вопроса. Да? Тогда в путь :).


Автозагрузка

Что скрывается в автозагрузке?

Ну, что, очередной раз решили включить компьютер и полазить в Интернет? Ну и как компьютер грузится? Медленно? И при этом жужжит винчестером как майский жук? Ничего удивительного. А что у вас грузится каждый раз при старте системы? Как не знаю?! Тогда пора просвещаться, а заодно проверим, нет ли где хитрых троянов, нагло ворующих пароли от Интернет.

Сперва выясним, как Windows узнает о программах, которые надо запустить во время старта системы. Всего есть три места, где хранятся эти сведения: папка Автозагрузка из меню "Пуск", файл win.ini и реестр. Ну, с Автозагрузкой все понятно - это наиболее простое и доступное место для запуска программ, а вот на win.ini и реестре стоит остановиться поподробнее.

Начнем, пожалуй, с файла. Хоть Microsoft и усиленно призывает разработчиков хранить все настройки в реестре, отказываясь от INI-файлов, уверяет пользователей в том, что эти файлы оставлены только для совместимости со старыми программами, тем не менее, сами продолжают ими пользоваться. Сам файл находится в каталоге, где установлена операционная система. Откройте его любым текстовым редактором. В самом начале файла вы увидите раздел [windows]. В этом разделе есть два параметра, отвечающие за автоматическую загрузку программ - load и run. Обычно они пустые, но если там есть какая-то запись, обязательно проверьте, что за программу она запускает, и не затесалось ли туда что-то вроде kernel16.exe :).

С win.ini все просто - там есть только одно интересующее нас в данный момент место. С реестром дело обстоит несколько сложнее. Там уже гораздо больше пространства, куда может спрятаться незваный гость. Итак, открываем реестр и начинаем поиски.

Сперва откройте раздел HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion. Найдите там подразделы Run, RunOnce, RunOnceEx, RunServices, RunServicesOnce. В этих разделах есть строковые ключи (некоторые разделы пустые), отвечающие за запуск программ. Название ключа может быть произвольным, а в качестве значения у них указывается запускаемая программа, если надо - то с параметрами. Обратите внимание на разделы, в названии которых присутствует "Once". Это разделы, в которых прописываются программы, запуск которых надо произвести всего один раз. Например, при установке новых программ некоторые из них прописывают туда ключи, указывающие на какие-нибудь настроечные модули, которые запускаются сразу после перезагрузки компьютера. Такие ключи после своего запуска автоматически удаляются.

Внимательно проверьте, что за программы у вас запускаются. Сразу после установки Windows в разделе Run присутствуют ключи с названиями internat.exe, LoadPowerProfile, ScanRegistry, SystemTray, TaskMonitor. В разделе RunServices - ключ LoadPowerProfile. Другие разделы пустые. Остальные ключи, которые могут присутствовать у вас в реестре, были добавлены другими установленными программами. Подумайте, все ли они нужны вам при загрузке и лишнее просто удалите. Это позволит значительно ускорить загрузку Windows.

Но это не единственный раздел, откуда запускаются программы. Перейдем к другой ветви, а именно к HKEY_CURRENT_USER и откроем там раздел SOFTWARE\Microsoft\Windows\CurrentVersion. Там есть только два подраздела, отвечающие за автозагрузку: Run и Runonce. Изначально они пустые, так что все записи там сделаны другими программами.

Следует помнить, что из реестра программы запускаются в первую очередь, затем из файла win.ini и самыми последними из "Автозагрузки". Так что если у вас стоит в автозагрузке антивирусный монитор, то это еще не факт, что он отловит запуск троянца, т.к. вирусы имеют гораздо меньший по размеру файл и грузятся не в пример быстрее.

Вот, пожалуй, и все об автоматически запускаемых в Windows программах. Если вы хотите ускорить загрузку вашего компьютера, то удалите все лишнее из перечисленных разделов. А когда вы устанавливаете какую-то подозрительную программу или запускаете неизвестный файл, проверьте, не добавилось ли там чего лишнего: уж больно много в последнее время развелось троянов и слишком широкие массы пользователей получили к ним доступ. Так что лишняя осторожность никогда не повредит.


Вычисляем троянов

Когда поселился незванный гость...

Бывают ситуации, когда на компьютере без ведома владельца появляются различные вредные программки, пытающиеся осуществлять действия, порой препятствующие нормальной работе и вредящие программному обеспечению. За примерами далеко ходить не надо: интернет просто кишит различными троянцами, некоторые сайты (содержащие порно-ресурсы, крак-хак-странички, халява) норовят поменять начальную страничку, а то и закинуть программу, которая будет вопреки всем вашим действиям постоянно восстанавливать ссылку на свой сайт. Эта тема действительно актуальна, стоит взглянуть хотя бы на вопросы различных форумов и, несмотря на наличие уже одной похожей статьи (Что скрывается в автозагрузке), я решил повторно поднять этот вопрос, но рассмотреть его именно с позиции способов загрузки таких неприятных "гостинцев".

Сперва коротенько пробегусь по самым тривиальным и, пожалуй, известным практически всем местам и методам загрузки программ.

Реестр

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run. Изначально содержит параметры:
- internat.exe - индикатор клавиатуры в System Tray;
- LoadPowerProfile - загрузка пользовательского профиля (общее для всех);
- ScanRegistry - ежедневная проверка и архивация реестра;
- SystemTray - загрузка System Tray;
- TaskMonitor - планировщик заданий (дома я его всегда стираю из автозагрузки, чтоб не занимал место в памяти).
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices:
- LoadPowerProfile - аналогичен параметру с таким же названием в разделе Run, только здесь уже грузится профиль конкретного пользователя (после того, как в систему вошли под чьим-то именем).

Остальные разделы должны быть пустыми! Полный их список вы сможете посмотреть в упомянутой выше статье. Остальные параметры в этих разделах были добавлены другими программами, установленными на вашем компьютере. Как правило, по названию параметра легко догадаться о том, какую программу он запускает. Если вы сомневаетесь в правомерности нахождения здесь какого-либо параметра, экспортируйте этот кусочек реестра в reg-файл, затем сотрите подозрительный параметр, перезагрузите компьютер и проанализируйте, что изменилось: не исчезла ли какая-нибудь полезная программа, которая до этого всегда грузилась, не пропала ли проблема, подтолкнувшая вас на эксперименты.

Следующий пункт нашей программы: файлы win.ini, system.ini. Проверьте раздел [windows], параметры run, load. Там должно быть пусто. Некоторые интернет-черви и троянцы используют именно эту лазейку, чтобы каждый раз стартовать при загрузке. Так, в system.ini изначально отсутствует раздел [windows], однако если создать его, то внутри него можно прописать параметр load=имя_файла и с помощью этого запустить нужную программу. И если о загрузке в win.ini знают многие, то system.ini частенько остается за кадром, чем и пользуются различные троянские программы. Один раз ради эксперимента я заразил свой компьютер каким-то из этих вирусов (имя сейчас я вспомнить не могу), так он прописал свою загрузку во всех разделах реестра и файлах win.ini и system.ini. Так что если вы нашли где-то одну запись, не успокаивайтесь на достигнутом, а проверьте все возможные места загрузки.

Это были самые простые и общеизвестные способы загрузки программ, пора перейти к нетривиальным.

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

Следующий способ - это не совсем автозагрузка, но некоторые вирусы используют его, чтобы незаметно запускаться на компьютере. В разделе HKEY_CLASSES_ROOT\exefile\shell\open\command в параметре (По умолчанию) стоит команда обработки ехе-файлов. Там должно быть "%1" %*, но возможно запускать здесь какую-то программу, передавая ей в качестве параметра ехе-файл, который надо запустить. Программа запустит его, а затем выполнит свою вредоносную миссию.

Конечно, описанные способы весьма редки, но если не удается найти виновника проблем в других местах, то надо проконтролировать и эти возможности.

Теперь хотелось бы описать действительно редкие, но и наиболее тяжело идентифицируемые способы загрузки программ. Эта информация была почерпнута из журнала Хакер № 11.01. Эти способы загрузки были найдены при разработке известного трояна Donald Dick.

Для операционных систем Windows 9x возможно загружать программу с помощью драйвера VxD. Полный список загружаемых драйверов находится в разделе HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD. В Windows NT/2000 нет VxD драйверов, но в разделе HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SessionManager в параметре BootExecute можно прописать программу, которая будет грузиться еще до загрузки графической оболочки и сервисов. Есть и более хитрые способы, но они еще более экзотические. Вызывает серьезные сомнения возможность отловить "диверсантов", загружаемых такими способами, вручную. Лучше доверить это специалистам, то есть AVP, DrWeb и другим антивирусам, так как этими способами грузятся только их непосредственные клиенты.

Конечно, написанное выше, не охватывает АБСОЛЮТНО всех способов автозагрузки, но 95% перекрывает наверняка. По крайней мере, большинство возникающих по этой теме вопросов статья должна разрешить. Главное, не бойтесь думать и экспериментировать, и все у вас получится.


Запрет запуска программ

Запрещение запуска программ

Материалы этой статьи, я думаю, очень пригодятся начальникам, которым надо быть твердо уверенным, что их подчиненные на компьютере работают только с нужными программами, а не гоняют в игрушки, когда этого никто не видит. Так что НИЗАЧТО не показывайте им ее :). Также она будет весьма интересна многим админам. А если у Вас на компьютере работает маленький ребенок, который норовит запустить format c:, то эта статья точно для Вас.

Знаете ли Вы, что Windows позволяет запретить запуск всех программ, кроме разрешенных в специальном списке? А это действительно так, и порой эта возможность бывает очень полезна.

Итак, для ограничения запускаемых программ надо открыть раздел HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVerson\Policies\Explorer реестра и создать там ключ RestrictRun типа DWORD со значением 0х00000001. Затем тут же надо создать подраздел с аналогичным именем и в нем перечислить список РАЗРЕШЕННЫХ к запуску программ. Для этого заходим в раздел и создаем для каждой программы строковый ключ с названием "1" (без кавычек) - для первой разрешенной программы, "2" - для второй и т.д. в качестве значений которых надо указать имена файлов разрешенных к запуску программ. Файлы должны быть с расширением, путь указывать не обязательно. Например, Word.exe, Excel.exe ...

Не забудьте указать файл Regedit.exe, иначе Вы сами не сможете больше запустить редактор реестра :). Если на компьютере есть несколько пользователей, то это не страшно: можно зайти под другим именем и оттуда изменить записи реестра, но если пользователь один - это может составить серьезную проблему. Спасти в такой ситуации может только создание файла с расширением REG, в котором будут отменены настройки. Чтобы снять ограничения надо установить значение ключа RestrictRun в ноль или удалить его. С помощью REG-файла удалить ключ невозможно, а вот установить его в 0 не составит труда. Вот пример такого файла:

REGEDIT4

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"RestrictRun"=dword:00000000

Давайте разберем его подробнее. В первой строке должна обязательно присутствовать строка REGEDIT4, после нее должна быть пустая строка, а затем идут записи реестра. В квадратных скобках указывается раздел реестра, а под ним перечисляются ключи, которые в него входят: имя ключа в кавычках и после знака "=" его значение.

Можно, конечно, воспользоваться и версией редактора реестра под DOS.

Все эти настройки вступают в силу только после перезагрузки компьютера.

Чтобы окончательно заблокировать систему от постороннего вмешательства можно запретить запуск пользователем редактора реестра. Для этого надо в разделе HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVerson\Policies\System добавить ключ DisableRegistryTools со значением 0х00000001. Запуск редактора реестра будет запрещен, однако останется возможность вносит изменения с помощью программного обеспечения сторонних разработчиков и с помощью REG-файлов, как описано выше.

Главное, при использовании материалов этой статьи на практике, быть внимательными и не ограничить запуск программ настолько, что потом самим не удастся ничего сделать.


Идеально защищенная система

Алексей

Сразу хочу сказать, что такой не бывает. Но, тем не менее, сейчас подскажу вам свое скромное мнение как достичь относительного спокойствия, относительно тех данных, что у вас хранятся. Речь пойдет не о сетевой, а о локальной безопасности на платформе Windows. Какая именно Windows не важно, уверяю вас (ну конечно, исключая Windows 3.1). Почему? Потому что ломать ваши пароли на XP или Windows 2000 (а в 9-x это не имеет смысла), разумеется, черные пиджаки не будут. И конкуренты тоже. Черные пиджаки, тупо снимут винт и сделают себе полный доступ (это если у вас система NTFS), а конкуренты могут либо подкинуть инсайдера (внедренный сотрудник), либо программу шпиона (троян по нашему), либо опять таки тупо выкрасть винты. Я знаю случай когда темные людишки ровно за 9 минут выпилили кусок пола, поснимали винты с сервера и исчезли. Вариант с MS Windows альтернативный все таки есть, это встроенное шифрование данных (имеется в виду XP и 2000), но прикол весь в том, что шифрование все строится на уникальном ID пользователя, то есть при переустановке Windows вы хрен их потом раскриптуете. Тут вы можете со мной спорить, или доказывать что-то, и я вас не буду переубеждать, я встроенным шифрованием никогда не пользовался и знания имею лишь поверхностные. Итак собственно мои соображения по этому поводу.

Политика безопасности начинается с самого начала установки Windows. Перво-наперво сделайте низкоуровневое форматирование винчестера перед установкой. Так как на винте могут остаться ваши предыдущие грешки, которые легко поднимаются (например программой Easy recovery).

Теперь, после установки Windows, создаем диск в памяти и переносим все темпа на него. Зачем это нужно? Во время открытия любого архива, при любой инсталляции, и даже при получении почты , Windows записывает файлы во временные папки. Поэтому оттуда можно поднять очччень много всего интересного. А при размещении виртуального диска в планке памяти вашего компа, все темпа затереть очень просто - выключить компьютер. Поднять оттуда данные возможно, если сдампить память на специальном устройстве. Но для этого надо эту планку памяти забрать с собой, знать что на ней могут быть расположены какие то данные, и разумеется не умудриться включить компьютер, при этом все будет затерто (абсурд, если не читать эту статью до этого). Этим я думаю черные пиджаки заниматься не будут. Как это сделать? Качаем отсюда http://www.superspeed.com/ RAMDISK XP PRO (работает только под XP) либо с Microsoft Download программу RAMDISK (ограничение размера диска 32Mb). При использовании RAMDISK от Microsoft вы можете столкнуться с трудностями при распаковке архивов больше 32 Мб, а такие есть, разумеется. Поэтому советую RAMDISK XP PRO, или подобные программы ("RAMDRIVE" в поисковой строке Yandex). Если вы пытаетесь это сделать на уже установленной Windows, тогда обязательно, после переноса темпов, сделайте Wipe free space. Эта процедура забивает нулями все свободное место на диске, то есть после нее поднять что-либо что было до этого, уже невозможно. Для этого нам понадобиться программа PGP (Pretty Good Privacy). Взять соответственно на http://www.pgp.com/. Она же пригодиться для создания виртуального диска, для хранения всей информации, не предназначенной для чужих глаз (черных пиджаков, конкурентов, начальства, любовницы, etc). Подробнее в User Manual по PGP. Чем она лучше подобных программ (например Steganos Security Suite)? Первое - изначально она писалась как Freeware , исходники к ней доступны и сегодня. Это значит (несмотря на слухи), что никаких черных дыр для правительства в ней нет. Второе - PGP создает собственный драйвер клавиатуры, поэтому всякие keylogger-ы и шпионы пароль не перехватят. В третьих, даже окна для ввода пароля программа генерирует свои, чем это лучше объясню на примере - Есть программа DOP (Display of passwords) она показывает пароли скрытые звездочками, так вот в Steganos она пароли вскрывает, а PGP конечно же нет. В четвертых - ни разу я лично не находил в интернете, что существуют баги и дыры в PGP, речь идет о pgp-дисках. Когда-то была фишка с сообщениями через Outlook Express, но ее быстро залатали, а обновления выходят постоянно. Как совет - Pgp диск лучше создать один, но большой. Положить его не на системный винт и обозвать pagefile.sys. Теперь на него внимания мало кто обратит. Потому как файл подкачки можно создать на любом винте и любого размера.

Теоретически его взломать можно. Но сколько на это понадобиться времени? А это я вам скажу не год и не два и не пять. За это время информация безнадежно устареет (не для любовницы конечно).

Теперь защита от шпионов. Само собой это файервол. Какой именно выбирайте сами, я лично обеими руками за Outpost. Писали наши, цена смешная, работает 100%. Это защитит от троянов. Ну и конечно антивирус. Это опять на любителя, мой совет Symantec Norton Antivirus 2004.

Вот собственно и все. По сетевой безопасности, как-нибудь в другой раз...

С бесконечным уважением к Вам и черным пиджакам. Sertifikat0R.


Ограничение доступа к настройкам

Ограничение доступа к настройкам Windows

Приведенный в статье материал в равной степени относится как к Windows 9x, так и NT,2000. По крайней мере, большинство настроек работает в обоих операционных системах.

Ни для кого не секрет, что вопросам безопасности в Windows 9x уделено очень мало внимания. Любой пользователь может сделать с операционкой что угодно, изменить любые настройки оболочки. Если человек один работает за компьютером и к нему нет доступа посторонних, то такие проблемы перед пользователем не стоят. Зато на предприятиях, в компьютерных клубах, конторах это очень актуальный вопрос. Так, в бытность мою работы на заводе, к нам периодически для прохождения практики приходили студенты. И не было для них большей радости, чем так исковеркать оболочку Виндов, что потом нам нужна была масса времени для исправления их "художеств". Хотелось просто руки поотрывать застигнутому на месте преступления хулигану, но разве за всеми уследишь? Вот если бы в то время у меня была под руками такая статья...

Итак, здесь вы найдете информацию о том, как запретить доступ к настройкам различных параметров операционной системы, а именно: к настройкам сети, экрана, паролей, принтеров, системным настройкам.

С ограничением доступа к настройкам экрана хотелось бы сразу отправить вас к другой статье "Настройка свойств сети, оболочки Windows NT". Материал, относящийся к настройкам экрана, справедлив и для Windows 9x, а дублировать информацию не хотелось бы.

Ограничение доступа к настройкам сети.
Все ключи для настройки параметров расположены в разделе HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Network, имеют тип DWORD, значение 1 - ограничение установлено, 0 - нет. Если ключа с таким названием в разделе нет, значит, этот параметр не установлен.

NoNetSetup - при установке этого ключа диалог "Сеть" в Панели управления (он же свойства "Сетевого окружения") становится недоступным;
NoNetSetupIDPage - при установке этого ключа из диалога "Сеть" пропадает вкладка "Идентификация";
NoNetSetupSecurityPage - пропадает вкладка "Управление доступом" из диалога "Сеть".

Ограничение доступа к настройкам паролей.
Ключи хранятся в разделе HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System реестра, и, аналогично предыдущему пункту, имеют тип DWORD.

NoSecCPL - установка ключа в 1 приводит к тому, что диалог "Свойства: Пароли" из Панели управления, становится недоступным;
NoPwdPage - вкладка "Смена паролей" этого диалога становится недоступной;
NoAdminPage - вкладка "Удаленное администрирование" диалога становится недоступной;
NoProfilePage - вкладка "Профили пользователей" диалога, вот ведь неожиданность, тоже становится недоступной.

Ограничение доступа к настройкам принтеров.
Все ключи расположены в разделе HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer. Ну, про DWORD и единицу с нулем, я думаю, вы уже догадались :).

NoPrinterTabs - установка ключа скрывает некоторые вкладки в диалоге "Свойства: принтер";
NoDeletePrinter - как можно понять из названия, запрещает удалять установленные в системе принтеры;
NoAddPrinter - а этот ключ наоборот, запрещает добавлять новые принтеры.

Ограничение доступа к системным настройкам.
Ключи расположены в разделе HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System.

NoDevMgrPage - если присвоить этому ключу значение 1, то из диалога "Свойства: Система" исчезнет вкладка "Устройства";
NoConfigPage - скрывает вкладку "Профили оборудования" из диалога "Свойства: Система";
NoFileSysPage - этот ключ делает недоступным кнопку "Файловая система" на вкладке "Быстродействие";
NoVirtMemPage - при его установке делается недоступной кнопка "Виртуальная память" на вкладке "Быстродействие".

Эти настройки позволят вам обезопасить компьютер если не от внешних врагов, то, по крайней мере, от внутренних. Я думаю, любой системный администратор знает, что наибольший вред системе способны нанести не хакеры, пытающиеся проникнуть извне, а глупые действия пользователей, работающих на этом компьютере. Не даром главные заповеди админов "Не верь никому" и "Не пускай козла в огород" (Саня, спасибо за науку :)). Материал этой статьи, а также настройка меню "Пуск", позволит вам оградить ваш "огород" от нежелательных "гостей".


Скрываем информацию через баги в FAT32, NTFS и DOS-командах

Хотелось бы продолжить обсуждение довольно интересного вопроса, начатого в статье "Сокрытие информации". Конечно, архивировать файлы, шифровать их, менять название и расширение, записывать в системные каталоги - это все здорово. Но представьте себе возможность спрятать файлы в каталог, который вообще не видно в операционной системе. Скажете, что такое невозможно? И будете не правы! Точнее, с небольшой оговоркой - это невозможно в NTFS (об этом несколько ниже), а вот в FAT32 запросто.

Замечательная возможность создать невидимый каталог у нас появляется благодаря багам в FAT32 и DOS-овских командах. Скажу сразу: ошибки эти нашел отнюдь не я. Информация о них пролетала на просторах сети имени собаки одного из представителей сексуальных меньшинств (для тех, кто в танке: речь идет о ФИДО) и автора информации я уже не помню.

Итак, приступим. И поможет нам в этом команда mkdir, она же - md. Попробуйте перейти в корневой раздел диска и введите команду

mkdir ...\

(лучше всего для наших целей пользоваться FAR-ом, потому что придется периодически вводить команды из командной строки, а также необходимо иметь файловую оболочку, чтобы наблюдать все на экране).

На первый взгляд команда выполнилась успешно, однако никаких изменений в структуре каталогов не наблюдается. Так создалась папка или нет? Чтобы узнать об этом, введите команду

dir

Видите в списке каталогов странную папку с именем ".." (без кавычек) (Ctri+O чтобы выключить панели в FAR-e)? В корневом каталоге такой директории быть не может, потому что она указывает на каталог выше уровнем, а корневой каталог итак находится на самом верху структуры каталогов (зайдите в любой каталог и введите dir - там вы эту директорию увидите, что вполне логично). В результате нашей манипуляции мы получили каталог, который, вроде как и есть, но зато его не видят никакие файловые менеджеры, включая сам проводник (увидеть его могут только программы напрямую работающие с жестким диском, например DiskEdit). Вот сейчас нам для наглядности и понадобится FAR. Находясь в корневом каталоге введите команду

cd ...\

Каталог есть, но его не видно

Обратите внимание на скриншот: в правой панели у меня открыт каталог "C:\..", а в левой нет никакого намека на его наличие. Простым копированием перенести в него ничего не удастся. Для этих целей придется воспользоваться командой

copy path\to\source_file\filename.ext c:\...\filename.ext

Таким образом можно перенести все файлы, которые вы хотите спрятать в созданный нами каталог. Учтите, что при работе с ними есть некоторые ограничения. Так, из этого каталога нельзя запускать программы, так как операционная система считает что такого каталога просто не существует, а следовательно и запустить оттуда ничего нельзя. Чтобы достать файлы из "невидимой" директории придется опять воспользоваться командой copy и скопировать их в любой видимый каталог. Удалить файлы оттуда тоже нельзя. Для этого придется воспользоваться командой

rmdir ...\ /S

Ключ /S указывает, что надо удалить каталог со всеми вложенными подкаталогами и файлами.

Вот собственно и все, что может потребоваться при работе с файлами в невидимом каталоге. А ведь внутри него можно создать произвольное дерево каталогов (опять-таки только DOS-командами) и спрятать там что угодно. Выдать вас может только несоответствие между полным объемом диска, свободным объемом и занятым. Поэтому прятать так коллекцию фильмов от профессионального взгляда все-таки бесполезно. А вот маленькие объемы информации запросто могут остаться незамеченными.

Все описанное выше пройдет только в FAT32. NTFS, при попытке создания такого каталога выдаст: "Синтаксическая ошибка в имени файла, имени папки или метке тома". Но и тут не обошлось без своих "приколов". Так, команда

mkdir 111..\

создаст каталог с именем "111." (имя может быть любое, главное поставить в конце две точки и слеш). Все бы ничего, да вот только каталоги не могут заканчиваться на точку или пробел. Поэтому при попытке войти в него система выдаст ошибку. При этом работать с ним можно точно так же, как написано выше. А если еще этот каталог создать например в Windows\temp, то всегда можно попытаться отмазаться, что "система глючная, насоздавала непойми чего, сам удалить его не могу".

Используя эту возможность можно неплохо подшутить над товарищем. Создаете обычный текстовый файл на несколько гигабайт из одних нулей, запаковываете его в самораспаковывающийся архив (жмется он со страшной силой и после упаковки запросто влезет на дискету), пишите небольшой батничек, создающий невидимый каталог, копирующий с дискеты архив, распаковывающий его и переносящий в созданный каталог. После этого наблюдаете за удивленной миной товарища - "А чем это у меня забит весь винт? Вчера же было свободно 30 гигов...". Незнающего человека спасет только форматирование.

Вот собственно и все, что я хотел рассказать по данному вопросу. Думайте, экспериментируйте. Будут вопросы - спрашивайте, лучше на форуме :).


Сокрытие информации

Идея этой статьи и часть материалов были предложены Виталием Невзоровым (http://www.nevzorov.net/). Она долго доходила "до кондиции", много раз откладывалась, но все-таки была закончена. Конечно, охватить все просто невозможно, но некоторое направление указать, я думаю, удалось...

Вопросы защиты информации всегда стояли перед человечеством очень остро. Ведь информация - это власть и деньги. Поэтому люди стремятся запереть ценные данные под огромное количество надежных замков, зашифровать ее самыми криптостойкими шифрами. С появлением компьютеров львиная доля всех данных стала храниться именно на них. Раньше, когда ЭВМ были большими, занимали целые этажи различных НИИ и лабораторий и были уделом избранных, все было гораздо проще. Но теперь, когда персональные компьютеры появились буквально в каждом доме и ни одна организация не может без них обойтись, вопросы защиты информации принимают первоочередное значение. Появились даже специальные отделы и службы по обеспечению компьютерной безопасности. И не важно, что вы собираетесь защищать: технологию изготовления новейшего реактивного двигателя от конкурентов, "черную" кассу от налоговой или свежескачанную из Интернета порнушку от младшего братишки или родителей ;) - принципы защиты одни и те же.

В этой статье я не буду пытаться рассматривать вопросы запрещения доступа к компьютеру. Это отдельная очень серьезная и громадная тема для разговора, которой посвящены целые сайты. Да и далеко не всегда есть возможность ограничить доступ посторонних лиц к компьютеру. Рассказать хотелось бы о некоторых приемах, позволяющих спрятать информацию самыми простыми методами так, что далеко не каждый квалифицированный специалист сможет ее найти.

Сперва хотелось бы разграничить информацию на непосредственно сами данные и на скрытый запуск различных программ. И в первую очередь хотелось бы остановиться именно на данных.

Вначале надо осознать, что самая лучшая защита, это когда ищущий даже не догадывается о том, что что-то спрятано. Так что файл типа "financial documents.zip", будь он даже очень хорошо защищен паролями, может так сильно заинтересовать определенный круг специалистов, что его могут взломать либо, наняв специалистов, либо, поговорив с Вами так, что Вы и сами быстро вспомните пароль. Так что после архивирования документ переименовывается во что-нибудь нейтральное типа "nvidia", "sound32", "mem32", "sys32", "kbrd32" и т.п., изменяется расширение на dll и переносится в каталог Windows\System. Вы много знаете парней, которые с точностью могут сказать назначение каждой dll в Windows\System? Да туда кроме уж совсем на системе тронутых (типа меня) никто не лазит!

К сожалению, большинство архиваторов позволяют просматривать список файлов даже без знания пароля архива (насколько я знаю, только AIN не позволяет смотреть список файлов без пароля). Используйте двойную архивацию: архивируйте с паролем, затем архив вновь архивируйте с паролем - теперь никто не сможет так просто посмотреть список файлов.

Архиватор ZIP в начале архива всегда ставит "PK" как первые байты, наряду с изменением имени на DLL, поменяйте эти байты на "MZ" - теперь очень редкие программы смогут распознать этот файл как архив даже по внутренней структуре (к сожалению не все программы!).

По поводу программ для бухгалтерии - Вы ведете двойную бухгалтерию? У вас есть программа для этого и она поддерживает ее? Этого явно недостаточно! Ведь "там" сидят не дураки, с вами могут "поговорить" и вы расскажите все про нее и дадите пароли/логины для второй бухгалтерии... Вам надо иметь тройную! Вторая будет содержать лишь небольшие, но явные "ошибки", и есть большой шанс, что, найдя вторую бухгалтерию, никто не будет искать дальше, да и давить будет куда сложнее...

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

Сперва обратим свой взор на программы, просто шифрующие данные. Если взять любой файл с архивом, а затем еще зашифровать любой из этих программ (ссылки на которые я дам ниже), то файл превратится в абсолютно неудобоваримую штуку, распознать в которой какие-то данные будет под силу единицам (что, кстати, совершенно не факт). При шифровании применяются различные алгоритмы: одни более стойкие, другие менее. Важен итог - распознать в получившемся файле сам факт сокрытия данных практически невозможно, особенно в сочетании с комплексным применением других советов. Воспользоваться для этих целей можно следующими программами (вторая и четвертая ссылки у меня не заработали, но может быть вам повезет больше):

Figa 2.01w (478Kb) http://htmls.chat.ru/
Cryptext v3.3 (175Kb) ftp://ftp.funet.fi/pub/cript/utilities/file/cryptext.zip
Maybe Next Time 1.4 (360Kb) http://www.seekwood.com/pub/mnt.zip
Mozart 3.2 (64Kb) http://fox.free-hosting.lt/

Следующая программа для людей особо озабоченных в сокрытии различной информации. Небольшая утилита с названием S-Tools позволяет присоединять к графическим и музыкальным файлам другие файлы. Принцип ее работы основан на возможности добавлять дополнительную информацию к некоторым файлам (GIF, BMP, WAV). При этом происходит незначительное изменение цвета или звука, которое человеческий глаз или ухо просто не в состоянии заметить. На взгляд, две картинки ничем не отличаются одна от другой, но реально, к одной "приклеен" небольшой файлик и заметить это нет никакой возможности. Конечно, таким способом вам не удастся запихнуть в небольшую картинку базу данных на пару сотен мегабайт, но небольшой архивчик спрятать вполне реально.
ftp://ftp.kiae.su/pub/windows/crypto/s-tools4.zip
ftp://ftp.thur.de/pub/software/stegano/s-tools4.zip

Теперь хотелось бы рассмотреть вопрос скрытого запуска программ. Несколько небольших поучительных и забавных примеров поможет лучше понять, зачем вообще это нужно и как это делается.

Не так давно ко мне обратился один человек с вопросом: какой-то сайт посвященный халяве и заработку в сети постоянно менял домашнюю страницу в браузере на свою. Приятного в этом мало, а сталкиваться с этим приходится постоянно. Я даже написал небольшую статью о способах загрузки таких "паразитов" (Если поселился незванный гость...). Методы маскировки таких программ в системе там были затронуты совсем немного, а тут хотелось бы остановиться на этом подробнее. Так вот, найти программу, меняющую домашнюю страницу ему никак не удавалось. Когда он выслал мне экспортированный кусочек реестра с разделом Run, первое что бросилось в глаза - параметр winlogon, запускающий winlogon.js из каталога шрифтов Windows. В каталоге шрифтов никаких Ява-скриптов быть не может! Но если смотреть не очень внимательно, то вполне можно пропустить вроде бы системную программу, запускаемую из системного каталога. Причем, в FONTS пользователи заглядывают гораздо реже, чем в System. Отсюда мораль - программы, пытающиеся запуститься незаметно, стараются маскироваться под системные приложения, поэтому именно на них надо обращать внимание в первую очередь и тщательно разбираться что это за программа, откуда она запускается, что делает.

Вот еще один случай: в бытность работы своей на одном заводе несколько лет назад, наше бюро получило задание от начальства установить на компьютерах программу, логирующую все действия, людей работающих за ними. Начальству очень не хотелось, чтобы программисты в рабочее время играли в игрушки и занимались посторонними делами. Оно не могло понять, что игры - неотъемлемая часть работы любого программиста :). Для этих целей было взята программа StatWin, которая и сама по себе довольно неплохо шифруется в системе, а в сочетании с установкой на сетевом диске, да закапыванием автозапуска в самые дебри реестра, заметить ее аккуратную работу было очень сложно. И она тихо-мирно проработала несколько месяцев, пока дикая случайность не позволила ее обнаружить (подвела именно установка на сетевой диск). Я скромно умолчу о скандале, поднявшемся после этого, но начальство было очень опечалено последующими событиями :). Однако, любопытен сам факт того, что десятки программистов на протяжении нескольких месяцев не замечали тотальной слежки! А это далеко не обычные пользователи, которых обмануть гораздо легче.

А вот случай как обманули меня самого (вместе со всем бюро, где я работал). Один умелец установил на компьютер с доступом к интернет программу HookDump, ведущую логи по нажатию клавиш (благо на заводе царил полный бардак и все кому не лень имели доступ к этому компьютеру). В течение полугода он спокойно узнавал все пароли к заводскому логину в интернет и пользовался им без зазрения совести. Программа была установлена в каталог Windows, переименована в какое-то безобидное имя и запускалась при каждой загрузке компьютера через Win.ini. Опять-таки, только случайность позволила заметить работу программы и поймать нарушителя.

Уже после того, как вышла рассылка, анонсирующая статью, получил письмо с дополнительной информацией о способе, позволяющем незаметно для пользователя править реестр. Спасибо, Mike! Это лишнее свидетельство того, что выдумка человеческая просто безгранична и к любому делу надо подходить творчески :).
"А делается это так: в автозагрузке прописывается стандартный regedit, а ему в качестве параметра передается файлик, допустим, со стартовой странице ИЕ. Лично я в первый раз после 3-х кратной смены стартовой страницы минут 10 смотрел на список автозагрузки, в которой остался лишь трэй, раскладка клавы и регэдит, и думал: "Кто же?" (Согласен достаточно 5 секунд, но инерция мышления). Способ хорош тем, что сам регэдит и версия и контрольная сумма и путь остается родным, и я на все это посмотрел, и лишиь во вторую очередь обратил внимание на левый параметр."

Примерно аналогичными способами действуют и все трояны, клавиатурные шпионы и аналогичные им программы. Они шифруются под обычные системные приложения, запускаются из системных папок, умело прячут все "хвосты". Так что если вам надо запускать незаметно какую-то программу, то приведенные примеры вполне могут натолкнуть на какие-то идеи. Главное не бойтесь фантазировать, ну и глубокие знания функционирования системы вовсе не покажутся лишними.

"А как с этим бороться?" - спросите вы. Тяжело. Надо знать, какие утилиты запускаются на вашем компьютере, какие системные программы стартуют при каждой загрузке Windows и с подозрением относиться к каждому неизвестному приложению. Во имя Ctrl'a, Alt'a и святого Delete'a.


Установка Windows

Как установить Windows, или сделай это правильно...

В качестве темы для этой статьи я решил взять вопрос по установке Windows. Казалось бы, все здесь известно и уж поставить Винды сможет всякий, но вопрос не в том, чтобы их поставить, а в том, чтобы сделать это правильно. Да и в, казалось бы, давно изученном и отработанном процессе могут возникнуть свои подводные камни. Остановиться я решил на установке Windows 9x, т.к. W2000 все-таки больше используют уже "продвинутые пользователи" и без моих инструкций они вполне обойдутся, в крайнем случае, провести аналогию между установками этих операционных систем не сложно.

Начать хотелось бы с начала :), а именно, с подготовки к установке. При обычной переустановке Windows переформатировать диски не надо, так что два следующих абзаца относятся к счастливым обладателям новых дисков. При сбое Windows, когда вы хотите полностью переустановить операционную систему, достаточно удалить каталоги Windows, Program Files, RECYCLED (скрытый) и все файлы из корневого каталога (вам понадобится загрузочная дискета). Правда, при этом все установленные программы придется ставить заново, но, иногда, простая установка поверх существующей системы не дает результатов, поэтому приходится чем-то жертвовать.

Если вы приобрели новенький жесткий диск, то его надо предварительно разбить на логические диски (ну, это зависит от вашего желания) и отформатировать их. Для этого необходимо иметь загрузочную дискету, которую можно создать на компьютере с уже установленным Windows. Как разбивать диск на логические зависит от его объема и целей использования компьютера. Я бы порекомендовал оставить 2-3 Гб для системы и служебных программ, один логический диск под игрушки, диск под рабочие программы и один диск для резервного копирования важных данных и софта.

Так же можно изменить структуру уже однажды созданных логических дисков, но учтите, что если у вас была какая-то информация на дисках, то после переразбивки и форматирования она пропадет, так что подумайте лишний раз, а надо ли вам это? Итак, загружайтесь с созданной вами дискеты и вводите команду fdisk. Включайте поддержку больших дисков (при размере HDD больше 2 Гб). Если на HDD раньше были логические диски и разделы, но есть желание разбить их по-другому, то надо сперва удалить все логические диски, затем удалить дополнительный раздел и основной раздел. После этого надо создать основной раздел нужного размера (это у вас будет диск С:), все оставшееся место отвести под дополнительный раздел. В нем надо создать логические диски нужного размера. После окончания работы fdisk'a надо перезагрузить компьютер.

Иногда бывает надо установить метку для диска C:\. Сделать это можно как на этапе разбивки диска с помощью fdisk, так и во время форматирования.

Следующий этап - форматирование дисков. Для этого вводите команду "format c: /s" (/s - системный, т.е. на диск будут перенесены файлы io.sys, msdos.sys, command.com), "format d:" и т.д. На этом подготовительный этап можно считать законченным, теперь можно запускать непосредственно установку Windows.

На этом этапе особых сложностей возникнуть не должно, т.к. установка проходит почти полностью автоматически, но несколько хитростей все же есть. Установку выбирайте выборочную (масло масляное :)). Отключайте специальные возможности в обязательном порядке (конечно, если у вас нет нарушений двигательного аппарата, органов слуха или зрения). Вообще, посмотрите какие программы и компоненты устанавливаются, и уберите лишнее. Не бойтесь убрать что-то нужное, добавить это можно в любой момент. Так, я люблю сносить все, связанное с интернет, экранные заставки и кое-что еще. Дальнейший процесс установки в 95% пройдет гладко, но иногда бывают сбои. Если процесс установки застопорился на этапе копирования файлов, то, возможно, что у вас проблемы с компашкой. Попробуйте переписать дистрибутив на жесткий диск и запустить инсталляцию оттуда (если у вас много свободного места, то рекомендуется это сделать в любом случае: и инсталляция будет идти быстрее и при добавлении каких-то компонентов или драйверов не надо будет вставлять диск с Windows).

Еще возможен сбой при настройке оборудования: процесс установки может просто остановиться (зависнуть), начаться перезагрузка компьютера. Как правило, источником его может стать старая звуковая или сетевая карта, какое-то нестандартное оборудование. Если у вас такое произошло, отключите на время установки потенциально опасное оборудование, вы его установите после того, как Windows начнет нормально работать. Если и это не помогает, тогда отключите все кроме видео, жесткого диска и клавиатуры с мышкой (если устанавливаете с CD-ROMa, то его тоже желательно оставить :)).

Так же могут быть проблемы, если у вас в БИОСе стоит защита от вирусов (virus warning). Отключайте ее в любом случае - все равно от нее нет никакой пользы.

Итак, установка прошла успешно, Windows загрузился первый раз... Все? Нет! Пришла пора удалить все лишнее и настроить оптимальным образом.

Первое, что я делаю - это устанавливаю в свойствах "Корзины" пункт "Уничтожать файлы сразу после удаления, не помещая их в корзину". Очень дисциплинирует :). Зато не надо постоянно очищать корзину. Да и за несколько лет работы я всего пару раз пожалел о содеянном :). Конечно, это я делаю только дома. На работе такие вещи включать нельзя, потому что работа - есть работа.

Затем, можно удалить лишние файлы (но это уже вам решать, лишние ли они для вас). Удалите в каталоге Windows файлы *.txt, *.bmp, *.old, *.log, *.bak. Файлы bmp содержат фоновые рисунки рабочего стола, но лучше уж скачать из сети интересную картинку и поставить ее, чем пользоваться этим безобразием. Аналогично можно поступить с файлами скринсэйверов *.scr, лежащих в каталоге Windows\system. На всякий случай оставьте "Пустой экран.scr", т.к. это самый лучший хранитель экрана :). Скажите, а вы пользуетесь справкой Windows? Ну и как, помогает? Долой ее: стираете каталог help, высвободив таким образом несколько лишних мегабайт.

Неплохо бы убрать с рабочего стола лишние ярлыки (типа "Мои документы"), чтобы не загромождать место.

Осталось немного поковыряться в реестре и установку можно считать законченной. Так, например, мне жутко не нравится, что кто-нибудь может посмотреть список недавно открытых мною документов. Пункт "Избранное" в меню "Пуск" тоже явно лишний, лучше открывать сайты из окна браузера. Да и стандартным поиском Windows я не пользуюсь, но если очень захочется, его можно вызвать, нажав Win+F. Таким образом, надо убрать пункты "Документы", "Избранное" и "Поиск" из меню "Пуск". Как это сделать, уже было описано в одной из статей (Настройка меню кнопки "Пуск"). Дублировать информацию не хочется, так что кому интересно, загляните по ссылке.

Ну, вот собственно и все. Теперь можно приступать к установке остальных программ. А в заключение хотелось бы привести ссылки на несколько статей этого раздела, которые могут натолкнуть вас еще на какие-то идеи по настройке:

- ограничение запуска программ;
- настройка меню кнопки "Пуск";
- ограничение доступа к настройкам Windows.


Где и как Windows хранит информацию о Active Desktop

Автор: Tarasov Costja

Если включен Active Desktop, то Windows отображает в качестве рабочего стола HTML-страницу. Где же она хранится и каким образом она позволяет показывать такие специфические объекты, как веб-содержимое?

Эта страница (по крайней мере, в Windows Me) хранится по адресу %appdata%\Microsoft\Internet Explorer\Desktop.htt (где %appdata% - путь к папке Application Data на Вашем компьютере). Замечу, что в той же папке находится файл pattern.bmp, хранящий узор обычного рабочего стола.

Вот особенности этого файла:

В блоке HEAD присутствует тэг <BASE HREF="путь">, где путь - путь к файлу, использующемуся в качестве фона.

Для каждого элемента веб-содержимого есть такое определение:

<IFRAME id=4 MARGINWIDTH=0 MARGINHEIGHT=0 name="DeskMovrW" src="URL"
resizeable="XY"
subscribed_url="путь"
frameborder=0 style="BACKGROUND: transparent; position:absolute; LEFT:8; TOP:153;
WIDTH:326; HEIGHT:224; Z-INDEX:1008"> </IFRAME>

Поясню URL - URL к отображаемому элементу; путь - путь к отображаемому элементу; frameborder -толщина рамки; resizeable - определяет возможности изменения размеров элемента; style - CSS-свойства фрейма; id -равен индексу объекта в списке элементов веб-содержимого.

Далее идет такое:

<OBJECT
classid="clsid:72267F6A-A6F9-11D0-BC94-00C04FB67863"
id=ActiveDesktopMover
STYLE="position:absolute; container:positioned; LEFT: 0;TOP: 0; WIDTH: 0; HEIGHT: 0;zIndex: 5"
>
<param name="Interval" value=500>
<param name="SizerID" value="ActiveDesktopMover">
<param name="Enabled" value="True">
<param name="TargetName" value="DeskMovr">
<param name="WindowOnly" value="False">
</OBJECT>

<OBJECT
    classid="clsid:72267F6A-A6F9-11D0-BC94-00C04FB67863"
    id=ActiveDesktopMoverW
    STYLE="position:absolute; container:positioned; LEFT: 0;TOP: 0; WIDTH: 0; HEIGHT: 0;zIndex 19"
>
<param name="Interval" value=500>
<param name="SizerID" value="ActiveDesktopMoverW">
<param name="Enabled" value="True">
<param name="TargetName" value="DeskMovrW">
<param name="WindowOnly" value="True">
</OBJECT>

Это вставка и настройка ActiveX объекта, обеспечивающего перемещение элементов веб-содержимого.

Примечание:
W в конце имени означает, что это Unicode версия.


Используем Active Desktop

Автор: Tarasov Costja

Пользуетесь ли Вы такой возможностью Рабочего стола - как Active Desktop? Скорее всего нет, а даже если он и включен, то только для того, чтобы выводить в качестве обоев рисунок в формате отличном от bmp. Если на Вашем рабочем столе так много значков, что новые уже не помещаются, то Вы можете использовать в качестве фона своего рабочего стола Web-страницу инструкции, по созданию которой даны ниже, тем самым загрузив работой Active Desktop по полной программе. Это не только позволит сделать работу за компьютером более комфортной, но и добавит больше интерактивности Рабочему столу, а также даст толчок Вашей фантазии в дальнейшем развитии этой темы.

Итак, начнем:

1. Запустите Ваш любимый текстовый редактор.

2. Создайте новый документ.

3. Вставьте в него приведенный ниже код.

<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<META NAME="AUTHOR" Content="Tarasov Costja">
<TITLE>WebDesk</TITLE>
<SCRIPT ID=clientEventHandlersVBS LANGUAGE=vbscript>
<!--

Dim Iid
Sub bd_onload
    Iid=setInterval("bd_onclick",interval)
    bd_onclick
End Sub
Sub bd_onhelp
    Dim hs, NL, x
    NL = Chr(13) & Chr(10)
    hs = "Quick Desktop v1.1" & NL
    hs = hs & Chr(9) & "Author: Tarasov Costja"
    hs = hs & Chr(9) & "Click me to change my background."
    x = MsgBox(hs, 0, "About QuickDesktop")
End Sub
Sub bd_onunload
    clearInterval Iid
End Sub
Sub bd_onclick
    Randomize
    Const PicPath = "file://path\"
    Const PicLast = LastIndex
    ReDim PP(PicLast)
    PP(0)="picture0"
    PP(1)="picture1"
    PP(Index)="pictureN"
    ...
    p=fix(rnd*PicLast*5)
    bd.background=PicPath+PP(p mod (PicLast+1))
    'bd.tracingsrc=PicPath+PP(p mod (PicLast+1))
End Sub

-->
</SCRIPT>
</HEAD>
<BODY id="bd" onclick="bd_onclick" onload="bd_onload"
onunload="bd_onunload" text="white" bgProperties=fixed leftMargin=0
topMargin =0 rightMargin=0 bottomMargin=0 vLink=fuchsia aLink=yellow
link=lime tracingsrc="file://DefaultBGpath" tracingopacity="50">
<TABLE>
  <TR>
    <TD width=175 height=200>
      <A href="PathSys" target=BROWSE>Системные</A><BR>
      <A href="PathUtil" target=BROWSE>Программы</A><BR>
      <A href="PathGames" target=BROWSE>Игры</A><BR>
    </TD>
    <TD width=600><IFRAME NAME="BROWSE" SRC="PathSys" height=200
width=615 allowTransparency>
      К сожалению ваш обозреватель не поддерживает плавающие
рамки.</IFRAME>
    </TD>
  </TR>
</TABLE>
</BODY>
</HTML>

4. Создайте папки "Системные", "Программы" и "Игры", а затем перенесите в них соответствующие ярлыки с рабочего стола.

5. Замените ниже перечисленные выделенные в коде слова нужными Вам значениями:

interval - на интервал смены обоев рабочего стола в миллисекундах (1 секунда = 1000 миллисекунд)
path - на путь к обоям рабочего стола
LastIndex - на количество используемых обоев МИНУС один
Picture0, Picture1, PictureN - на имя файла (с расширением) обоев для рабочего стола
Index - на индекс обоев
... - на строки вида PP(индекс_обоев) = "имя_файла_обоев_(с_расширением)"
DefaultBGpath - на путь к обоям по умолчанию
PathSys - на путь к папке раздела "системные"
PathUtil - на путь к папке раздела "программы"
PathGames - на путь к папке раздела "игры"

5. Сохраните файл под любым именем, но обязательно с расширением .htm.

6. Щелкните правой кнопкой по пустому пространству рабочего стола.

7. В появившемся контекстном меню выберите пункт "Свойства".

8. Перейдите на вкладку "Веб" и убедитесь, что установлен флажок "Отображать веб-содержимое на рабочем столе".

9. Перейдите на вкладку "Фон" и щелкните по кнопке "Обзор".

10. Выберите сохраненный в пункте 5 файл и нажмите кнопку "Открыть".

11. Нажмите кнопку "Ok" в окне "Свойства: Экран".

12. Щелкните правой кнопкой по пустому пространству рабочего стола.

13. В появившемся контекстном меню снимите галочку "Отображать значки рабочего стола".

Панель инструментов, созданная из папки содержащей папки разделов, может заменить панель инструментов "Рабочий стол"

Если Вы хотите хранить такие обои в той же папке, что и папки разделов, то файл обоев должен быть скрытым. Это предотвратит появление файла обоев в меню панели инструментов.

Для удобства добавления ярлыков в созданные нами папки можно создать ярлыки на папки разделов в папке SendTo.

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


Контекстное меню файлов и каталогов

Изменение контекстного меню файлов и каталогов

В статье о регистрации новых типов файлов (здесь) был рассмотрен вопрос о добавлении стандартного действия к файлам, которые не были определены в Windows. Если интересно, то рекомендую сначала прочесть ту статью, чтобы легче было воспринять изложенное ниже. А в этой статье пойдет вопрос о добавлении к контекстному меню ВСЕХ файлов и папок каких-то действий. Вы, наверное, обратили внимание на новые пункты, появляющиеся при установке WinRAR'a. А вот как их добавлять самому? Аналогичный вопрос мне попадался на каком-то форуме, вот я и решил написать небольшое руководство :). Интересно? Тогда поехали.

Конечно, можно попытаться добавлять к каждому расширению команду, но это сделать практически нереально (сколько всего править придется...). Но, есть способ лучше! В ветви HKEY_CLASSES_ROOT есть раздел с названием "*". Если в нем добавить пункт, то он будет применяться ко всем расширениям файлов. Давайте я попробую проиллюстрировать это на примере добавления пункта меню на архивацию файла. Открывайте раздел HKEY_CLASSES_ROOT\*\ и создавайте там подраздел shell (у меня его не было). В нем надо создать подраздел с каким-то уникальным именем - я назвал его arj. В параметре "По умолчанию" этого раздела надо ввести название пункта меню, которое будет у вас выводиться на экране. Задаем "Архивировать ARJ". Теперь в разделе arj надо создать раздел command, в параметре "По умолчанию" которого надо ввести выполняемую команду, т.е. "arj a arc %1". Здесь arc - имя нашего архива, а %1 - передает в качестве параметра имя файла, на котором мы кликнули мышкой. Конечно, здорово было бы создавать архив с именем выбранного файла, но я не знаю, как из передаваемого параметра вычленить это имя (оно передается вместе с путем, а это вызывает ошибку архиватора). Если кто-то знает, как это сделать и поделится информацией, я буду очень рад.

Для наглядности напишу, как это все будет выглядеть в reg-файле:

REGEDIT4

[HKEY_CLASSES_ROOT\*\shell\arj]
@="Архивировать ARJ"

[HKEY_CLASSES_ROOT\*\shell\arj\command]
@="arj a arc %1"

Что любопытно: если файл не зарегистрированного типа, то это действие будет использоваться для него по умолчанию. Т.е. вы можете щелкнуть по нему дважды мышкой, и файл будет автоматически заархивирован. Для зарегистрированных файлов этот пункт надо выбирать из контекстного меню. Таким образом можно сделать открытие незарегистрированных файлов в блокноте, достаточно ввести в параметр "По умолчанию" раздела command строку "notepad.exe %1". Теперь по даблклику такие файлы будут автоматически открываться в блокноте!

А как же быть с каталогами? Их мы тоже не обойдем стороной. Ищите в HKEY_CLASSES_ROOT раздел Folder. Последовательность действий для него аналогична описанному выше. Только, лучше если вы используете команду "arj a arc %1 -r" чтобы архивировалось с сохранением дерева вложенных каталогов.

Теперь вы сможете модифицировать это меню под себя так, как вам будет удобно. Правда, есть и некоторые ограничения: вы сможете добавлять пункты только в первый блок меню (они разделяются горизонтальной линией). Добавление в другие блоки видимо, возможно, но как это сделать я не нашел. Дело в том, что у внешних программ, добавляющих туда пункт меню, используется в качестве параметра "По умолчанию" код CLSID для модуля ActiveX. Эти пункты добавляются в подраздел shellex. Можете попробовать там покопаться, главное не забудьте предохраня... эээ, сохраняться! А если у вас что-то получится, напишите мне, я обязательно доработаю статью.

:).


Настройка меню "Пуск"

Настройка меню кнопки "Пуск"

Все мы, работая на компьютере, постоянно пользуемся меню, появляющемся при нажатии на кнопку "Пуск". Его вид стал привычен для всех пользователей. Но вот вопрос: удобно ли это меню? На мой взгляд, не очень. А для некоторых (к их числу без сомнения можно приписать всех системных администраторов) хотелось бы скрыть некоторые пункты меню от обычных пользователей, чтобы не было соблазна лазить, где не надо :). И что же делать в такой ситуации? Как же подогнать это меню под свои нужды? Итак, внемлите :), пора перекроить это меню по своему вкусу.

Я как-то сразу невзлюбил стандартный поиск файлов (предпочитаю для этих целей пользоваться FAR-ом), а если этот пункт меню мне не нужен, так зачем он будет мозолить глаза и занимать место? Надо его отключить. Открываем реестр и в разделе HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer прописываем ключ NoFind типа DWORD. Установите его значение равным 0х00000001, и после перезагрузки компьютера пункт меню "Найти" исчезнет. Для того чтобы он опять появился надо либо установить значение этого ключа равным 0х00000000 или полностью удалить ключ.

Пункт "Документы" тоже изрядно мешает, а потом, я не люблю, когда все кому ни лень могут посмотреть последние документы, с которыми я работал (особенно начальство). Долой его! Открываем HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer и пишем туда ключ NoRecentDocsMenu типа DWORD со значением 0х00000001. Аналогично предыдущему пункту, установка значения в 0 или удаление ключа приведет к появлению этого пункта при следующей перезагрузке. Чтобы очищать список недавно открытых документов каждый раз при выключении компьютера, добавьте ключ ClearRecentDocsOnExit со значением 0х00000001. А если Вы хотите, чтобы открываемые Вами документы не запоминались в этом списке, надо добавить ключ NoRecentDocsHistory со значением 0х0000001.

Еще один, на мой взгляд, бесполезный пункт меню - "Избранное". Открываем все тот же раздел HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer и добавляем ключ NoFavoritesMenu со значением 0х00000001. После перезагрузки "Избранное" пропадает из меню.

Следующие рекомендации позволят мудрому (и такие бывают :) админу обезопасить систему от неумелых действий глупых и любопытных юзеров. Использовать эти рекомендации на домашнем компьютере может только мазохист или человек, во всем любящий трудности.

Скрытие пунктов подменю из меню "Настройка". Открываем уже запомнившийся раздел реестра и добавляем ключ NoSetFolders, чтобы скрыть пункты "Панель управления" и "Принтеры". Установка этого ключа также удалит эти папки из окна "Мой компьютер". Ключ NoSetTaskbar скроет пункт "Панель задач и меню Пуск" из меню "Настройка". Ключ NoSetActiveDesktop скроет пункт "Рабочий стол Active Desktop", а ключ NoFolderOptions скроет "Свойства папки" меню "Настройка". Как Вы уже поняли, все эти ключи должны иметь значение 0х00000001.

Перейдем к пункту "Выполнить". Чтобы убрать его из меню достаточно прописать в реестре ключ NoRun со значением 0х00000001 и после перезагрузки пункт меню пропадет.

Если Вы работаете на компьютере один, то Вам явно ни к чему пункт меню "Завершение сеанса". К его удалению приводит запись в реестре ключа NoLogOff типа DWORD. Целесообразность использования следующего ключа вызывает сомнения, но для полноты обзора его нельзя не учесть: ключ NoClose запрещает выключение компьютера. Причем ни пункт меню "Завершение работы" ни аналогичная кнопка в окне, появляющемся по Ctrl+Alt+Del не сработают. Правда это относится только к стандартным средствам Windows. Специальные программы или утилиты (например, QuickStart или ShutDown) по-прежнему могут выключать компьютер.

Запретить контекстные меню в меню "Пуск" можно при помощи ключа NoChangeStartMenu, а запретить контекстное меню для панели задач можно ключом NoTrayContextMenu.

Пожалуй, в этот раздел можно отнести запрещение использования сеансов MS-DOS и однозадачного режима MS-DOS. Для этого надо открыть раздел HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\WinOldApp (если его нет, то надо этот раздел создать) и добавить туда ключ Disabled равный 0х00000001. Установка его в 0 или удаление опять разрешит сеансы MS-DOS.

Если Вы обратили внимание, все описанные настройки проводятся в ветви HKEY_CURRENT_USER. Если Вы читали статью о структуре реестра, то должны знать, что все настройки в этой ветви будут вступать в действие только для текущего пользователя. То есть, если на компьютере работает несколько человек под разными логинами, то все настройки будут справедливы только для пользователя, вводящего их. У остальных все останется по-старому.

Хватит скрывать и удалять, пора выводить и добавлять :). Приведенная ниже информация не совсем относится к реестру, но она относится к меню "Пуск" и позволяет сделать работу более удобной.

Давайте добавим Панель управления в меню Пуск, причем все значки в ней превратятся в пункты подменю. Это поможет облегчить и ускорить доступ к этим элементам. Для этого надо зайти в настройку Панели задач и меню "Пуск", перейти на вкладку "Настройка меню" и выбрать кнопку "Дополнительно". В правой части открывшегося окна надо создать папку Панель управления.{21EC2020-3AEA-1069-A2DD-08002B30309D} где значение до точки - имя папки, а после точки - ее расширение (фигурные скобки нужны обязательно!). Аналогично можно добавить подменю принтеры, добавив папку Принтеры.{2227A280-3AEA-1069-A2DE-08002B30309D}. Вообще говоря, эти папки можно добавить в любой каталог на жестком диске, но в меню Пуск они наиболее удобны и логичны.


Меню "Создать"

Добавление нового пункта в меню "Создать"

Сидел я тут недавно, ваял несколько страничек для сайта. Надо было создавать все файлы "с нуля", так что метод простого копирования и редактирования не проходил. Обычно я работаю в FARe, но в этот раз пришлось использовать компьютер, где его не было, и создавать все файлы в блокноте. Уж больно неудобное это дело - создавать кучу изначально однотипных файлов постоянно заново, и вспомнил я про возможность создания файлов средствами Windows. Обращали ли вы внимание на пункт контекстного меню "Создать", которое появляется, если щелкнуть на Рабочем столе или свободном месте открытой папки? Ну, конечно же, обращали, ведь именно так вы создаете новые каталоги и ярлыки к программам. А вот создавали вы что-нибудь еще (ведь там весьма впечатляющий список)? Сомневаюсь. А если и создавали, то весьма редко. А, тем не менее, это очень удобная функция. Жаль только, что там нет тех файлов, которые нам могут пригодиться. Так в чем проблема? Добавим сами те пункты меню для файлов, которые нам нужны.

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

Но начнем мы не с реестра (хотя и без него не обойдется), а с каталога Windows (ну, или где там он у вас установлен)... Надо найти там каталог ShellNew. Учтите, что он скрытый. Именно в нем хранятся заготовки для файлов, которые создаются с помощью контекстного меню. Если у вас установлен Microsoft Office, то вы увидите в этом каталоге файлы-заготовки для Word и Excel, и какие-то еще файлы. Но сейчас они нас не интересуют. Создайте в нем файл, например index.html. Воспользоваться для этих целей лучше всего FARом (я очень люблю этот файловый менеджер, поэтому и всячески стараюсь пропагандировать его в народных массах). Внутри него напишите заготовку вашей странички. Лично я написал следующее:

<html>

<head>
<title></title>
</head>

<body>
</body>

</head>

хотя, вы можете добавить сюда что-то еще по вашему вкусу (например, тэги meta, какое-то оформление в body).

Сохраняйте файл. Теперь настала очередь реестра (как же без него :)). Если вы помните, то в статье Регистрация расширений файлов с помощью реестра Windows был описан способ этой самой регистрации. Приведенный там материал будет небесполезен для понимания сущности производимых манипуляций, хотя можно обойтись и без него. Итак, ищем раздел HKEY_CLASSES_ROOT\.htm и HKEY_CLASSES_ROOT\.html и в них создаем разделы ShellNew. В разделе ShellNew создаем строковый параметр FileName в качестве значения которого надо указать имя созданного нами шаблона. Вот собственно и все. Осталось только перезагрузить компьютер и любоваться новым пунктом меню.

Кстати, файл будет создаваться изначально с тем именем, которое указано в параметре "По умолчанию" раздела HKEY_CLASSES_ROOT\htmlfile (какой это будет раздел для других расширений можно увидеть в параметре "По умолчанию" раздела HKEY_CLASSES_ROOT\.XXX, где ХХХ - расширение файла).

Вообще-то, "все" я сказал рановато. Ведь вовсе не обязательно создавать шаблон файла. Он может быть и пустым, но тогда вместо параметра FileName надо создать пустой строковый параметр NullFile.

А как быть, если раздела с нужным вам расширением нет в HKEY_CLASSES_ROOT? Вот тут-то вам и пригодится ссылочка на статью, приведенная выше. Сперва вы регистрируете это расширение в Windows, а затем уже проделываете все нехитрые манипуляции, описанные в этой статье.

Ну, как удалить пункт меню из "Создать", я думаю, объяснять не стоит. Все довольно просто и разобраться не составит труда.

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


Надпись "Пуск" ("Start")

Смена надписи на кнопке "Пуск" ("Start")

Статья взята на сайте http://www.regedit.com/ (Change the Start Button Text)
Перевел Владимир Мельник vmelnick@psi.kiev.ua

В ходе каждодневной работы с Windows одним из самых часто используемых элементов без сомнения является кнопка "Пуск" ("Start"). Она ежедневно мозолит нам глаза, надоедая своим постоянством. И я уверен, что хоть раз к вам приходила мысль: "Как бы тебя изменить!". К сожалению, смена текста и рисунка на кнопке не предусмотрены в операционной системе и миллионам пользователей приходится работать с тем, что жестко заложено программистами Майкрософта. С таким положением вещей надо бороться! Существуют программы, позволяющие поменять эту надпись и рисунок (одной из наиболее известных и удобных, на мой взгляд, является Ресторатор). Но зачем качать из Интернета лишние мегабайты, если все изменения можно легко сделать вручную. Итак, в статье речь пойдет о том, как заменить надпись на кнопке. Можно вводить любую надпись до 5 символов длинной.

Для начала вам понадобится HEX редактор, любой из доступных (напр. FAR). Файл, в котором будут производиться изменения, называется explorer.exe. Он находится в папке C:\Windows для Windows 9x и С:\Winnt для Windows 2000/NT. На всякий случай (обязательно!) сделайте резервную копию этого файла. Откройте explorer.exe в HEX редакторе.

Вам нужно найти слово "Start" ("Пуск"). Хотя вы там увидите это слово много раз, только одно из них отвечает за надпись на кнопке. Воспользуйтесь функцией Поиск, чтобы найти строки, содержащие Start с соответствующими 53 00 74 00 61 00 72 00 74. Также используйте значения offset, чтобы найти верную строку:

Windows 98
Offset: 0x00028D6E - 0x00028D76

Windows NT4
Offset: 0x00028BEE - 0x00028BF6

Windows ME
Offset: 0x00033DDE - 0x00033DE6

Windows 2000
Offset: 0x0003860E - 0x00038616

В результате вы увидите нечто подобное:

Когда вы определили строку, вы можете изменить Start на другие символы. Необходимо использовать соответствующее число символов. Если их меньше, замените недостающие пробелами.

Сохраните файл в Windows директории под другим именем, напр. Explorer.new. Убедитесь, что у вас сохранилась оригинальная копия (желательно в другой папке).

Следующий шаг зависит от вашей операционной системы:

Windows 9x
Загрузитесь в DOS (Для Windows Me используйте загрузочную дискету), зайдите в директорию Windows и переименуйте отредактированный файл в explorer.exe. Перезагрузите компьютер.

Windows NT/2000
Сначала понадобится отключить защиту файлов, чтобы измененные файлы не перезаписывались сверху оригинальными версиями. Закройте все приложения и откройте окно с командной строкой, перейдите обратно в графическую оболочку и откройте Task Manager. Найдите explorer.exe и завершите процесс. Затем обратно в командную строку и откройте директорию WINNT и переименуйте explorer.exe в explorer.old. А вновь отредактированный файл сделайте Task Manager. В вашем Task Manager запустите Новую Задачу explorer.exe.

Если все сделали правильно, вы увидите вашу кнопку с новой надписью.

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


Настройка оболочки, часть 1

Изменение различных установок Рабочего стола и оболочки

В написании этой статьи мне очень помогла крайне полезная книга: Г. Борн "Реестр Windows 98: Пер. с англ." - СПб.: BHV - Санкт-Петербург, 2000. Настоятельно рекомендую ее почитать :).

А пойдет речь в этой статье о настройках различных установок Рабочего стола и оболочки Winsows. Часть этих настроек можно изменить из различных диалогов (например, "Свойства: Экран"), но, "это не наши методы" :), ручками изменять все гораздо интереснее, да и, в любом случае, знать, где хранятся эти настройки, будет не лишним.

И начнем, пожалуй, с размеров элементов экрана в Windows (иконки, шрифты, рамки, меню, полосы прокрутки). Соответствующие параметры хранятся в разделе HKEY_CURRENT_USER\Control Panel\desktop\WindowMetrics реестра. В таблице приведены некоторые параметры, содержащиеся в этом разделе.

Имя параметра | Описание
BorderWidth | Ширина рамки окна
CaptionFont | Шрифт заголовка
CaptionHeight | Высота шрифта заголовка
CaptionWidth | Ширина заголовка
IconFont | Шрифт названия иконки
IconSpacing | Горизонтальный интервал между иконками
IconSpacingFactor | Фактор, используемый для вычисления положения иконок
IconVerticalSpacing | Вертикальный интервал между значками
MenuFont | Параметры шрифта (гарнитура, имя шрифта, и т.д.), используемого в строках меню
MenuHeight | Высота ячейки символа, используемого в строке меню
MenuWidth | Ширина ячейки символа, используемого в строке меню
MessageFont | Шрифт, используемый в сообщениях
ScrollHeight | Высота горизонтальной полосы прокрутки
ScrollWidth | Ширина вертикальной полосы прокрутки
ShellIconBPP | Число цветов (битов на точку), используемых для иконок
ShellIconSize | Размер иконок на Рабочем столе (и в проводнике в режиме "Крупные значки")
SmCaptionFont | Шрифт в маленьких заголовках
SmCaptionHeight | Высота ячейки символа в маленьком заголовке
SmCaptionWidth | Ширина ячейки символа в маленьком заголовке
StatusFont | Шрифт, используемый в панели состояния окна

Каждый ключ, содержащий данные для шрифта, состоит из последовательности байтов, соответствующих имени шрифта и нескольким флагам, определяющим тип шрифта, типы начертания (полужирный, курсив) и т.д. Эти параметры можно изменять на вкладке "Оформление" диалога "Свойства: Экран", что гораздо удобнее, хотя, кому как больше нравится :).

На вкладке "Эффекты" этого же диалога вы можете настроить параметры отображения некоторых графических элементов операционной системы. Их установка повлияет следующим образом:

Использовать крупные значки приводит к отображению всех значков рабочего стола размером 48х48 точек. При этом в ключ ShellIconSize записывается значение 48, и изменяются значения параметров, отвечающих за расположение значков.
Отображать полноцветные значки изменяет параметр реестра ShellIconBPP. Если флажок установлен, то ключ содержит число используемых цветов в строке ("4" для 16 цветов, "16" для 16-бит или "24" для true color - значение зависит от текущего цветового разрешения графического адаптера). Сброс этого флажка устанавливает значение "4".
Использовать видеоэффекты при выводе меню, окон и списков устанавливает или сбрасывает бит 1 параметра UserPreferenceMask в разделе HKEY_CURRENT_USER\Control Panel\desktop (подробнее об этом будет в одной из следующих статей).
Сглаживать неровности экранных шрифтов изменяет значение параметра FontSmoothing в разделе HKEY_CURRENT_USER\Control Panel\desktop на "0" или "1".
Отображать содержимое окна при его перетаскивании изменяет значение параметра DragFullWindows в разделе HKEY_CURRENT_USER\Control Panel\desktop на "0" или "1".

Продолжение следует... :).


Настройка оболочки, часть 2

Изменение различных установок Рабочего стола и оболочки

В написании этой статьи мне очень помогла крайне полезная книга: Г. Борн "Реестр Windows 98: Пер. с англ." - СПб.: BHV - Санкт-Петербург, 2000. Настоятельно рекомендую ее почитать :).

Продолжаем разговор о различных настройках графических и видеоэффектов оболочки и Рабочего стола Windows, начатый в предыдущей статье.

И в этот раз речь пойдет о настройках различных видеоэффектов. Если у вас стоит медленная машина, то применение различных видеоэффектов может серьезно замедлить скорость ее работы, что совершенно не приемлемо. Конечно, если у вас мощный компьютер, ориентированный на работу с 3D графикой, то не стоит затрачивать усилий, на их отключение, всем остальным информацию не помешает принять к сведению.

Windows 98 использует видеоэффект при сворачивании окна - когда окно исчезает, пользователь видит последовательность сжимающихся окон. Это иногда вызывает проблемы на машинах с медленными видеокартами. Чтобы запретить этот видеоэффект надо добавить ключ MinAnimate="0" в раздел HKEY_CURRENT_USER\Control Panel\desktop\WindowMetrics.

Многие настройки видеоэффектов находятся в разделе HKEY_CURRENT_USER\Control Panel\desktop в параметре UserPreferenceMask. Сперва я приведу таблицу, расшифровывающую эти настройки, а потом объясню, как это все устанавливать:

Бит | Описание
0 | Если этот бит установлен (равен 1), то каждый элемент, находящийся под указателем мыши, будет автоматически становиться активным.
1 | Управляет видеоэффектом всплывающего меню. Соответствует флажку "Использовать видеоэффекты при выводе меню, окон и списков" на вкладке "Эффекты" диалога "Свойства: Экран".
2 | Управляет видеоэффектом всплывающего комбинированного списка (это такое поле, в которое можно заводить текст вручную или выбирать его из списка, появляющегося при щелчке на кнопке со стрелочкой, справа от поля ввода).
3 | Управляет видеоэффектом всплывающего списка.
4 | Управляет отображением версии Windows на рабочем столе.
5 | Управляет подчеркиванием символов быстрых клавиш в меню.
6 | Действие аналогично нулевому биту.
7 | Управляет появлением всплывающих подсказок при наведении указателя мыши на объект и другими эффектами, связанными с движением указателя мыши.

Теперь немного о том, как выставлять значения этого параметра. Так, например, у меня этот параметр имеет значение "be 00 00 00". Если перевести "be" из шестнадцатеричного формата в двоичный (проще всего воспользоваться стандартным Windows-овским калькулятором, конечно, если вы не можете сделать это в уме :), то получается 10111110. Т.е. нулевой и шестой биты выключены (если кто не знает, в двоичной системе биты считаются справа, налево начиная с 0). Таким образом, чтобы изменить настройки, получите нужное вам число в двоичной системе, переведите ее в шестнадцатеричную и подставьте в качестве значения параметра. Для вступления настроек в действие надо перезагрузить компьютер.

Еще одним параметром настройки оболочки, правда, никак не связанным с графикой, о котором хотелось бы упомянуть - подача звукового сигнала при ошибке. В Windows есть звуковые схемы, в которых на сообщения об ошибках, вопросы, восклицания, установлены свои звуки. Но как быть, если нет звуковой карты - частое явление в офисных компьютерах. Если добавить в реестр параметр Beep в раздел HKEY_CURRENT_USER\Control Panel\desktop, который может иметь значения "Yes" или "No", то при значении "Yes" Windows будет подавать звуковой сигнал об ошибке на спикер компьютера.

Цвета элементов Windows.

Можно изменять цвета различных элементов Windows (таких как кнопки, текст на кнопках, неактивные заголовки, активные заголовки и всплывающие подсказки) на вкладке "Оформление" диалога "Свойства: Экран". Названия элементов показаны в списке "Элемент", их цвет можно изменять при помощи кнопки "Цвет", расположенной справа от поля ввода. Цвета, определенные для каждого элемента Windows, хранятся как параметры в разделе HKEY_CURRENT_USER\Control Panel\Colors. Каждому элементу соответствует строковый параметр с созвучным названием (ActiveBorder, ActiveTitle, ButtonFace, GrayText и т.д.), в котором хранится строка, определяющая цвет. Значения цветов записываются в строках, состоящих из трех чисел в десятичной записи, разделенных пробелами. Каждое число может меняться от 0 до 255, т.е. от 0 до 100 процентов интенсивности базового цвета. Первая цифра соответствует красному цвету, вторая - зеленому, третья - синему.

Тема эта очень обширна и на этом не заканчивается, так что...
... продолжение следует.


Настройка оболочки, часть 3

Изменение различных установок Рабочего стола и оболочки

Это уже третья статья из серии настроек графических и видеоэффектов оболочки и Рабочего стола Windows, начатой в статье здесь.

В этот раз речь пойдет о параметрах мыши и указателей и о настройках фона Рабочего стола.

Вкладка "Указатели" диалога "Свойства: Мышь" в панели управления, позволяет определять различные схемы курсоров. Схемы указателей мыши определяют символы, соответствующие определенным режимам, таким как "Основной режим", "Выбор справки", "Система недоступна" и "Выделение текста". Каждая схема состоит из 14 разных указателей для стандартных режимов, но можно переопределить символ указателя для каждого режима и сохранить это в схеме под уникальным именем.

Схемы указателей хранятся в разделе HKEY_CURRENT_USER\Control Panel\Cursors\Schemes. Каждый параметр внутри этого раздела состоит из имени схемы, определяемого пользователем, и строкового значения, состоящего из 14 пунктов. Пункты разделены запятыми и соответствуют символу указателя. Пункт определяет путь к файлу указателя (CUR или ANI). Если используется стандартное значение, то соответствующий пункт будет пустым. Стандартная схема содержится в параметре "Windows Standart", а имя активной схемы находится в параметре "По умолчанию".

Большая часть других параметров мыши хранится в разделе HKEY_CURRENT_USER\Control Panel\Mouse. Для удобства они сведены в таблицу:

Имя параметра | Описание
MouseSpeed | Определяет то, каким образом движение мыши преобразуется в движение указателей. Коэффициент преобразования не всегда равен 1. Когда шаг мыши достигает значения одного из пороговых параметров (MouseThreshold1 и MouseThreshold2), Windows увеличивает скорость указателя. Принимает значения: 0 Не увеличивать скорость указателя 1 При достижении значения параметра MouseThreshold1 удваивать скорость указателя 2 При достижении значения параметра MouseThreshold1 удваивать скорость указателя; При достижении значения параметра MouseThreshold2 учетверять скорость указателя
MouseThreshold1 | Определяет пороговое значение (в пикселях) смещения мыши между двумя прерываниями мыши
MouseThreshold2 | Определяет второе пороговое значение
SwapMouseButtons | Принимает следующие значения: 0 Использовать исходную схему кнопок (для правой руки) 1 Поменять кнопки местами (для левши)
DoubleClickSpeed | Определяет максимальный интервал в миллисекундах между двумя щелчками кнопки мыши, при которых они воспринимаются как двойной щелчок
DoubleClickHeight, DoubleClickWidth | Определяет максимальное смещение мыши между двумя щелчками. Если он превышает максимальные значения, то два щелчка не будет восприниматься как двойной клик.

Настройки фона

Ну, фон настроить не проблема с помощью свойств экрана, но вот где эти параметры находятся в реестре? Нет ничего проще: открывайте раздел HKEY_CURRENT_USER\Control Panel\Desktop и давайте смотреть что там есть.

Pattern - запись присутствует, когда в качестве обоев выбран узор. Узор определяется как строка, содержащая 8 байтов. Эта строка определяет фрагмент узора 8х8 точек.
TileWallpaper - параметр определяет, размножен ли рисунок обоев (значение 1) или он находится в центре (0). Если рисунок в центре, то к остальной области применяется выбранный узор.
Wallpaper - как нетрудно догадаться, параметр содержит путь к файлу рисунка обоев. Картинка должна быть в формате gif, jpg, или bmp. Причем хранить картинку в bmp лучше - будет меньше тормозить.
WallpaperStyle - данный параметр в Windows95 отсутствует. Если его значение равно 2, то обои будут растянуты на весь рабочий стол.

Этой статьей я бы хотел закончить цикл об изменении различных установок и настроек Рабочего стола и оболочки Windows. Конечно, тема не исчерпана: есть еще настройки для режима Active Desktop, но это уже отдельная тема и статья об этом еще появится на сайте. А пока... продолжения не будет :).


Регистрация типов файлов

Регистрация расширений файлов с помощью реестра Windows

На написание этой статьи меня подвигло одно небольшое происшествие: одна из женщин на работе обратилась ко мне с вопросом - у нее значок Вордовского файла отображался не как для этих файлов, а как для незарегистрированного типа. Попробовал зарегистрировать его, используя пункт контекстного меню "Открыть с помощью", но файл открылся, а значок не изменился. Был конец рабочего дня, поэтому я протормозил пару минут, пока не догадался посмотреть расширение файла. Его не было :) - это и не позволяло ассоциировать файл с приложением. Вот я и решил написать статью о регистрации расширений файлов. Что это дает? Вы можете двойным кликом открыть файл с помощью ассоциированного приложения, добавить на него дополнительные команды (например, печать, быстрый просмотр и т.п.). Для этого вовсе не обязательно лезть в реестр - можно все сделать с помощью того же меню "Открыть с помощью..." или проводника, но это не всегда удобно. Так, если вам надо сделать одну и ту же операцию, скажем, на десятке компьютеров, то гораздо проще написать reg-файл и установить его на всех машинах. Или вы распространяете программу, использующую ваш формат файлов, и чтобы ассоциировать файлы с программой на машинах пользователей автоматически надо использовать либо тот же reg-файл, либо править реестр из программы. Вот для этих случаев и нужна эта статья.

Файлы регистрируются в разделе HKEY_CLASSES_ROOT. Для примера зарегистрируем файл с расширением .diz - многие программы поставляются с файлом описания, имеющим такое расширение. Неплохо было бы при запуске его просматривать содержимое в текстовом редакторе, например, Блокноте. Создайте раздел с именем .diz, в параметр которого "По умолчанию" добавьте запись "DIZ-File" (без кавычек).

В разделе HKEY_CLASSES_ROOT создайте еще один раздел с именем, которое было в параметре "По умолчанию", т.е. DIZ-File. Задайте значение "По умолчанию" равное "Описание программы" и в этом же разделе создайте подразделы shell и DefaultIcon.

В подразделе shell создайте еще один подраздел Open, а в нем раздел command. Значение command "По умолчанию" должно быть "C:\\windows\\notepad.exe \"%1\"". В разделе DefaultIcon параметр "По умолчанию" задайте равным "C:\\windows\\notepad.exe,1". Получилось все несколько сумбурно и запутанно, но приведенный ниже reg-файл должен устранить все неясности (структура reg-файлов описана в статье здесь):

REGEDIT4

[HKEY_CLASSES_ROOT\.diz]
@="DIZ-File"

[HKEY_CLASSES_ROOT\DIZ-File]
@="Описание программы"

[HKEY_CLASSES_ROOT\DIZ-File\shell]

[HKEY_CLASSES_ROOT\DIZ-File\shell\Open]

[HKEY_CLASSES_ROOT\DIZ-File\shell\Open\command]
@="C:\\windows\\notepad.exe \"%1\""

[HKEY_CLASSES_ROOT\DIZ-File\DefaultIcon]
@="C:\\windows\\notepad.exe,1"

Теперь все стало несколько понятнее. Надеюсь, вы обратили внимание на то, что в пути файла вместо одного символа \ используется \\ и кавычка задается как \". При открытии файла используется параметр %1 после полного имени файла Блокнота (кстати, путь к нему у вас может быть другим). Этот параметр передает выбранный файл в Блокнот. Если путь к файлу приложения содержит пробелы, то он должен быть заключен в кавычки.

Теперь добавим пункт на распечатывание этого файла. Покажу все на примере нашего reg-файла. Добавьте следующие строки в конец файла:

[HKEY_CLASSES_ROOT\DIZ-File\shell\print]

[HKEY_CLASSES_ROOT\DIZ-File\shell\print\command]
@="C:\\windows\\notepad.exe /p \"%1\""

Думаю, аналогия понятна. Теперь вы и сами можете добавить любой пункт меню к любому зарегистрированному типу файлов. Так, можно было бы добавить просмотр файлов diz в WordPad'e, Word'e или еще где-то. Возможности по редактированию контекстного меню файлов весьма обширные и я надеюсь, что мне удалось довольно понятно объяснить технологию добавления новых пунктов. Ну, а если что-то будет непонятно, пишите.


Создание нестандартного ярлыка

Автор: Александр

Все знают, что при установке MS Office на рабочем столе появляется ярлык Microsoft Outlook. В отличие от других ярлыков, у этого нет стрелочки и привычного меню, появляющегося при нажатии правой кнопки мыши. Его нельзя скопировать, только создать обычный ярлык.

Тем не менее сделать такой "ярлык" для любой программы довольно просто, рассмотрим на примере Outlook Express.

1. В разделе реестра HKEY_CLASSES_ROOT\CLSID создадим раздел с именем {01010101-2020-3030-1111-AF10AF10AF10}. Вместо этих цифр могут быть любые другие, а также буквы от A до F, главное, чтобы не совпадало с уже существующими разделами.

2. В этом разделе в строковом параметре по умолчанию записываем Outlook Express, затем создаем новый строковый параметр InfoTip, в его значение записываем описание программы, в нашем случае "Электронная почта".

3. В этом же разделе создаем два новых раздела DefaultIcon и Shell.

4. В значение по умолчанию DefaultIcon прописываем "C:\Program Files\Outlook Express\msimn.exe,0" (или тот каталог, куда у вас установлена программа).

5. В разделе Shell создаем раздел Open, в этом новом разделе создаем еще раздел, с именем Command. В значение по умолчанию прописываем путь к программе "C:\Program Files\Outlook Express\msimn.exe".

6. Создаем пустой файл без расширения. Я делаю это так. Щелкаю правой кнопкой по Рабочему столу, и в появляющемся меню выбираю "Создать ярлык". Появляется диалоговое окно "Создание ярлыка" и на Рабочем столе появится файл с названием "Новый ярлык". Если его скопировать, то получится как раз пустой файл без расширения.

7. Называем полученный файл Outlook Express.{01010101-2020-3030-1111-AF10AF10AF10}. Перезагружаем компьютер, все ярлык готов.

В принципе можно делать ярлык и для папки, для этого в разделе Command указываем "C:\Windows\explorer.exe X:\Name Folder\Name Subfolder\". Но в отличие от простого ярлыка, на новый ярлык нельзя перетащить файл для копирования.

Если нет желания делать все в ручную, то можно запустить файл OE.reg

REGEDIT4

[HKEY_CLASSES_ROOT\CLSID\{01010101-2020-3030-1111-AF10AF10AF10}]
@="Outlook Express"
"InfoTip"="Электронная почта"

[HKEY_CLASSES_ROOT\CLSID\{01010101-2020-3030-1111-AF10AF10AF10}\DefaultIcon]
@="C:\\Program Files\\Outlook Express\\msimn.exe,0"

[HKEY_CLASSES_ROOT\CLSID\{01010101-2020-3030-1111-AF10AF10AF10}\Shell]

[HKEY_CLASSES_ROOT\CLSID\{01010101-2020-3030-1111-AF10AF10AF10}\Shell\Open]

[HKEY_CLASSES_ROOT\CLSID\{01010101-2020-3030-1111-AF10AF10AF10}\Shell\Open\Command]
@="C:\\Program Files\\Outlook Express\\msimn.exe"

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


"Хитрые" ярлыки папок

Автор: Tarasov Costja

Как создать ярлык папки, который в проводнике будет вести себя также как папка, на которую он ссылается.

1. Создайте папку с любым именем, именно она станет впоследствии ярлыком.
2. Откройте ваш любимый текстовый редактор и введите следующее:

[.ShellClassInfo]
CLSID2={0AFACED1-E828-11D1-9187-B532F1E9575D}
Flags=2

и сохраните под именем desktop.ini в созданной папке.
3. Создайте в этой папке ярлык target.lnk, он должен ссылаться на папку, на которую будет ссылаться создаваемый ярлык.
4. Установите у файла desktop.ini атрибуты Скрытый и Системный (в свойствах файла), а у папки-ярлыка - Только чтение. Проще всего это сделать при помощи Far (Ctrl+A).

Проверялось в Windows XP Home Edition и Windows 2000, но должно работать и в Windows Millenium (возможно и в других версиях).

Для простоты создания таких ярлыков привожу небольшой скрипт, позволяющий полностью автоматизировать процесс:

Dim Args, WSHShell, fso, f, TL

Set Args = WScript.Arguments
Set WSHShell = WScript.CreateObject("WScript.Shell")
Set fso = WScript.CreateObject("Scripting.FileSystemObject")

Set f = fso.GetFolder(Args(0))
f.Attributes = f.Attributes Or 1

'Создаем файл Desktop.ini в каталоге-ссылке
Set f = fso.OpenTextFile(Args(0) + "\Desktop.ini", 2, True)
 f.Write "[.ShellClassInfo]" + vbCrLf
 f.Write "CLSID2={0AFACED1-E828-11D1-9187-B532F1E9575D}" + vbCrLf
 f.Write "Flags=2" + vbCrLf
f.Close

'Задаем ему атрибуты
Set f = fso.GetFile(Args(0) + "\desktop.ini")
f.Attributes = f.Attributes Or 2
f.Attributes = f.Attributes Or 4

'Создаем ярлык
Set TL = WSHShell.CreateShortcut(Args(0) + "\Target.lnk")
TL.TargetPath = Args(1)
'Задаем изображение иконки. В данном случае будет
'использовано изображение с номером 0 из файла Блокнота (значок блокнота)
TL.IconLocation = "%windir%\notepad.exe, 0"
TL.Save

Скрипт написан на VBScript (расширение у файла должно быть .vbs). Запускать его надо с параметрами: первый параметр - путь к папке-ярлыку, второй параметр - путь к папке, на которую создается ярлык. На всякий случай предупреждаю, что путь, содержащий один или несколько пробелов, нужно заключить в кавычки.


Windows ручками

Коцаем Windows

Дарова всем онлайновым перцам!!! Все вы наверно слышали о такой ОС как Windows ;) Вполне возможно, что слышали. Так вот все наверное знаете о безграничности ее глюкнутых багов. Так уж дядя Былл Геймс постарался. Типа этих ошибок становиться столько, сколько молекул в 1л пива:)), честное слово. Они плодятся по принципу "каждая следующая порождает предыдущую или несколько следующих порождают кучу предыдущих", в общем геометрия какая-то. Ладно нам больно не пофигу? Нет, как раз не пофигу! Нам баги на ... не нужны. Так вот, чтобы хотя бы частично избавить себя от этих "компьютерных радостей" нужно подумать как их убрать. Точно, ты давай думай, а я тебе подскажу несколько фичей по оптимизации твой родимой ОС. Дальше мы будем с тобой возиться с файлами, поэтому хорошо бы поставить менеджер "FAR". Поставил? Пошли дальше. Открывай Config.sys и редири:

CONFIG.SYS

Напиши в самом начале файла:

DOS=HIGH,UMB,NOAUTO
DEVICE=C:\W\HIMEM.SYS /VERBOSE /V /TESTMEM:OFF
DEVICEHIGH=C:\W\IFSHLP.SYS
DEVICE=C:\W\EMM386.EXE /NOEMS /V /VERBOSE
STACKSHIGH=0,0
LASTDRIVEHIGH=E (Вместо "E" поставь букву последнего диска)
BUFFERSHIGH=20
FCBSHIGH=1
FILESHIGH=10

C:/W - это, типа, каталог куда у тебя Окошки установлены.

NOAUTO - глюк Windows. Если эту строку не указать, то автоматически грузятся драйвера HIMEM.SYS, IFSHLP.SYS, SETVER.EXE. SETVER нужен только для отсталых прог, и в 99% случаев можно обойтись без него. Поэтому ставим NOAUTO и разбираемся сами. Найди теперь строчку "COUNTRY=..."и поставь ее следующей. Все остальное - не только не нужно, но и вредно. Естественно, я не учитываю какую-нибудь особенную конфигурацию твоего компьютера (особенно если это COMPAQ), которая может потребовать кучу дополнительных драйверов только для того, чтобы включаться). Просто заремь (поставь перед ними команду "REM") все лишние строчки (удалять пока не стоит, на всякий случай). Получилось? Молодец, давай забеги в Autoexec.bat и надери его:

AUTOEXEC.BAT

В строку PATH Windows, возможно, добавил собственные пути:

C:\W и
C:\W\COMMAND

Убери их к черту - все равно они существуют по умолчанию. Добавь после этого строчки:

SET TEMP=C:\RECYCLED
SET TMP=C:\RECYCLED

Если ты не будешь ставить автоудаление файлов из корзины, то допиши:

@DELTREE /Y C:\RECYCLED
@MD C:\RECYCLED

Корзина будет очищаться автоматом при каждой перезагрузке компа. Далее сноси или заремь три строчки:

MODE CON CODEPAGE PREPARE...
MODE CON CODEPAGE SELECT...
KEYB...

и добавь:

C:\W\KEYRUS.COM

Естественно, перед этим KEYRUS.COM нужно скачать и положить в папку Windows. Собственно, все. Остальное заремь. Особенно если там сохранились ДОСовские драйвера мыши, сидюка или бластера. Не стоит грузить драйвер мышкадрома - Windows на него плевать с высокой колокольни, драйвер мышки у него свой. Не стоит грузить драйвер CD-ROM в CONFIG.SYS, MSCDEX.EXE в AUTOEXEC.BAT - программы предназначены для DOS, и Windows в них не нуждается. Как правило, 90% исправных IDE CD-ROM правильно определяются Windows. Ну че, не устал? Тогда мы продолжаем наши мазохиские методы.

MSDOS.SYS

Этот файл состоит из двух разделов: [Path] и [Options]. В Path может содержаться четыре идентификатора:

HostWinBootDrv - Определяет загрузочный диск

WinBootDir - Определяет расположение необходимых загрузочных файлов. По умолчанию каталог, указанный при установке

WinDir - Определяет расположение каталога Windows, указанного при установке

UnInstallDir - Путь, по которому программа установки положила файлы для деинсталляции. Большинству людей не нужно.

Теперь о том, что содержится, и что должно содержаться в Options:

AutoScan - Этот идентификатор ответственен за запуск ScanDiskа при неправильном завершении работы. 0 - не запускается никогда, 1 - спрашивать разрешение, 2 - запускать без разрешения. Ставь "AutoScan=0", особенно если у тебя W95OSR2 - в этой версии ScanDisk содержит ошибку и может порушить систему.

BootDelay - Устанавливает задержку в секундах при появлении надписи Starting Windows 95/98. Ставь "BootDelay=0". Даже при такой задержке ты успеешь нажать F8.

BootSafe - Загрузка в Safe Mode. По умолчанию BootSafe=0. Если хочешь, чтобы каждый раз Винды загружались из-под сохраненного режима, то ставь "BootSafe=1". Правда, не знаю, зачем это нужно.

BootGUI - Загрузка с графической средой. По умолчанию "BootGUI=1". Если хочется каждый раз работать в текстовом режиме, ставь "BootGUI=0".

BootKeys - Разрешает пользоваться при загрузке клавишами F5, F6 и F8. По умолчанию "BootKeys=1". Если хочешь, чтобы кто-нибудь не сел за твой компьютер и не зашел в ДОС, ставь "BootKeys=0".

BootMenu - Если установлена опция "BootMenu=1", то каждый раз при загрузке будет появляться меню, которое обычно появляется при нажатии клавиши F8.

BootMenuDefault - Выбирает пункт в загрузочном меню по умолчанию. По умолчанию значение 3 для компьютеров без сетевых компонентов и 4 для сетевых компьютеров. Т.е. если ты хочешь, чтобы, когда появляется это меню, у тебя курсор автоматически стоял на Command Prompt Only, то пиши "BootMenuDefault=5" (у меня этот пункт под номером 5).

BootMenuDelay - Время в секундах, в течение которого можно успеть сделать выбор в загрузочном меню. Значение по умолчанию 30. Ставь "BootMenuDelay=1".

BootMulti - Разрешает загрузку предыдущей версии DOS при нажатии F4 либо при выборе соответствующего пункта из загрузочного меню. Значение по умолчанию 0. Нужен старый ДОС - ставь "BootMulti=1".

BootWarn - Предупреждение о загрузке в Safe Mode. Значение по умолчанию 1. Ставь "BootWarn=0".

BootWin - Разрешает использование Windows 95 в качестве операционной системы по умолчанию. Значение по умолчанию 1. Если нужна загрузка предыдущей версии ДОСи по умолчанию (тогда зачем тебе вообще Windows?), то ставь "BootWin=0".

DblSpace - Устанавливает автоматическую загрузку DBLSPACE.BIN. По умолчанию 1, поэтому обязательно ставь "DblSpace=0" (естественно, если у тебя нет сжатых дисков).

DisableLog - Разрешает при загрузке не создавать файл протокола - bootlog.txt. Для обычной работы поставь "DisableLog=1", в ноль же нужно обращать этот параметр при неработоспособности системы для обнаружения неполадок.

DoubleBuffer - Разрешает двойную буферизацию для SCSI-контроллеров. Значение по умолчанию 0. Если есть устройства SCSI, то пиши "DoubleBuffer=1".

DrvSpace - Разрешает автоматическую загрузку DRVSPACE.BIN. Значение по умолчанию 1. Поэтому обязательно ставь "DrvSpace=0" (аналогично, если нет сжатых дисков).

LoadTop - Разрешает загрузку COMMAND.COM или DRVSPACE.BIN в верхнюю память Значение по умолчанию 1. Рекомендуется устанавливать "LoadTop=0" при работе с NetWare или любым софтом, имеющим личное мнение об использовании данных областей памяти.

Logo - Разрешает показывать логотип. Значение по умолчанию 1. Установка в 0 также предотвращает перехват некоторых прерываний, который может привести к несовместимости с некоторыми диспетчерами памяти от независимых поставщиков. Поэтому не раздумывай и ставь "Logo=0".

Network - Разрешает пункт загрузочного меню "Safe Mode With Networking". Значение по умолчанию 1 для сетевых компьютеров. Должно быть установлено в 0 при отсутствии сетевой поддержки. Так что не поленись: "Network=0" (конечно, если нет локальной сети).

BootFailSafe (Только Windows 98) - Если эта опция установлена в 0, то в загрузочном меню отсутствует пункт Safe Mode.

SYSTEM.INI (в каталоге Windows)

Найди раздел [vcache] (если такового не найдется, то создай его) и измени следующим образом:

[vcache]
MinFileCache=min
MaxFileCache=max
chunksize=512
NameCache=2048
DirectoryCache=48

Значения min и max выбираются в зависимости от количества оперативной памяти, согласно этой таблице:

RAM   | MIN  | MAX
32MB  | 2048 | 6144
48MB  | 2048 | 8192
64MB  | 2048 | 10240
128MB | 4096 | 16384

Теперь коротко о том, что это такое. Первая строка, я думаю, ясно, - название раздела. Следующие две устанавливают максимальный и минимальный объем КЭШа в килобайтах для файлов.

Следующая указывает, на сектора какого размера разбит раздел памяти, выделенный под кэш. И следующие две указывают количество файлов и каталогов, отслеживаемых Windows.

Теперь создавай (а скорее ищи, так как он создается автоматически) раздел [Password Lists]. Там будет написано что-то вроде "Vasyapipkin=C:\Windows\vasyapipkin.pwl", где Nick - это твое имя.

Вот здесь то и стоит защититься. Исправь путь к файлу с паролем (PWL) на тот, который захочешь. Например, Nick=C:\MY\Download\Temp\billgames.PWL. Не забудь переместить (именно переместить, а не скопировать) сам файл. Очень рекомендуется сменить его имя (в данном случае vasyapupkin.pwl на billgames.pwl). Так ты заметно усложняешь работу тем лохам, кто захочет получить доступ к твоему компу.

Если ты хочешь включить в загрузочную последовательность какие-либо специальные команды, но так, чтобы другой кул-хацкер не вырубил их, присвоения атрибута "скрытый" (hidden) или "только для чтения" (read only) файлу autoexec.bat недостаточно. Для этого надо воспользоваться вот такой нычкой Виндов. После запуска файлов config.sys и autoexec.bat во время загрузки выполняется команда win.com, что дает возможность создать файл win.bat, куда и поместить специальные команды, которые ты хочешь включать в autoexec.bat. Поскольку командные файлы (*.bat) имеют приоритет перед исполняемыми, вместо win.com по умолчанию будет загружен win.bat. Только не забудь вписать в командный файл последней строкой команду win.com, чтобы загрузить Маздай. Да, пиши команду в явном виде, вместе с расширением .com, а то твой win.bat начнет заикаться.
Если ты хочешь выкинуть лишние позиции в спичке Add/Remove (установка/удаление) программ (например, если прога была просто стерта с диска, просто так ее запись хрен выбросишь), запускай редактор реестра, будем резать :)) :
HKEY_LOCAL_MACHINE/Software/Microsuxx/ Windows/Current/Version/UninstallThis - ты вишь кучу кишок?
Да! Клево! Давай бери нож и вырезай всякий ненужный тебе спам и перегружай комп. Все ОК.

Ты помнишь эту надоедливую полупрозрачную стрелку в левом нижнем углу, которая всегда портит все рульные пиктограммы, не принося ни какой пользы:(( Давай-ка ее тоже выкинем, ОК?
Лезь опять в реестр (regedit) и правь HKEY_CLASSES_ROOT/Inkfile, реж значение IsShortcut,
затем в HKEY_CLASSES_ROOT/piffile тоже реж значение IsShortcut, после перезагрузись и все- ТЫ ХАЦКЕР!!!

Вот типа ты и научился азам Виндовских внутренностей:) Ну как? Понравилось? Правдо, захватывает?

Несколько этих фишек должны помочь твоей ОС не загнуться совсем. Если ты не "шланг", то у тебя все получиться. А в следующий раз я расскажу тебе о том как заставить работать на себя 5-ое нашествие мутантов Микрософт, ежиков Ехплоеров, а также много других рульных нычек в системе. И вправду пословица "Ошибки были, ошибки есть, ошибки будут" работает на все 100%!!!
А мне остается только пожелать тебе, перец, одно: Пиши, стирай, компили, гуди, звени, ламай... и читай "Х"!!! Все! Пакеда, перец!


Оптимизация памяти

Автор статьи: Сергей Трошин
e-mail: stnvidnoye@chat.ru
http://stnvidnoye.chat.ru/

Пользователи компьютеров давно вывели новый закон природы: "оперативной памяти не может быть много". Для более рационального использования всех типов оперативной памяти рекомендую в CONFIG.SYS прописать строку DOS=HIGH,UMB,NOAUTO, чтобы не загружались SETVER.EXE (нужен для старых ДОС-программ) и DBLBUFF.SYS (нужен для SCSI-дисков) - чем меньше грузится всякой хрени - тем лучше. Желательно использовать в конфигурационных файлах команды с приставками HIGH типа DEVICEHIGH, LOADHIGH, INSTALLHIGH, BUFFERSHIGH, FCBSHIGH, FILESHIGH, LASTDRIVEHIGH, STACKSHIGH (если они вам нужны), для освобождения базовой памяти. Для этого впишите сначала в CONFIG.SYS строки

DEVICE=C:\WINDOWS\HIMEM.SYS /V /TESTMEM:Off
DEVICE=C:\WINDOWS\EMM386.EXE NOEMS V

для использования верхней памяти. Внимание! Если вы при этом не добавите в CONFIG.SYS строку

 DEVICEHIGH=C:\WINDOWS\IFSHLP.SYS,

то ваш компьютер может не загрузиться, так как команда DOS=NOAUTO отключает загрузку и этого драйвера файловой системы. Используйте в этом случае загрузочный флоппи-диск или компакт для добавления в конфиг этой строки. Параметр HIGHSCAN (может еще немного добавить свободной верхней памяти) для EMM386 лучше не использовать, так как высока вероятность того, что это приведет к ошибкам и система зависнет.

Необходимо отметить, что Винды сами загружают по умолчанию (если в конфиге не прописано DOS=NOAUTO) как бы "невидимый" CONFIG.SYS, в котором такие строки:

dos=high, auto
device= c:\windows\himem.sys
device= c:\windows\ifshlp.sys
device= c:\windows\setver.exe
fileshigh=30
lastdrivehigh=z
buffershigh=30
stackshigh=9,256
shell=command.com /p
fcbshigh=4

Эти драйвера грузятся, даже если в вашем конфиге они не прописаны (и, даже, если отсутствуют файлы AUTOEXEC.BAT и CONFIG.SYS), при этом, если у вас уже записаны в CONFIG.SYS команды без приставок HIGH (например files), то выполняться все равно будут команды с этими приставками (типа fileshigh), для использования старших адресов памяти (вернее, винда сама решает - использовать старшие адреса памяти или нет, и чаще всего окончания "HIGH" к командам добавляет). Значения, задаваемые командами files, lastdrive, buffers, stacks, fcbs и драйвер SETVER.EXE нужны только приложениям MS-DOS, Windows'98 эти параметры не требуются. Существует и "скрытый" AUTOEXEC.BAT:

@echo off
net start
set tmp=C:\windows\temp
set temp=C:\windows\temp
set COMSPEC=C:\COMMAND.COM
prompt $p$g
path c:\windows; c:\windows\command

Изменяя значения конфигурационных параметров, используемых "виндами" по умолчанию, можно добиться более рационального распределения памяти. Немного базовой памяти можно высвободить, если задать командой LASTDRIVEHIGH букву реально последнего дисковода (по умолчанию памяти выделяется больше: резервируется под все диски от A до Z) - на каждый дополнительный диск расходуется 80 байт. Желательно командой STACKSHIGH=0,0 отменить выделение памяти под стеки, отводимые для временного хранения различной системной информации и нужные только старым ДОСовским программам. Командой BUFFERSHIGH=20 можно ограничить количество буферов дискового ввода-вывода (каждый занимает 532 байта), так как "винды" используют собственную систему кеширования дисковых данных VCache, а для MS-DOS MODE этого значения вполне обычно хватает. Еще один параметр, нужный в режиме эмуляции MS-DOS досовским программам - FCBS, задающий количество неких блоков управления файлами, на что, естественно, опять уходит ценная память (64 байта на каждый), его значение можно изменить на FCBSHIGH=1. Базовую память можно сберечь, задав параметр FILESHIGH=10, уменьшив тем самым число обработчиков файлов с 30 до 10 (на каждый по 60 байт, примерно). Если вы никогда не загружаете режим эмуляции MS-DOS, то можете выставить еще меньшие значения этих параметров, мой же вариант расчитан на поддержку и зтого режима. Если же вы используете какую-нибудь устаревшую программу, которая хочет работать только из режима эмуляции MS-DOS, то вам, возможно, придется изменить эти параметры, опять увеличив их значения, иначе некоторые из ДОСовских программ не запустятся, или даже включить поддержку устаревшей EMS-памяти, добавив параметр RAM к драйверу EMM386! Например:

DEVICE=C:\WINDOWS\EMM386.EXE RAM VERBOSE,

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

При наличии в корне системного диска файла dblspace.bin или drvspace.bin Windows загрузит соответствующий драйвер сжатых дисков, даже если вы не используете эту функцию, поэтому не забудьте удалить эти файлы!

Очень полезно посмотреть, что грузится, выбрав в загрузочном меню (нажать кнопку F8, при загрузке ПК, для его вызова) режим "Step-by-step confirmation". При этом вы сможете увидеть и исправить ошибки в конфигурационных файлах которые обычно возникают из-за неправильного написания путей к драйверам и файлам. А проверить, насколько эффективно распределяется память, можно с помощью команды "MEM /P/C", которую надо набрать в меню "Выполнить" ("Run") кнопки "Пуск". Если в появившемся окне вы увидите примерно такие значения:

Largest executable program size=614032 (600k)
Largest free upper memory block=0 (0K)
MS-DOS is resident in the high memory area,
то все в порядке. Еще одна полезная команда "MEM /D/P" более детально покажет использование памяти.

Иногда нужно выделить больше памяти под переменные окружения (например, если вы хотите задать дополнительные параметры для видеоускорителя от 3dfx в автоэкзеке, а получаете сообщение "Out of environment space"), в этом случае пропишите строку в конфиге:

SHELL=C:\COMMAND.COM /P /E:1024

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


О файле подкачки

FAQ по файлу подкачки

Примерно 75% статьи составляет материал, присланный Андреем Ежгуровым. Для полноты картины я добавил и от себя пару слов, а также включил сюда несколько советов из "Народной мудрости" по этой теме.

Что такое файл подкачки?
Файл подкачки (swap-файл, виртуальная память) - это файл, который служит "продолжением" оперативной памяти. Все программы во время своей работы занимают какой-то объем оперативной памяти: одни - больше, другие - меньше. Если одновременно запустить несколько приложений, занимающих большой объем оперативной памяти, то может получиться так, что физического объема установленной оперативки не хватает под нужды всех программ. Тогда Windows переносит данные неактивных программ из оперативной памяти в виртуальную. При переходе в "засвопированную" программу, данные из файла подкачки переносятся в оперативку. Это утрированная схема работы, по которой, однако можно понять процессы, происходящие в памяти компьютера.
Физическим воплощением файла подкачки является файл win386.swp в каталоге Windows для Win9x/ME и файл pagefile.sys в корне диска, куда установлена операционная система, для WinNT/2000/XP.

Как определить требуемый объем swap-файла?
При определении объема файла свопинга необходимо исходить не из объема RAM, а из задач, выполняемых на данном компьютере. Для этого нужно запустить какую-либо программу мониторинга, умеющую регистрировать объем swap-файла (например, встроенный в Windows "Системный монитор") и заняться типичной для данного компьютера работой. Максимальный объем файла свопинга, зарегистрированный в течении этого сеанса, и будет требуемым размером.
Если вы активно используете DOS'овские программы, то приготовьтесь к тому, что файл свопинга может иметь немалый размер: ограничить объем памяти, выделяемый DOS'овским приложениям, конечно можно (это делается в свойствах ярлыка), но обычно этого никто не делает.

Где располагать файл подкачки?
Если в системе несколько винчестеров, то на самом быстром из них. Если винчестер разбит на несколько разделов, то на разделе, расположенном в начале диска (это может не работать для ноутбуков, винчестеры которых могут располагать данные не "по цилиндрам", а "по поверхностям").

Как зафиксировать размер файла подкачки?
Windows 9x/Me активно использует файл подкачки, значительно разгружая оперативную память компьютера. Microsoft сделала файл подкачки динамическим, т.е. размер файла изменяется в зависимости от нужд Windows, хотя наилучшая производительность системы достигается при статическом файле. Причин для этого множество - Windows не требуется каждый раз изменять размер файла подкачки, исчезает фрагментация и т.д. Для того чтобы изменить параметры файла подкачки, щелкните правой кнопкой мыши на значке "Мой компьютер" и выберите Свойства. Перейдите на вкладку Производительность и щелкните кнопку Виртуальная память (Properties->Performance->Virtual Memory). В появившемся окне выберите "Параметры виртуальной памяти устанавливаются вручную" (Let me specify my own virtual memory settings). Если у вас установлено более одного жесткого диска, рекомендуется перенести файл подкачки с диска, где у вас установлена Windows на другой жесткий диск, более быстрый. Это должно значительно увеличить производительность системы. Теперь установите размер файла виртуальной памяти. Рекомендуемый размер - хотя бы в 2,5 раза больше, чем объем оперативной памяти. Перезагрузите систему и запустите утилиту дефрагментации для того, чтобы быть уверенным, что файл подкачки не фрагментирован. А если вы пользуетесь дефрагментатором сторонних производителей, в опциях укажите, чтобы файл подкачки располагался в начале диска.

Надо-ли фиксировать максимальный размер файла подкачки?
Нет, ни в коем случае. Необходимо зафиксировать только минимальный размер (в соответствии с вышеприведенными рекомендациями). Фиксирование максимального размера не приводит к росту производительности, но зато является потенциальным источником глюков из-за нехватки памяти.
Ссылки (встречающиеся в некоторых FAQ) на то, что отсутствие фиксации MAX приведет к фрагментации swap-файла не состоятельны. При правильном выборе MIN 99.9% времени свопинг не будет превышать этой величины и файл свопинга будет дефрагментирован. В тех же редких случаях, когда понадобится больший объем виртуальной памяти, файл свопинга действительно станет фрагментированным, но только до тех пор, пока работает приложение, которому требуется столько памяти. Как только это приложение будет снято, файл свопинга автоматически уменьшится до размера MIN, причем будет выкинут фрагментированный конец файла и swap-файл снова станет дефрагментированным.

Как дефрагментировать файл подкачки?
Стандартный Windows'овский Defrag не умеет перемещать файл свопинга. Поэтому надо использовать утилиты других фирм. ИМХО, удобнее всего использовать Speed Disk из состава Norton Utilities (разумеется, как можно более новых).

У меня слишком большой файл подкачки...
Для компьютеров, оснащённых более чем 64 MB оперативной памяти, можно порекомендовать следующий "трюк": в файле system.ini, который находится в каталоге C:\Windows, в разделе [386Enh], необходимо дописать строку ConservativeSwapfileUsage=1.
Это позволит системе не создавать файл подкачки без необходимости. Например, со 128 MB оперативной памяти можно будет открыть до трёх офисных приложений, таких, как Word, Excel и Internet Explorer, притом, что размер файла подкачки останется равным нулю. То же самое произойдёт при запуске Quake 3.

Имеет-ли смысл использовать ключ ConservativeSwapfileUsage=1?
Этот ключ имеет смысл использовать в ЕДИНСТВЕННОМ случае - если на винчестере катастрофически не хватает места. Во всех остальных случаях использовать его не имеет смысла: этот ключ действительно уменьшает размер swap-файла, но при этом снижает эффективность подсистемы свопинга, что ухудшает общую производительность Windows.
Утверждение, что этот ключ уменьшает объем свопинга и, следовательно, кол-во обращений к диску (что увеличивает производительность), не соответствует действительности - объем собственно свопинга при использовании данного ключа не меняется, меняется алгоритм работы с файлом свопинга. Разница объясняется тем что при наличии ключа (свопинг в стиле Win-95) выделение места в файле производится по мере необходимости, а при отсутствии ключа (свопинг в стиле Win-98) Windows заранее резервирует место в файле свопинга (около 4 Mb, если не ошибаюсь) для каждой задачи. При этом реальная запись в swap-файл не производится и дополнительных обращений к диску нет.

Так как все-таки оптимально настроить файл подкачки?
Если у Вас несколько винчестеров (не разделов, а именно винчестеров), то установка файла подкачки на другой винт, чем установлена операционная система, обычно значительно ускоряет быстродействие.
Если у Вас несколько винчестеров - то файл подкачки ставится на самый быстрый из них.
Если у Вас несколько разделов на винте, то файл подкачки надо ставить на самый первый из них - физически расположенный самым первым, так как доступ к этим областям винта наиболее быстрый.
Целесообразно ограничить минимальный объем файла подкачки, чтоб предотвратить излишнюю его фрагментацию примерно объемом 1-1.5 объема вашей оперативной памяти (впрочем если Вы пользуете графику или напрягаете компьютер серверами баз данных то можно поставить размером 2-3 объема RAM).
Практически не имеет резона ограничивать максимальный объем, так как это может привести к сбою программ из-за нехватки памяти, а если уж и ограничивать, то никак не меньше чем 4 объема RAM.
После этих настроек компьютер надо перезагрузить и запустить какой-нибудь дефрагментатор (типа Norton Speed Disk) чтоб полностью дефрагментировать файл подкачки и поместить его в начало раздела.
И последнее, помните, что после выключения компьютера файл подкачки может содержать Ваши пароли, логины, остатки Вашей конфиденциальной информации и т.п., так что достаточно "образованные дяди" из числа Ваших доброжелателей или компетентных органов, загрузившись в ДОС и покопавшись в объедках Ваших программ в файле подкачки могут найти очень интересные вещи...


Параметры msdos.sys

Настройка процесса загрузки Windows с помощью msdos.sys

Оказывается, управлять настройками Windows можно не только используя реестр, но и другими средствами. Одним из таких средств являются ini-файлы (например, win.ini, system.ini). По клятвенным заверениям Microsoft настройки в ini-файлах оставлены только для совместимости со старыми версиями программ, тем не менее, и многие современные программы продолжают их активно использовать. Однако в этой статье речь пойдет не о них, а еще об одном способе настройки Windows, предоставляющем возможность управлять загрузкой Windows, а именно о файле msdos.sys и его параметрах.

Файл находится в корне загрузочного диска и имеет атрибуты "Только для чтения", "Скрытый" и "Системный", так что, если вы собираетесь редактировать его, скажем, в Norton Commander или Volcov Commander, то вам надо предварительно снять эти атрибуты, а после окончания редактирования вновь восстановить их. В FARe этого делать не обязательно: он может редактировать такие файлы без проблем, просто при сохранении выдает запрос о том, что файл только для чтения и спрашивает, нужно ли его переписывать.

Файл должен иметь размер не меньше 1024 байт, поэтому в конце него есть строки типа

;хххххх...хххха
;хххххх...ххххb
.......
;xxxxxx...xxxxs

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

Ну, после такой длинной вводной части, пожалуй, можно перейти непосредственно к рассказу о параметрах этого файла. Все параметры разбиты на два раздела: [Paths] и [Options]. В первом разделе расположены параметры, указывающие пути, необходимые для загрузки, во втором - параметры, непосредственно управляющие загрузкой.

[Paths]

WinDir - путь, куда был установлен Windows.
WinBootDir - путь к каталогу с файлами, необходимыми для загрузки. В общем случае значение этого параметра и WinDir совпадают.
HostWinBootDrv - диск, с которого производится загрузка. В 99% это диск "С".
UninstallDir - этот параметр присутствует только в том случае, если вы устанавливали ОС поверх другой, с сохранением предыдущей версии. В качестве значения прописан путь к файлам W9xundo.dat и W9xundo.ini, необходимым для деинсталляции Windows.

[Options]

BootMulti - если равно 1 (жирным выделено значение по умолчанию), то во время загрузки, когда появляется надпись "Идет загрузка Windows 9x", позволяет нажать F4 и загрузить предыдущую версию DOS. 0 - F4 не сработает. Лучше выставить это значение равным 0, все равно вы не пользуетесь этой возможностью, о система ждет несколько секунд нажатия этой клавиши.
BootGUI - 1 - загрузка Windows с графической оболочкой. 0 - при загрузке попадете в DOS. Если надо загрузить графический интерфейс пользователя (GUI), надо ввести команду win (запустить файл win.com в каталоге Windows).
DoubleBuffer - 1 - разрешает двойную буферизацию для SCSI-контроллеров. 0 - соответственно, запрещает. Если SCSI-контроллера нет, лучше выставить значение 0.
Autoscan - управляет поведением ScanDisk'a во время загрузки при некорректном выходе из Windows: 0 - блокирует запуск ScanDisk; 1 - запускает ScanDisk, с уведомлением о начале проверки; 2 - запускает ScanDisk автоматически без всяких уведомлений. Стоит отключать или нет, решать вам. Если хотите перестраховаться, то не отключайте (лучше выставить 2, чтобы не ждало нажатия кнопки для начала сканирования), всем остальным рекомендую отключить.
WinVer - из названия несложно догадаться, что в качестве значения прописана версия Windows.
BootKeys - 1 - разрешает пользоваться при загрузке управляющими клавишами (F5, F8 и т.д.). 0 - запрещает.
BootDelay - устанавливает задержку в секундах при загрузке, в течение которой система ожидает нажатия управляющих загрузкой клавиш (F5, F8 и т.д.). По умолчанию установлено значение 2.
BootMenuDefault - устанавливает, какой пункт в загрузочном меню, вызываемом по F8, будет выбран по умолчанию по истечении установленного времени. Значение по умолчанию - 3 для компьютеров без сетевых компонент и 4 для сетевых компьютеров.
BootMenuDelay - время, в течение которого компьютер ждет выбора из загрузочного меню. По умолчанию это 30 секунд. Если в период ожидания был выбран другой пункт меню, счетчик исчезает и компьютер ожидает нажатия на Enter для продолжения загрузки.
BootMenu - 1 - при каждой загрузке Windows, появляется загрузочное меню. 0 - соответственно, не появляется.
BootSave - 1 - каждый раз при загрузке Windows стартует в Safe Mode. 0 - Windows стартует нормально.
BootWarn - 1 - разрешает предупреждение о загрузке в Safe Mode. 0 - запрещает.
BootWin - 1 - при загрузке будет загружаться Windows. 0 - загрузка предыдущей версии DOS.
Logo - 1 - во время загрузки будет показан рисунок с логотипом Windows. 0 - запрещает вывод заставки при загрузке. Если вам надоела эта заставка, ты вы можете отключить ее вывод. Так же можно заменить эту заставку своей. Стандартная картинка "зашита" в файле io.sys, но вы можете создать в корне загрузочного диска файл logo.sys и он будет иметь преимущество перед io.sys. Более подробно об этом написано в одном из советов "Народной мудрости" от 13.11.01.
DblSpace - 1 - разрешает автоматическую загрузку Dblspace.bin. 0 - запрещает загрузку Dblspace.bin. Если вы не пользуетесь сжатыми дисками, отключите этот параметр, как и следующий за ним (так у вас высвободится лишняя оперативная память, которая никогда лишней не бывает).
DrvSpace - 1 - разрешает автоматическую загрузку Drvspace.bin. 0 - запрещает загрузку Drvspace.bin.
LoadTop - 1 - разрешает загрузку Command.com и Drvspace.bin в верхнюю память. 0 - запрещает. Это лучше не менять.
NetWork - 1 - показывает пункт "Safe Mode With Networking" в загрузочного меню. При отсутствии сетевой поддержки должно быть установлено в 0.
DisableLog - 0 - создание лог-файла загрузки Windows (bootlog.txt - скрытый файл в корневом каталоге системного диска). 1 - лог-файл не создается. Если у вас возникают проблемы во время загрузки, включите создание лог-файла и посмотрите, что у вас выдаст. Возможно, это поможет устранить проблемы.

Файл msdos.sys нечувствителен к регистру букв, так что записи "Logo" и "logo" эквивалентны.

Главное, помните одно правило: перед тем, как изменять что-то в файле, создайте резервную копию. Предосторожности лишними никогда не бывают, зато это может сохранить множество времени и нервов, если что-то пойдет не так (правда, испортить что-либо окончательно и бесповоротно вам не удастся, так что экспериментируйте смело).


Разгоняем Windows

Ускорение загрузки Windows, программ, устранение ошибок

Замечали ли вы когда-нибудь такую тенденцию: чем дольше вы работаете на компьютере без переустановки Windows, тем больше начинают тормозить программы, дольше идет процесс загрузки, количество ошибок возрастает лавинообразно. Некоторые горячие головы сразу начинают переустанавливать систему (а самые одаренные при этом еще и форматируют винт). После переустановки все начинает грузиться и работать очень быстро, но через пару месяцев ситуация повторяется. Опять все переустанавливать? Это не выход. Раз вначале все работает быстро, значит, что-то в системе изменяется, заставляя ее работать медленнее. А что можно сделать, чтобы таких изменений не было или как вернуть все назад без переустановки?

Давайте пойдем в обратном порядке, т.е. определим следствие, найдем причину и попробуем ее устранить. Итак, наиболее частые проблемы при работе:
- медленная загрузка компьютера;
- замедление работы программ;
- частые сообщения о недопустимых ошибках.

Медленная загрузка.

На это может повлиять большое количество причин. Изначально можно попробовать ускорить процесс, поиграв параметрами файла msdos.sys, описание которых дано в статье "Параметры файла msdos.sys". Но это постоянная причина, которая не зависит от того, сколько времени прошло с момента установки системы (да и не самая весомая). Основное влияние оказывает раздувшийся реестр и запускаемые при загрузке Windows программы.

Пока не загрузятся все программы из автозагрузки, нормально работать не удается, так что их смело можно включить в процесс загрузки операционки. К тому же они сильно сказываются на замедлении работы всех программ (вторая неприятность из списка), т.к. отъедают часть оперативки. Задумайтесь, все ли они вам нужны? Уверен на 100%, что хотя бы пару-тройку лишних программ вы найдете. Безжалостно удаляйте их (в смысле не сами программы, они-то еще могут пригодиться, а из автозагрузки). Где посмотреть, что у вас грузится? Об этом уже была статья. Просто кратко перечислю основные места: реестр (раздел HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Current Version\ в подразделах, где первым словом идет Run и раздел HKEY_CURRENT_USER), win.ini, system.ini, Пуск -> Программы -> Автозагрузка.

Здорово влияет на длительность загрузки размер реестра. Чем он больше, тем медленнее загружается компьютер. А происходит это по той простой причине, что каждый раз идет проверка реестра на наличие ошибок. Если таковых не обнаружено, создается резервная копия. На размер файлов реестра напрямую влияет количество установленных программ. Можно удалить весь ненужный софт, но это не выход. Большая часть размера уходит на записи, оставшиеся от уже удаленных программ. Ради интереса посмотрите раздел HKLM\Software. Наверняка вы найдете там записи оставшиеся от ранее стоявших программ. Можно попробовать удалить их все вручную, но где гарантия, что вы найдете все оставшиеся "хвосты"? Лучше для этих целей использовать специальные программы. Парочка их была описана ранее. Это RegCleaner и NBG Clean Regisrty. Ужав размер реестра можно добиться значительного увеличения скорости загрузки.

Замедление работы программ.

Опять же, возможно несколько причин. Не секрет, что недостаток оперативки ведет к более медленной работе программ. А оперативки много никогда не бывает. Чем больше программ запущено одновременно, тем медленнее будут они работать. Каждой программе для работы необходим определенный объем оперативной памяти, который она берет из общего объема. Когда суммарный объем таких кусочков превысит физический размер оперативки, начнется так называемое свопирование, т.е. часть данных из оперативки будет записана на жесткий диск в файл win386.swp (для Win9x) или pagefile.sys (NT,2000). Записываться будут в первую очередь те данные, к которым реже всего обращаются. На самом деле этот процесс гораздо сложнее, но примерная суть именно такова. Когда становятся необходимы данные, записанные на жесткий диск, они оттуда считываются, но, как вы понимаете, доступ к данным на диске происходит гораздо дольше, чем к данным из оперативки, поэтому и наблюдается это жуткое торможение, да еще и винт трещит немилосердно. Следовательно, чтобы все работало шустрее, надо высвободить как можно больше оперативки. В первую очередь стоит выгрузить лишние программы, о чем я уже написал выше. Затем оптимизировать загрузку драйверов (статья "Оптимизация памяти"). Также не рекомендуется использовать большую по объему картинку в качестве обоев на Рабочем столе, т.к. она тоже занимает место в памяти.

Одной из немаловажных причин является высокая фрагментация файлов на диске. Если у вас файл разбит на несколько кусочков, которые разбросаны по всему диску, то загружаться он будет гораздо дольше, потому что помимо простого чтения файла надо будет еще несколько раз позиционировать считывающую головку, а это требует заметных временных затрат. Поэтому желательно при интенсивной работе с жестким диском (частая запись и удаление файлов) время от времени проводить дефрагментацию.

Участившиеся ошибки и сбои.

Часто, когда устанавливается новая программа, в каталог Windows кидаются файлы (библиотеки) необходимые для работы этой программы. Вносятся исправления в реестр, настройки системы. И, к сожалению, иногда эти изменения могут вызывать сбои в работе ОС. Иногда заменяются стандартные файлы библиотек собственными или устаревшими версиями. Это тоже не лучшим образом сказывается на работе. Ну, а если после деинсталляции эти библиотеки будут удалены, последствия могут быть непредсказуемыми. Я не призываю отказаться от установки нового софта, просто этим надо заниматься с умом, особенно, если вы любите поэкспериментировать. Существуют утилиты, призванные устранить последствия "кривой" установки или деинсталляции программы. Описание их выходит за рамки данной статьи (возможно, когда-нибудь такой материал появится на сайте), но наводку дать могу: весьма неплохой программкой считается Professional Uninstaller. Найти ее можно без проблем в любом поисковике. Также есть программы, способные откатить все изменения в системе до контрольной точки, но это скорее пригодится для исследователей нового софта.

Еще можно воспользоваться советом IPWarrior'a от 18.10.01 в "Народной мудрости" (http://www.whatis.ru/reg/nd_w98.shtml). Он как раз пригодится, чтобы исследовать какую-то новую неизвестную программку, а главное вы будете уверены, что ничего неприятного с системными файлами не произойдет.

А главное, попытайтесь определить, после чего у вас посыпались ошибки. Как правило, на пустом месте они не происходят - этому предшествует либо установка какой-то программы, либо удаление. Ну, а, поняв, что повлекло сбои в работе, устранить их гораздо проще.

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


Модемное соединение

Настройка и оптимизация модемного соединения

Очень важным моментом в настройке Windows является оптимизация соединения с Интернет. Ведь от качества связи напрямую зависит время, проведенное вами в сети и соответственно затраты денег на это. Можно попытаться настроить соединение наилучшим образом, с минимальными потерями данных. Прежде, чем приступить к редактированию реестра, надо узнать несколько специальных терминов и уяснить соотношения между ними.

MTU

Это максимальный размер пакета данных, который может быть передан за один физический кадр по протоколу TCP/IP. Дело в том, что данные от компьютера к компьютеру в Интернете идут не сплошным потоком, а этими самыми кадрами - пакетами строго определенного размера. Если бы все компании и фирмы, имеющие хоть какое-то отношение к Интернету, договорились о едином стандарте на размер этих пакетов, то мы бы использовали каждый такой кадр по максимуму, полностью заполняя каналы передачи данных своими битами. Однако это не так. Мало того, что при установке нового соединения два удаленных компьютера должны согласовать между собой размер кадра, так еще и по пути к месту назначения пакет преодолевает целый ряд промежуточных серверов и маршрутизаторов, настройки MTU которых могут быть совершенно различными. При этом слишком большой пакет в пути, скорее всего, будет фрагментироваться и заполняться "воздухом", "балластом", что негативно скажется на эффективности связи. Так, если ваш провайдер имеет установки MTU=576, а у вас в Windows задано MTU=1500, то каждый ваш пакет будет им разбиваться на три по 576 байт: 576+576+576=1728 - то есть 228 байт балласта будут добавляться к каждому вашему пакету. Но даже если провайдер тоже поставил у себя MTU=1500, то при связи с удаленным сервером вполне может попасться маршрутизатор с меньшим значением MTU и пакеты опять-таки будут фрагментироваться, замедляя передачу данных.

Также нельзя забывать, что в процессе приема пакета может произойти сбой, тогда пакет придется принимать заново. Казалось бы, что чем меньше пакет, тем лучше, но в каждом пакете присутствует 40 байт служебной информации (об этом ниже), т.е. вам приходится принимать лишние байты, что не есть хорошо. Исходя из этих соображений, можно порекомендовать выставлять максимальное значение (1500) тем, у кого хорошее качество связи, что позволит избежать получения лишней служебной информации. Для тех, у кого качество связи оставляет желать лучшего, и часто происходят потери пакетов, можно порекомендовать выставлять значение MTU по минимому. В любом случае, лучше это значение подобрать экспериментально, выставляя его и проверяя скорость работы.

MSS

Каждый пакет данных в действительности состоит из нескольких сегментов - нескольких заголовков и фактических данных. Та его часть, в которой содержатся только фактические данные, называется MSS (Maximum Segment Size) - это еще один параметр протокола TCP, определяющий самый большой сегмент данных TCP, которые могут быть переданы за один раз. То есть, MTU = MSS + заголовки TCP/IP. Для заголовка тоже имеется общепринятый размер - это 40 байт (20 байт IP и 20 байт TCP), следовательно, обычно MSS = MTU - 40. По этой причине в определении оптимального размера MTU есть некоторые тонкости.

RWIN

RWIN (receive window, окно приема) - размер буфера, в котором накапливается содержимое области данных (MSS) нескольких полученных пакетов, прежде чем передается дальше, например, в браузер. При недостаточном размере этого буфера иногда происходит его переполнение, и поступающие пакеты отвергаются и теряются. Размер RWIN обязательно должен быть кратен MSS и обычно для лучшей эффективности модемного соединения кратность рекомендуется устанавливать равной 4-8. Однако чрезмерно большой размер буфера также нежелателен, особенно на плохих линиях - при потере всего одного пакета в случае сбоя на линии будет повторно затребован не один потерянный пакет, а все пакеты из этого буфера, что займет некоторое время.

TTL

TTL (time to live, время жизни) - количество хопов, то есть промежуточных серверов, через которые может пройти ваш пакет в поисках своего места назначения. Каждый такой сервер добавляет единицу к специальному счетчику в заголовке вашего пакета, и, когда счетчик достигает максимально разрешенного значения, пакет считается заблудившимся и прекращает свое существование. По умолчанию TTL равен 32, что сегодня явно недостаточно для разросшегося Интернета: нередки случаи, когда удаленный сервер находится более чем в 32 переходах, поэтому TTL следует увеличить как минимум до 64.

NDI Cache

NDI Cache (Network Device Interface Cache) - кэш, в котором хранятся данные о маршрутах движения пакетов, по умолчанию его размер равен нулю. Чтобы его задействовать наиболее оптимально, необходимо установить его размер равным 16 при модемном соединении или 32 при более скоростных подключениях.

Пожалуй, пора приступать к настройкам. Часть данных хранится в ветви HKEY_LOCAL_MACHINE в разделе System\CurrentControlSet\Services\Class\NetTrans\0000. Здесь 0000 - номер профиля (их может быть несколько, например, 0001, 0002,...). Значение MTU выставляется с помощью строкового ключа MaxMTU (1500, 1002, 576, 552).

Для настройки следующих параметров откройте раздел System\CurrentControlSet\Services\VxD\MSTCP. Значение MSS устанавливается строковым ключом DefaultMSS: его значение равно MaxMTU - 40.

RWIN настраивается в строковом ключе DefaultRcvWindow. Поэкспериментируйте с этим значением, но помните, что оно должно быть кратно MSS (MSS*4 или MSS*8).

TTL настраивается с помощью строкового ключа DefaultTTL.

Вы можете разрешить Windows самой определять оптимальное значение MTU.

Если опция включена, то Windows сама подбирает оптимальное значение MTU, однако процедура вычисления MTU для каждого соединения требует немало времени, что чуть тормозит работу при закачке небольших файлов и веб-серфинге. Для установки этого параметра добавьте строковый ключ PMTUDiscovery. Значение "1" включает его, "0" - выключает.

Обнаружение черных дыр. Установка этого параметра разрешает протоколу TCP пытаться обнаружить никуда не ведущие роутеры и те, что не возвращают ICMP-сообщений о необходимости фрагментации при определении наилучшего MTU. Это также, как и любая дополнительная процедура, может замедлять работу в Интернете - попробуйте поэкспериментировать с ее отключением. Для этого добавьте строковый ключ PMTUBlackHoleDetect со значением "1" для включения и "0" для выключения.

Для настройки NDI Cache откройте раздел System\CurrentControlSet\Services\VxD\NWLink\Ndi\params\cachesize и в значении по умолчанию пропишите нужное число (16 или 32).

Вы можете увеличить количество одновременных подключений к серверу, включив эту опцию, что часто бывает весьма полезно, с помощью DWORD ключей MaxConnectionsPer1_0Server (установите его значение в 10) и MaxConnectionsPerServer (прировнять к 8). Эти ключи надо добавить в раздел HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings. Удаление их приведет к отключению возможности.

Все настройки вступают в силу после перезагрузки компьютера. Поэкспериментируйте с различными значениями, и вы сможете увеличить скорость подключения на 20-40%.


Свойства TCP/IP

Настройка свойств протокола TCP/IP

Хороший админ тот, кто сидит на работе и ничего не делает. Но не потому что ему лень - это плохой админ, а потому что уже все сделано. Однако, учитывая немалые объемы работ, вероятность переделать ее всю и сидеть отдыхать весьма мала. Как быть хорошему админу в этой непростой ситуации? Надо оптимизировать свою работу. Максимально исключить ручной труд, чтобы компьютер все делал за человека. И у каждого админа есть свои наработки и хитрости в этой области. Об одной из них я и хочу рассказать в этой статье. А речь пойдет об автоматической настройке протокола TCP/IP через реестр Windows. Причем эта настройка может сильно облегчить жизнь и некоторым простым пользователям. Например, если вам приходится часто переключаться между двумя сегментами локальной сети со своими настройками или у вас есть ноутбук, которым вы пользуетесь на работе и дома. В общем, если вам приходится частенько заглядывать в свойства протокола TCP/IP, то эта статья для вас. Сразу оговорюсь, что приведенные рекомендации справедливы для Windows 9x. В NT/2000/XP есть определенные различия.

Для начала я приведу полностью готовый и вполне работоспособный пример reg-файла для настроек свойств протокола. Можете просто скопировать его, слегка подправить под себя и пользоваться. Ну, а что придется изменить в файле я объясню немного ниже. Сразу предупрежу, что устанавливать протоколы вам придется все же вручную.

REGEDIT4

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\NetTrans\0000]
"IPAddress"="192.168.1.111"
"IPMask"="255.255.255.0"
"DefaultGateway"="192.168.1.100"
"DriverDesc"="TCP/IP"
"InfSection"="MSTCP.ndi"
"DeviceVxDs"="vtdi.386,vip.386,vtcp.386,vdhcp.386"
"InstallVnbt"="0"
"InfPath"="NETTRANS.INF"
"ProviderName"="Microsoft"
"DriverDate"=" 4-23-1999"
"DevLoader"="*ndis"
"NodeType"="1"

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\NetTrans\0000\Ndi]
"DeviceID"="MSTCP"
"MaxInstance"="8"
"NdiInstaller"="mstcp.dll,TcpNdiProc"
"HelpText"="TCP/IP is the protocol you use to connect to the Internet and wide-area networks."
"InstallInf"=""

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\NetTrans\0000\Ndi\Interfaces]
"DefUpper"="netbios,tdi,winsock"
"DefLower"="ndis2,ndis3,odi,ndisatm"
"UpperRange"="netbios,tdi,winsock"
"LowerRange"="ndis2,ndis3,odi,broadcastip,ndisatm"
"Upper"="netbios,tdi,winsock"
"Lower"="ndis2,ndis3,odi,ndisatm"

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\NetTrans\0000\Ndi\Compatibility]
"ExcludeAll"="FTPTCP96,NMNDIS3,NEWTNDIS,NEWTODI,NEWTDIAL,MULTINET"

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\NetTrans\0000\Ndi\Install]
@="MSTCP.Install"

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\NetTrans\0000\Ndi\Remove]
@="MSTCP.Remove"

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\NetTrans\0000\Ndi\params]

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\NetTrans\0000\Ndi\params\AllowATM]
"location"="System\\CurrentControlSet\\Services\\Vxd\\MSTCP"

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\NetTrans\0000\Ndi\Default]
@="True"

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\NetTrans\0000\NDIS]
"LogDriverName"="MSTCP"
"MajorNdisVersion"=hex:03
"MinorNdisVersion"=hex:0a

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\MSTCP]
"LMHostFile"="C:\\WINDOWS\\lmhosts"
"LocalCopyMade"="1"
"EnableDNS"="1"
"Lanabase"="0"
"EnableRouting"="0"
"HostName"="imya_compa"
"Domain"="cool.domen.ru"
"SearchList"=""
"NameServer"="192.168.1.100,192.168.1.200"

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\MSTCP\Ndi]

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\MSTCP\Ndi\params]

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\MSTCP\Ndi\params\AllowATM]
"ParamDesc"="Разрешить привязку к ATM"
"default"="0"
"type"="enum"
@="0"

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\MSTCP\Ndi\params\AllowATM\enum]
"0"="Нет"
"1"="Да"

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\MSTCP\Ndi\ATMDefaults]
"ARPServerList"="4700790001020000000000000000A03E00000200"
"MARServerList"="4700790001020000000000000000A03E00000200"
"SapSelector"=hex:01,00,00,00
"MTU"=hex:dc,23,00,00

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\MSTCP\Parameters]

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\MSTCP\Parameters\Winsock]
"MaxSockAddrLength"=hex:10,00,00,00
"MinSockAddrLength"=hex:10,00,00,00
"HelperDllName"="%windir%\\system\\wsock32.dll"

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\MSTCP\ServiceProvider]
"LocalPriority"=hex:f3,01,00,00
"HostsPriority"=hex:f4,01,00,00
"DnsPriority"=hex:d0,07,00,00
"NetbtPriority"=hex:d1,07,00,00
"Class"=hex:08,00,00,00
"ProviderPath"="%windir%\\system\\wsock32.dll"

Для краткости кусочек "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\" в названии раздела я буду опускать, т.к. для всех разделов он все равно одинаковый.

Сперва нас интересует раздел Class\NetTrans\0000, а точнее параметры "IPAddress", "IPMask", "DefaultGateway". Если "IPMask" вам менять вряд ли придется, то вот два остальных параметра изменить надо. "IPAddress" соответствует полю IP-адрес одноименной вкладки в свойствах протокола TCP/IP, а "DefaultGateway" установленному шлюзу на вкладке "Шлюз". Если их несколько, то они должны перечисляться через запятую. Также проверьте, чтобы значение параметра "DriverDate" соответствовало установленному у вас драйверу (достаточно раз настроить все вручную и посмотреть в реестре его значение).

В разделе Class\NetTrans\0000\Ndi в параметре "HelpText" задается текст, который появляется в разделе "Описание" при выделении протокола TCP/IP на вкладке "Конфигурация" в свойствах сетевого окружения. Можете добавить там строгое предупреждение пользователям о запрете редактирования настроек.

Теперь обратимся к подразделу VxD\MSTCP. Если у вас присутствует DNS, то параметр "EnableDNS" должен быть равен "1" (строковое значение). Адреса DNS перечисляются в параметре "NameServer". Если их несколько (как в примере), то надо перечислить их через запятую. Имя компьютера и домен задаются в параметрах "HostName" и "Domain" соответственно (они задаются только если у вас присутствует DNS). Если у вас Windows установлен не в директорию по умолчанию, то также придется подправить путь в параметре "LMHostFile".

Вот собственно и все. Остальные настройки лучше не трогать, т.к. они одинаковы для разных компьютеров. Кстати, вовсе не обязательно импортировать этот файл целиком. Если у вас уже были один раз настроены все свойства, то достаточно добавлять только изменяемые параметры, которые я описал выше.

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


Ускорение Интернета

Ускорение работы с Интернетом

Автор статьи: Сергей Трошин
e-mail: stnvidnoye@chat.ru
http://stnvidnoye.chat.ru/
Эта информация очень хорошо дополняет материалы изложенные ранее в статье "Настройка и оптимизация модемного соединения".

По умолчанию, Винды не настроены под современные компьютеры с новыми модемами, поэтому необходимо изменить вручную некоторые параметры. Просмотрите содержимое файлов WIN.INI, SYSTEM.INI - в них можно кое-что подправить. Например, в файле WIN.INI - выставить скорость портов:
в разделе [Ports] прописать

COM1:=921600,n,8,1,p
COM2:=921600,n,8,1,p
COM3:=921600,n,8,1,p
COM4:=921600,n,8,1,p

В SYSTEM.INI можно дописать в секцию [386Enh] параметры для портов

COMBoostTime=1
COM2Buffer=1024

Эти параметры увеличивают быстродействие портов и размер буфера очереди порта, к которому подключен модем. Разные источники рекомендуют устанавливать параметр COM2Buffer (равный, по умолчанию 128 байт) от 512байт до 16 килобайт, но оптимально, по моему мнению будет от 1024 байт до 4 килобайт, так как при очень больших значениях может произойти обратный эффект и связь ухудшится, а малый размер буфера, также может привести к потере информации при хорошей связи на быстрых линиях. Но лучше всего поэкспериментировать с разными значениями, и выбрать наиболее подходящее для конкретного ПК и модема.

Если вы подключены к Интернету, то проверьте настройки вашего соединения. В меню свойств соединения с провайдером на вкладке "Тип Сервера" отключите вход в сеть и неиспользуемые протоколы, оставив только TCP/IP (если вы не подключены к локальной сети). В меню свойств модема на страничке "Дополнительно" поставьте флажки "Use Error control", "Compress Data", "Use Flow control"-"Hardware" и отключите протоколирование процесса соединения, а на вкладке "Соединение"-"Настройки порта" установите движки, регулирующие размер ФИФО-буферов, в максимально правое положение.

Скорость порта на закладке "Общие" тоже надо выставить в максимум, обычно это 115200 бит в секунду, однако можно сделать так, что появится возможность выбора вплоть до 921600. Гарантии, правда, что ваш модем сможет работать с такой настройкой порта нет (внутренний даже, скорее всего не заработает), поэтому еще раз напоминаю: зарезервируйте реестр, так как для установки максимально возможной скорости придется его редактировать, а ошибки в этом деле могут "обрушить" всю систему. Создайте в Блокноте файл MODEM921600.REG с таким содержанием (постарайтесь без опечаток - изменение исходного значения выделено курсивом!):

REGEDIT4

[HKEY_LOCAL_MACHINE \System\CurrentControlSet\Services\Class\Modem\0000]
"Properties"=hex:80,01,00,00,ff,00,00,00,ff,00,00,00,07,00,00,00,0f,00,00,00,\
77,07,00,00,00,10,0e,00,00,fa,00,00

Нажав на значке полученного файла левую кнопку мыши, вы внесете эту информацию в реестр, после чего в свойствах модема появятся еще и скорости 230400, 460800, 921600 бит в секунду. Если модем не заработает, вернитесь к 115200, или выбросите его (кергуду - шутка).

Теперь, в Панели управления выберите "Сеть" и откройте меню свойств Dial-UP Adapter'а, перейдите на закладку "Advanced" (Дополнительно) и установите параметры:

"Enable Point to Point IP" - YES;
"IP Packet Size" - LARGE; (MTU при этом будет равно 1500)
"Record a log file" - NO;
"Use IPX header compression" - NO;
на вкладке "Driver Type" (Тип драйвера) выберите
"Enhanced mode [32 and 16 bit] NDIS driver"

- эти настройки еще немного добавят жизни вашему модему.

Часто, процесс входа в Интернет ускоряет использование скриптов, если вы не можете составить скрипт сами, возьмите его у вашего провайдера.

С помощью программ NetBoost 99 и iSpeed можно изменить некоторые сетевые параметры, оптимизируя их под модемное соединение (очень хороши программы Internet Tweak 2000 и MTUSpeed). При этом, правда, очень желательно проконсультироваться в службе технической поддержки провайдера об оптимальных значениях параметров, изменяемых этими программами. Работу в Интернете поможет ускорить программа Legion-The Host Master, она записывает IP адреса часто посещаемых серверов в специальный файл, что сокращает время поиска сервера на несколько секунд. А с помощью супер-программы ATGuard вы избавитесь от загрузки баннеров, скриптов, всплывающих окон, что может ускорить получение полезной информации в несколько раз!!!!!!

Замедлять работу IE5 может очень большой кеш (т.н. "Временные интернет-файлы"), размер которого задается в панели "Общие" диалога "Свойства Интернета". Обычно, вполне достаточно уменьшить его до 10 мегабайт.

Некоторые настройки, повышающие удобство и скорость работы, можно вручную сделать в реестре: например, в разделе

[HKEY_LOCAL_MACHINE \System\CurrentControlSet\Services\Class\Modem\0000\Init]

содержится скрытая строка инициализации модема.

В строке
[HKEY_LOCAL_MACHINE \System\CurrentControlSet\Services\Class\Modem\0000]
есть параметр Reset, который, обычно равен AT&F1, из-за чего модем, в некоторых программах, может набирать номер тоновым набором, поэтому его лучше изменить на AT&F1Z, чтобы после ресета модем инициализировался вашими установками (конечно, если вы занесли их в память модема для вызова командой ATZ), а не фабричными.

Для более точной подстройки протокола TCP/IP и устранения некоторых ошибок мелкософтом рекомендуется добавить в реестр:

[HKEY_LOCAL_MACHINE \System\CurrentControlSet\Services\VxD\MSTCP]
"Tcp1323Opts"=dword:00000003
"SackOpts"="1"
"BSDUrgent"="1"

Количество одновременных подключений к серверу HTTP1.0 ограничено четырьмя, к серверу HTTP1.1 по умолчанию может быть только два одновременных подключения. Можно увеличить эти цифры до восьми:

[HKEY_CURRENT_USER \SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings]
"MaxConnectionsPer1_0Server "=dword:00000008
"MaxConnectionsPerServer"=dword:00000008

Навязшая в зубах беда модемов Sportster (и некоторых других) с определением (или, скорее, с неопределением) сигнала "ЗАНЯТО", лечится, на самом деле, очень легко: просто после набора номера должна быть пауза в пару секунд - благодаря ей количество правильно понятых сигналов "ЗАНЯТО" возрастает на порядок! Для создания этой паузы надо после номера в свойствах соединения с провайдером поставить две-три запятых, например: ,995-5555,,, - эти паузы перед набором номера и после него отсекают помехи и щелчки переходных процессов наших замшелых телефонных линий, благодаря чему и улучшается работа модема.


Реестр Windows NT,2000,XP

Здесь собраны сведения по реестру операционной системы Windows NT,2000, точнее его особенности по сравнению с Windows 9х.

Установка Windows 9x поверх NT/2000/XP
Статья для тех, кто хочет поставить Win9x второй операционкой и не переустанавливать при этом 2000/XP.
читать дальше

Ограничение доступа к настройкам Internet Explorer
Как запретить пользователям менять различные настройки в меню Сервис->Свойства обозревателя...
читать дальше

Основные команды консоли восстановления
Логичное продолжение предыдущей статьи. Мало поставить консоль восстановления, нужно еще научиться ей пользоваться.
читать дальше

Устанавливаем консоль восстановления Windows XP
Консоль восстановления - это командная строка, которая поддерживает целый список команд, которые могут быть использованы при устранении неполадок с вашим компьютером, когда ваш компьютер запускается некорректно или же не запускается вовсе.
читать дальше

Настройка контекстного меню файлов
Дополнительные возможности по расширению контекстного меню файлов в Windows XP и 2000.
читать дальше

Установка SP1 на Windows XP
Небольшая инструкция по установке SP1 на Windows XP.
читать дальше

Оснастка MMC
Описание работы с утилитой оснастка MMC для настройки Windows.
читать дальше

Настройка меню "Пуск" в Windows XP
В Windows XP появилось гораздо больше параметров меню "Пуск", которые можно настроить. О них и пойдет речь.
читать дальше

Описание служб в Windows NT/2000/XP
Полный список стандартных служб с рекомендациями по их настройке.
читать дальше

Подборка советов по настройке и работе в Windows XP
Здесь описаны небольшие советы и хитрости по настройке некоторых возможностей этой операционной системы.
читать дальше

Настройка свойств сети и оболочки Windows NT
Этот материал открывает целый цикл статей по настройке различных параметров оболочки Windows NT.
читать дальше

Особенности реестра
В статье описаны основные отличия архитектура реестра операционных систем Windows NT и 9х.
читать дальше


Особенности реестра

Материал данной статьи большей частью взят из книги Г. Борн "Реестр Windows 98: Пер. с англ." - СПб.: BHV - Санкт-Петербург, 2000.

Реестр Windows NT очень похож на реестр Windows 9x, но существует ряд существенных отличий, основным из которых является организация корневых разделов.

Хотя в окне редактора реестра видны шесть разделов, но реально, раздел HKEY_DYN_DATA недоступен. Все остальные разделы по своей сути не отличаются от аналогичных в Windows 9х (более подробно о них читайте в статье "Редактор RegEdit и структура реестра").

Еще одно существенное отличие - в способе хранения информации реестра. Если в Windows 9x она хранится в двух файлах: SYSTEM.DAT и USER.DAT, то в NT информация разбита на так называемые ульи (hive). Такое положение обусловлено принципиальным отличием концепции безопасности этих операционных систем. Имена файлов ульев и пути к каталогам, в которых они хранятся, расположены в разделе HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\hivelist. В таблице даны краткие описания ульев реестра и файлов, в которых они хранятся:

HKEY_LOCAL_MACHINE \SAM | Содержит информацию SAM (Security Access Manager), хранящуюся в файлах SAM, SAM.LOG, SAM.SAV в папке \%Systemroot%\System32\Config.
HKEY_LOCAL_MACHINE \SECURITY | Содержит информацию безопасности в файлах SECURITY, SECURITY.LOG, SECURITY.SAV в папке \%Systemroot%\System32\Config.
HKEY_LOCAL_MACHINE \SOFTWARE | Содержит информацию о программном обеспечении. Эта информация хранится в файлах SOFTWARE, SOFTWARE.LOG, SOFTWARE.SAV в папке \%Systemroot%\System32\Config.
HKEY_LOCAL_MACHINE \SYSTEM | Содержит информацию об аппаратных профилях этого подраздела. Информация хранится в файлах SYSTEM, SYSTEM.LOG, SYSTEM.SAV в папке \%Systemroot%\System32\Config.
HKEY_CURRENT_CONFIG | Содержит информацию о подразделе System этого улья, которая хранится в файлах SYSTEM.SAV и SYSTEM.ALT в папке \%Systemroot%\System32\Config.
HKEY_USERS\.DEFAULT | Содержит информацию, которая будет использоваться для создания профиля нового пользователя, впервые регистрирующегося в системе. Информация хранится в файлах DEFAULT, DEFAULT.LOG, DEFAULT.SAV в папке \%Systemroot%\System32\Config.
HKEY_CURRENT_USER | Содержит информацию о пользователе, зарегистрированном в системе на текущий момент. Эта информация хранится в файлах NTUSER.DAT и NTUSER.DAT.LOG, расположенных в каталоге \%Systemroot%\Profiles\Username, где Username - имя пользователя, зарегистрированного в системе на данный момент.

Помимо этих изменений в реестре Windows NT добавились новые типы данных. Для работы с ними надо запускать редактор REGEDT32.EXE. Добавлены данные типа

REG_EXPAND_SZ - расширяемые строки данных. Такие строки содержат переменные, которые могут расширяться при вызове приложения. Например, в строку с этим типом данных можно вставить переменную %Systemroot%, и эта переменная будет замещаться именем каталога, в котором установлена операционная система.

REG_MULTI_SZ - многострочные поля, состоящие из строк, отделенных друг от друга символами NULL.

Вот коротко об отличиях реестра Windows NT и 9х. При работе с ним следует помнить, что многие материалы по настройке оболочки операционной системы, изложенные на этом сайте, справедливы как для Windows 9x, так и для NT.


Настройка свойств сети, оболочки Windows NT

Предложенный вашему вниманию материал открывает цикл статей, посвященных настройке различных параметров и элементов Windows NT,2000. Информация для статьи взята с сайта http://registry.hoha.ru, автором которого является Васкецов Сергей, с его любезного разрешения, и немного переработана, с целью сделать ее более понятной для малоподготовленных пользователей, не очень хорошо владеющих этой операционной системой.

И начнем мы рассмотрение настроек, пожалуй, с самой важной темы, от которой зависит безопасность работы с операционной системой: настройки различных параметров и установок работы в сети. Рассматриваемые настройки хранятся в ветви HKEY_LOCAL_MACHINE реестра. В этой ветви надо открыть раздел Software\Microsoft\Windows\CurrentVersion\Policies\Network. Для начала условимся о некоторых критериях работы: все ключи имеют тип DWORD, если это не обговорено отдельно; значение ключа равное 1 включает данную опцию, 0 выключает, если это не обговорено отдельно. Отмечу, что рассматриваться различные настройки будут по их месторасположению в реестре (т.е. приводятся сведения о ключах, расположенных в одном разделе).

Для запрещения кэширования паролей к различным ресурсам в сети служит ключ DisablePwdCaching. Если вы опасаетесь за свою безопасность и не хотите, чтобы ваша информация стала доступна всем подряд, то лучше выставить значение этого ключа равным 1.

Ключ HideSharePwds определяет, показывать ли пароли к расшаренным ресурсам (имеющим общий доступ) открытым текстом или заменять их звездочками.

Минимальную длину пароля можно выставить с помощью двоичного (BINARY) ключа MinPwdLen.

Ключ NoDialIn запрещает соединение удаленного доступа.

Ключ NoEntireNetwork запрещает отображение папки "Вся сеть".

Для запрещения доступа к файлам служит ключ NoFileSharing, а для запрета управления доступом к файлам - ключ NoFileSharingControl.

Запрет доступа к принтерам устанавливается ключом NoPrintSharing. Ключ NoPrintSharingControl устанавливает запрет на управление доступом к принтерам.

Для того чтобы запретить перечисление содержимого рабочей группы, надо установить значение ключа NoWorkgroupContents равным 1.

На этом, пожалуй, рассмотрение дальнейших настроек сети временно прекращу, и перейду к настройкам различных параметров оболочки операционной системы расположенных в ветви HKEY_CURRENT_USER в разделе Software\Microsoft\Windows\CurrentVersion\Policies\System. Если вы обратили внимание на то, что настройки проводятся в ветви HKCU, то должны понять, что они будут относиться только к текущему пользователю. Для установки этих параметров для других пользователей надо пользоваться ветвью HKEY_USERS\Name (здесь Name - имя нужного вам пользователя). Впрочем, об этом уже не раз упоминалось ранее.

Для начала запретим пользователю поменять пароль в диалоге входа в систему. Для этого достаточно установить у ключа DisableChangePassword значение 1.

Если вы хотите запретить блокировку компьютера в диалоге входа в систему, воспользуйтесь ключом DisableLockWorkstation.

DisableTaskMgr - запрещает запуск менеджера задач.

Все эти настройки, конечно, могут помочь оградить систему от глупых пользователей, пытающихся всюду сунуть нос, но от более опытных юзеров это не спасет - ведь они могут точно так же открыть реестр и поменять 1 на 0. Для того чтобы они не смогли этого сделать, надо запретить запуск редакторов реестра Regedit и Regedt32 с помощью ключа DisableRegistryTools. Однако самые умные все равно смогут это обойти, воспользовавшись reg-файлом :).

Теперь давайте посмотрим, как можно ограничить свободу пользователей по настройке свойств экрана. Для запрета вызова свойств экрана воспользуйтесь ключом NoDispCPL. NoDispBackgroundPage запрещает вызов страницы свойств фона дисплея. Запретить вызов страницы свойств хранителя экрана можно ключом NoDispScrSavPage. Для запрета вызова страницы свойств оформления экрана надо присвоить значение 1 ключу NoDispAppearancePage. Запрет вызова страницы настроек дисплея осуществляется ключом NoDispSettingsPage.

Ключ EnableProfileQuota включает ограничение профиля в размерах.

В финале статьи приведу настройки, запрещающие командную строку MS-DOS и RealMode. Для этого надо установить в 1 ключи Disabled и NoRealMode соответственно в разделе Software\Microsoft\Windows\CurrentVersion\Policies\WinOldApp ветви HKEY_LOCAL_MACHINE.

Пожалуй, для начала хватит :). Тема эта очень обширна, и впереди будет немало статей, посвященных настройке Windows NT. Так что, как говорится, следите за новостями :).


Ограничение доступа к настройкам Internet Explorer

Статья написана на основе материала, присланного Дмитрием Ефимовым

На сайте есть довольно много статей, посвященных ограничению доступа к различным настройкам и элементам операционной системы, а настройки браузера незаслуженно обойдены стороной. Однако тема эта не менее важна, ведь именно браузер (а в данной статье речь пойдет об Internet Explorer'e) является окном в большой мир глобальной паутины и именно через него на компьютер могут попадать различные вирусы, черви, трояны и прочие вредоносные программы. Поэтому настройка браузера на максимальную защиту от внешних факторов является важным элементом защиты компьютера. Однако, как бы не настроил администратор программу, всегда в защите присутствует слабое звено - пользователь. Вот на устранение влияния этого слабого звена и ориентирована данная статья, а именно, речь пойдет об ограничении доступа пользователей к различным элементам настройки Internet Explorer'a.

В Windows есть возможность запретить (разрешить) доступ к свойствам Internet Explorera (Сервис->Свойства обозревателя). Для этого в разделе HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer\Restrictions надо создать (удалить) строковый параметр NoBrowserOptions со значением "1", однако, не всегда можно действовать так грубо, обрубая доступ ко всем настройкам. Иногда приходится использовать не топор палача, а скальпель хирурга. Итак, приступим.

Все настройки, описанные ниже были протестированы на Windows XP с Internet Explorer 6, но я не вижу причины по которой это не работало бы на других версиях Windows и с другими версиями браузера.

Откройте раздел реестра (или создайте, если его не существует) HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer\Control Panel. Все настройки, проводимые в этом разделе, будут относиться к пользователю, под которым загружена операционная система в данный момент. Все описанные параметры имеют тип DWORD, значение 1 включает ограничение, 0 - выключает.

AutoConfig - Свойства обозревателя\Подключения\Настройка локальной сети (LAN) (Internet Options\Connections\Local Area Network (LAN) Setting) - блокирует доступ к изменению Автоматических настроек (Automatic configuration)

CalendarContact - Свойства обозревателя\Программы (Internet Options\Programs) - блокирует доступ к изменению Календарь (Calendar) и Адресная книга (Contact list)

Certificates - Свойства обозревателя\Содержание (Internet Options\Content) - блокирует доступ к кнопке Сертификаты (Certificates) и Издатели (Publishers)

CertifPers - Свойства обозревателя\Содержание (Internet Options\Content) - блокирует доступ к кнопке Сертификатов (Certificates)

CertifPub - Свойства обозревателя\Содержание (Internet Options\Content) - блокирует доступ к кнопке Издателей (Publishers)

Check_If_Default - Свойства обозревателя\Программы (Internet Options\Programs) - блокирует доступ к изменению параметров "Проверять, является ли Internet Explorer используемым по умолчанию обозревателем" (Internet Explorer should check to see whether it is the default browser)

Colors - Свойства обозревателя\Общие\Цвета... (Internet Options\General\Colors...) - блокирует доступ к изменению параметров Цвета

Connection Settings - Свойства обозревателя\Подключения (Internet Options\Connections) - блокирует доступ к изменению параметров Подключения, кроме кнопки Установки нового подключения

Accessibility - Свойства обозревателя\Общие\Оформление... (Internet Options\General\Accessibility...) - блокирует доступ к изменению параметров Оформеления (Accessibility)

Fonts - Свойства обозревателя\Общие\Шрифты... (Internet Options\General\Fonts...) - блокирует доступ к изменению параметров Шрифтов (Fonts)

Languages - Свойства обозревателя\Общие\Языки... (Internet Options\General\Language...) - блокирует доступ к изменению параметров Языки (Language)

Links - Свойства обозревателя\Общие\Цвета... (Internet Options\General\Colors...) - блокирует доступ к изменению параметров Цвета на сслыки (Links)

Messaging - Свойства обозревателя\Программы (Internet Options\Programs) - блокирует доступ к изменению Электронная почта (E-mail), Группы новостей (Newsgroups) и Связь по Интернету (Internet call)

Privacy Settings - Свойства обозревателя\Конфиденциальность (Internet Options\Privacy) - блокирует доступ к изменению Параметров настройки (Settings)

Profiles - Свойства обозревателя\Содержание (Internet Options\Content) - блокирует доступ к кнопке Профиль (My Profile)

Proxy - Свойства обозревателя\Подключения\Настройка локальной сети (LAN) (Internet Options\Connections\Local Area Network (LAN) Setting) - блокирует доступ к изменению Прокси-сервер (Proxy server)

Ratings - Свойства обозревателя\Содержание (Internet Options\Content) - блокирует доступ к кнопкам Ограничения доступа (Content Advisor)

SecAddSites - Свойства обозревателя\Безопасность (Internet Options\Security) - запрещает добавлять сайты для Безопасности

SecChangeSettings - Свойства обозревателя\Безопасность (Internet Options\Security) - блокирует доступ к кнопкам Уровень безопасности для этой зоны (Security level for this zone)

Для простоты настройки ниже приведен код reg-файла, в котором вам достаточно раскомментировать нужные строки и импортировать данные в реестр:

REGEDIT4

[HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer\Control Panel]
;"AutoConfig"=dword:00000001
;"CalendarContact"=dword:00000001
;"Certificates"=dword:00000001
;"CertifPers"=dword:00000001
;"CertifSite"=dword:00000001
;"CertifPub"=dword:00000001
;"Check_If_Default"=dword:00000001
;"Colors"=dword:00000001
;"Connection Settings"=dword:00000001
;"Accessibility"=dword:00000001
;"Fonts"=dword:00000001
;"Languages"=dword:00000001
;"Links"=dword:00000001
;"Messaging"=dword:00000001
;"Privacy Settings"=dword:00000001
;"Profiles"=dword:00000001
;"Proxy"=dword:00000001
;"Ratings"=dword:00000001
;"SecAddSites"=dword:00000001
;"SecChangeSettings"=dword:00000001


Описание служб в Windows NT/2000/XP

Описание изложено на основе Windows 2000, однако, большинство служб присутствует и в Windows XP.

Знаете ли вы, что во время вашей работы за компьютером, на нем постоянно трудятся десятки маленьких работников, которые помогают во всем и по мере сил облегчают вам жизнь? И имя этим маленьким работникам - службы. Но, как и любые трудяги, им постоянно нужна пища. А что же они едят? Да оперативную память! Для своего функционирования каждый такой работник "съедает" часть оперативки. А вы уверены, что к этому славному обществу не присоединилось несколько дармоедов, которые, занимая лишнюю память, тем не менее, ничего не делают? Спешу вас обрадовать: если все устанавливалось по умолчанию, а потом никакой настройки не проводилось, то именно так оно и есть. А оно нам надо? Наверняка, лишней оперативки у вас нет. Так давайте же посмотрим в лицо каждому нашему работнику, и если он стыдливо отведет взгляд, тут же выгоним из этой славной команды, в крайнем случае, посадим на скамейку запасных :).

Но начнем с определения того, что же такое службы вообще. Служба - небольшая программа, стартующая одновременно с запуском Windows и выполняющая какие-либо служебные функции или обеспечивающая работу других утилит. Есть только в Windows NT/2000/XP. Просмотреть весь список служб можно запустив Пуск->Настройка->Панель управления->Администрирование->Службы.

Внушительный список, не так ли? Правда, активны в данный момент только те, у которых в поле "Состоянии" стоит значение "Работает", но и их тоже весьма немало. Вот на них в первую очередь и надо обратить свое внимание. Оговорюсь сразу, что мы будем менять тип запуска службы. Для этого надо дважды щелкнуть по нужной службе и на вкладке "Общие" найти поле "Тип запуска", в котором, как это ни странно, и можно будет выбрать нужный нам режим. Вариантов всего три: авто - работает всегда, вручную - запускается по мере необходимости самой операционной системой, отключено - вообще не запускается. Отключать службы надо очень аккуратно. И тут лучше оставить что-то лишнее, чем удалить необходимый для работы компонент. Лучше выставлять режим "Вручную", чтобы операционная система при необходимости могла загрузить требуемую службу. В противном случае могут возникнуть ошибки в работе программ вплоть до краха системы, пропадет доступ к некоторым возможностям, да и просто работать станет некомфортно.

Итак, настала пора пройтись по самим службам. При рекомендации отключить ту или иную службу я исхожу из предпосылки, что настройка проводится на обычном домашнем компьютере. В противном случае вам надо исходить из реальных условий эксплуатации компьютера. Подробно описывать каждую службу я не буду, по описанию к ней легко понять о ее назначении (по крайней мере, в общих чертах), а вот небольшие комментарии дам.

DHCP-клиент (DHCP Client) - в принципе, если у вас в настройках сетевых подключений (в том числе к интернет) нет упоминаний о DHCP-сервере, то можно поставить запуск Вручную, но лучше, все же, оставить как Авто.
DNS-клиент (DNS Client) - если компьютер не подключен к интернет, то можно установить Вручную.
NetMeeting Remote Desktop Sharing - разрешает проверенным пользователям доступ к рабочему столу - отключить за особой вредностью.
Plug and Play - ну куда без плуг-анд-плея? Лучше ничего не трогать!
QoS RSVP - для локальной машины вряд ли понадобится, поэтому оставить Вручную.
Telnet - если вам надо, чтобы кто-то удаленно запускал на вашей машине программы из консоли, то, конечно, можете оставить и Вручную. Для всех остальных - Отключить.
Windows Installer - лучше данную службу не беспокоить, так что пусть работает Вручную.
Агент политики IPSEC (IPSEC Policy Agent) - служба нужна только если компьютер подключается к домену Windows 2000. В противном случае лучше выставить Вручную.
Диспетчер авто-подключений удаленного доступа (Remote Access Auto Connection Manager) - можно выставить Вручную или вообще Отключить.
Диспетчер логических дисков (Logical Disk Manager) - можно выставить тип запуска Вручную.
Диспетчер очереди печати (Print Spooler) - если у вас нет принтеров (в том числе сетевых), то можно службу вообще отключить - все равно вам файлы печатать не придется.
Диспетчер подключений удаленного доступа (Remote Access Connection Manager) - для локальных компьютеров в принципе, можно выставить и Вручную, если же вы подключены к сети, то лучше оставить Авто.
Диспетчер сетевого DDE (Network DDE DSDM) - изначально стоит Вручную. Ну и пусть стоит.
Диспетчер служебных программ (Utility Manager) - я надеюсь, "Специальные возможности" вы даже не поставили, так что смело отключайте эту службу. Конечно, если вам нравится, как выскакивает сообщение, если пять раз подряд нажать на Shift, то можете и оставить.
Диспетчер учетных записей безопасности (Security Accounts Manager) - для локальных компьютеров и сетевых машин, для которых информация о безопасности для учетных записей локальных пользователей не получается из сети, можно выставить Вручную. Иначе - Авто.
Журнал событий (Event Log) - если вы никогда не заглядывали в лог-файл работы системы и даже не знаете, где он находится, то отключите службу. Более продвинутым рекомендуется оставить Авто.
Защищенное хранилище (Protected Storage) - именно эта служба хранит пароли к вашему почтовому ящику, и не только к нему. Переключить на режим Вручную можно только если компьютер не подключен ни к интернет, ни к локальной сети.
Инструментарий управления Windows (Windows Management Instrumentation) - довольно важная служба. Пусть уж она лучше работает постоянно.
Источник бесперебойного питания (Uninterruptible Power Supply) - если у вас есть ИБП, с управляющим интерфейсом, подключенным к компьютеру, то ставьте Авто, иначе - Отключено.
Клиент отслеживания изменившихся связей (Distributed Link Tracking Client) - нужна только для компьютеров в домене Windows 2000. Для всех остальных выставляйте Вручную.
Координатор распределенных транзакций (Distributed Transaction Coordinator) - уж больно страшно описание этой службы звучит, поэтому лучше оставьте ее Вручную.
Локатор удаленного вызова процедур (RPC) (Remote Procedure Call (RPC) Locator) - управляет базой данных службы имен RPC. Изначально стоит Вручную - ну и пусть стоит.
Маршрутизация и удаленный доступ (Routing & Remote Access) - на несетевых компьютерах ставьте Отключено, если компьютер в локальной сети, то тоже можно отключить - это вряд ли понадобится, в крайнем случае, админ объяснит вам всю глубину вашего заблуждения и выставит тот режим, какой нужен.
Модуль поддержки смарт-карт (Smart Card Helper) - сомневаюсь, что у вас есть устройство чтения смарт-карт, так что выставляйте Вручную.
Обозреватель компьютеров (Computer Browser) - если компьютер не подключен в локальную сеть, то эта служба вам не нужна, так что выставляйте ее Вручную.
Общий доступ к подключению Интернета (Internet Connection Sharing) - необходимость этой службы весьма сомнительна в любом случае. Даже если компьютеры в вашей локальной сети выходят в интернет именно через вас, то для этих целей лучше воспользоваться специальными программами, предоставляющими массу дополнительных возможностей. Ну, а если компьютер вообще не подключен к сети, то тем более надо эту службу отключить.
Оповещатель (Alerter) - для компьютеров в локальной сети оставить Вручную, у домашнего компьютера можно отключить.
Оповещения и журналы производительности (Performance Logs & Alerts) - не настолько уж эта служба и важна, чтобы выставлять ее в Авто режим, поэтому оставьте Вручную.
Планировщик заданий (Task Scheduler) - если вы пользуетесь планировщиком, то, конечно, оставляете Авто, в противном случае - Отключено.
Поставщик поддержки безопасности NT LM (NT LM Security Support Provider) - обеспечивает безопасность программам, использующим удаленные вызовы процедур (RPC) через транспорты, отличные от именованных каналов. Лучше оставить Вручную.
Рабочая станция (Workstation) - нужна для других служб, оставлять Авто.
Расширения драйвера оснастки управления Windows (Windows Management Instrumentation Driver Extensions) - службу можно выставить Вручную.
Сервер (Server) - для компьютеров, не подключенных к локальной сети, эту службу можно отключить.
Сервер папки обмена (ClipBook) - оставляйте Вручную. Для несетевых компьютеров можно вообще отключить.
Сетевой вход в систему (Net Logon) - имеет значение по умолчанию - Вручную. Лучше его не менять.
Сетевые подключения (Network Connections) - как ни странно, но даже если установлена Вручную, то все равно всегда запущена. Если вы не подключены к локальной сети и не выходите с этого компьютера в интернет, то можете и отключить ее, для остальных случаев лучше не трогать.
Система событий COM+ (COM+ Event System) - рекомендуют выставлять значение этой службы Авто, так что лучше послушать рекомендации.
Служба RunAs (RunAs Service) - часто ли вам приходится запускать приложения от имени других пользователей? Смело можете ставить Вручную.
Служба администрирования диспетчера логических дисков (Logical Disk Manager Administrative Service) - служба запускается Вручную, лучше это значение не менять.
Служба времени Windows (Windows Time) - устанавливает показания часов компьютера. Оставляйте Вручную.
Служба индексирования (Indexing Service) - индексирует содержимое и свойство файлов на компьютере, для обеспечения быстрого их поиска. Но, на мой взгляд, файлы на компьютере лучше искать с помощью FARa или Windows Commandera, так что службу лучше отключить.
Служба поддержки TCP/IP NetBIOS (TCP/IP NetBIOS Helper Service) - для компьютера, не подключенного в локальную сеть, отключить, для остальных - Авто.
Служба сетевого DDE (Network DDE) - Вручную.
Служба сообщений (Messenger) - поставить Авто или Вручную для компьютеров подключенных к локальной сети. На домашнем компьютере можно отключить.
Служба удаленного управления реестром (Remote Registry Service) - вы доверите кому-то удаленно ковыряться у вас в реестре? Я - нет. Более того, даже оставлять такую службу вредно, так что однозначно отключать!
Служба факсов (Fax Service) - если у вас нет подключенного факс-модема или вы не пользуетесь им для приема факсимильных сообщений, то смело можете отключать эту службу.
Смарт-карты (Smart Card) - смарт-карты уже упоминались выше, так что действия аналогичны сервису "Модуль поддержки смарт-карт".
Съемные ЗУ (Removable Storage) - если у вас нет съемных носителей типа ZIP, LS-120, то отключайте эту службу. Иначе - Авто.
Телефония (Telephony) - обеспечивает поддержку Telephony API (TAPI) для программ, управляющих телефонным оборудованием и голосовыми IP-подключениями на этом компьютере, а также через ЛВС - на серверах, где запущена соответствующая служба. Выставляем Вручную.
Уведомление о системных событиях (System Event Notification) - для сетевых компьютеров надо выставлять Авто, для домашних - Вручную или Отключено.
Удаленный вызов процедур (RPC) (Remote Procedure Call (RPC)) - на сколько я знаю, эту службу необходимо выставлять в Авто.
Управление приложениями (Application Management) - наконец-то последняя служба! По умолчанию она стоит Вручную. Лучше не менять.

Ну вот, вы прочитали этот довольно утомительный список служб Windows и поспешили поскорее поменять все, по-отключать лишнее и высвободить, наконец, заветные мегабайты оперативки. И тут... случилось непоправимое! Вы отключили жизненно необходимые службы и не заметили этого. Компьютер не грузится, а в рядах доблестных бойцов с детищем MicroSoft царит уныние. Однако не все потеряно! Главное, запустить редактор реестра, а если это не удается, то воспользоваться замечательной программкой RegView, о которой я уже писал. Открываете раздел HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services, там вы увидите подразделы с сокращенными названием служб (разделов там реально больше чем присутствует служб на компьютере, так что придется поискать). В подразделе нужной службы найдите DWORD параметр Start. Он может принимать значения 2 - Авто, 3 - Вручную, 4 - Отключено. Отредактируйте его, перезагрузитесь, и все должно нормально заработать.

Еще раз предупрежу, что если вы не уверены, то лучше не отключайте службу и тогда проблем возникнуть не должно.


Оснастка MMC

Когда я описывал настройку меню "Пуск" с помощью реестра, я упоминал о том, что настраивать оболочку Windows можно не только через реестр или специальные диалоги, но и с помощью других средств. Об одном из таких средств - оснастке (консоли) MMC - и пойдет речь в этой статье.

Консоль MMC (Microsoft Management Console) группирует средства администрирования, которые используются для администрирования компьютеров, служб, других системных компонентов и сетей. Впервые она появилась в Windows 2000. Чтобы запустить ее, проделайте следующее: Пуск->Выполнить->mmc. Перед вами откроется окно

Дальше необходимо добавить групповую политику "Локальный компьютер", где и будут проводиться все настройки. Для этого выберите пункт меню Консоль->Добавить или удалить оснастку..., в появившемся окне нажмите кнопку "Добавить", и из появившегося диалога "Добавить изолированную оснастку" выберите "Групповая политика". Нажмите последовательно кнопки "Готово", "Закрыть", "ОК" и вы должны увидеть следующее:

Давайте попробуем убрать пункт "Выполнить" из меню "Пуск" с помощью этого инструмента. В левой части окна консоли перед вами древовидная структура настраиваемых параметров операционной системы. Откройте пункт меню Конфигурация пользователя->Административные шаблоны->Панель задач и меню "Пуск". В расширенном варианте отображения данных вы сможете почитать описание настраиваемого пункта. Если вы знаете что именно вам надо настроить, то лучше переключиться в стандартный режим, чтобы не занимать лишнее место на экране монитора ненужной вам информацией.

Итак, найдите строку Удалить команду "Выполнить" из меню "Пуск".

Дважды кликните по ней левой кнопкой мыши, отметьте пункт "Включен" и нажмите "ОК". Теперь если вы выберите Пуск->Выполнить, то увидите сообщение, что операция отменена вследствие действующих для компьютера ограничений. После перезагрузки этот пункт вообще пропадет из меню "Пуск". Аналогичным образом можно настроить и другие параметры меню "Пуск" и не только.

Значения "Включен" и "Отключен" показывают действует или нет данная политика, а значение "Не задан" возвращает настройку политики в значение по умолчанию, заложенное в операционной системе.

Вы наверняка уже обратили внимание на большое количество параметров, которые можно настроить с помощью оснастки MMC. Действительно, здесь можно настроить очень многие параметры операционной системы без использования дополнительных инструментальных средств. Описывать их все нет смысла, так что если вас заинтересовал этот способ твикинга, ознакомьтесь с ними самостоятельно, тем более описание настраиваемых параметров дает более чем исчерпывающую информацию.

Ну, а для начального знакомства с оснасткой MMC приведенных сведений должно хватить.


Основные команды консоли восстановления

В один прекрасный день компьютер отказывается загружать систему ...

В один прекрасный день компьютер отказывается загружать систему и выводит на экран тарабарщину на голубом фоне. Неизвестно откуда появляется сообщение о том, что система не может быть запущена, так как потерян или испорчен какой-то файл. Прежде всего вы пытаетесь перезагрузиться, однако этот способ не всегда срабатывает. В такой ситуации восстановить работоспособность системы можно с помощью нового инструмента, входящего в состав Windows 2000 Professional - Консоли восстановления (Recovery Console - RC).

Установка консоли восстановления

Для начала нужно запустить RC с установочного CD-ROM Windows 2000 Pro (в том случае, конечно, если система поддерживает загрузку с CD-ROM) или с установочных дискет. Можно установить RC как один из вариантов загрузки. Установив компакт-диск, выбираем меню Start, затем Run и вводим в командную строку:

{x}:\i386\winnt32 /cmdcons

где вместо х подставляется буква устройства чтения компакт-дисков. После запуска появится диалоговое окно с вопросом о том, нужно ли устанавливать RC. Выбираем Yes. Для установки консоли понадобится до 7Mбайт дискового пространства. По завершении установки система предложит перезагрузиться. После этого новая опция загрузки - <Консоль восстановления> - к вашим услугам.

Для запуска RC с установочных дискет или напрямую с CD-ROM придется загружать систему именно с них. В текстовой части программы установки Windows 2000 Pro появляется возможность выбора между инсталляцией системы (нажав Enter) или ее восстановлением (нажав R). Выбираем вариант восстановления. Далее программа установки предлагает выбрать режим восстановления с помощью консоли восстановления (нажав С) или диска аварийного восстановления emergency repair disk (снова нажав R).

Если система отказывается загружаться, я рекомендую выбирать R, т.е. восстановление с помощью диска аварийного восстановления, даже если самого диска нет. В этом случае автоматически проверяется наличие и целостность всех важнейших системных файлов. Я использовал эту опцию для восстановления Windows 2000 после того, как привел ее в нерабочее состояние установкой Windows NT 4.0. Если этот метод не работает, придется перезагрузиться и запустить RC.

Использование RC

Вне зависимости от того, как запускается RC - с CD-ROM, установочных дисков или из загрузчика - после запуска придется зарегистрироваться. В системах с двойной загрузкой нужно будет выбрать, в какой из установок это сделать (например, C:\winnt, D:\winnt), и ввести пароль администратора. После регистрации появится приглашение на ввод команд. По команде help выдается перечень всех команд, доступных в консоли восстановления. Большинство из них знакомы пользователям командной строки Windows 2000 Pro и DOS, однако информацию по каждой конкретной команде можно получить , набрав

help <command>

В этом примере приведена строка для выдачи информации о команде attrib и результат ее исполнения:

C:\WINNT>help attrib

Команда показывает или изменяет атрибуты файлов:

+ - Назначить атрибут.
- - Снять атрибут.
R - Атрибут файла только для чтения.
S - Атрибут системного файла.
H - Атрибут скрытого файла.
C - Атрибут сжатого файла.

Приведенный результат практически полностью совпадает с результатом выполнения команды

help attrib

из командной строки Windows 2000 Pro. В RC, однако, отсутствует возможность установки или снятия атрибута архивного файла, вместо нее предоставляется возможность работы с атрибутом сжатия. В RC также отсутствуют переключатели /S и /D, изменяющие атрибуты подкаталогов и папок. Большинство команд RC предоставляют сокращенные возможности по сравнению с их вариантами в Windows 2000 Pro. Некоторые команды, однако, существуют только в RC.

Batch. Команда запуска на исполнение файла пакетной обработки. Определены два аргумента: имя запускаемого пакетного файла и файла, в который система перенаправляет выходные данные.

Disable. Команда позволяет предотвратить запуск служб и драйверов при загрузке системы. Она используется в том случае, если на стадии начальной загрузки системы происходит сбой в инициализации службы или драйвера устройства. В команде Disable используется один аргумент - наименование службы, запуск которой мы хотим предотвратить (получить список наименований можно с помощью команды Listsvc). Перед тем как пометить службу флажком запрета на исполнение, команда распечатает флаг запуска службы. Например, команда

disable cdrom

сообщает, что прежний флаг запуска был SERVICE_SYSTEM_START. Это значение нужно запомнить, оно потребуется для возобновления работы службы командой Enable после завершения процедуры восстановления.

Diskpart. С помощью этой команды можно разбить жесткий диск на разделы. Все параметры ей можно передавать из командной строки (введите help diskpart для получения списка аргументов команды). Однако проще работать с ней в диалоговом режиме

diskpart

На текстовом экране появится список разделов жесткого диска. Cтрелками вверх и вниз выбираем необходимый раздел или свободное пространство. После выбора раздела клавишей D удаляем его. Для создания нового раздела в свободном пространстве нажимаем клавишу С.

Система попросит задать размер нового раздела. Завершив все настройки, нажимаем Esc для возврата в RC. Не забудьте отформатировать вновь созданные разделы командой Format.

Enable. Команда разрешает запуск при загрузке системы ранее отключенных служб и драйверов. Она использует два аргумента - наименование службы и ее флаг запуска (если не указать флаг запуска, команда Enable выведет перечень допустимых флагов). Например

enable cdrom SERVICE_SYSTEM_START

разрешает запуск службы cdrom и устанавливает флаг ее запуска при загрузке системы.

Exit. Команда завершает работу RC и перезагружает компьютер.

Expand. Команда распаковывает архивные файлы (.cab), используемые программой установки Windows 2000 Pro. В консоли восстановления она работает так же, как и ее аналог в Windows 2000 Pro, однако использует слегка измененные аргументы. Команда help expand даст их подробное описание.

Fixboot. Команда позволит восстановить систему в случае небрежной установки NT или инсталляции Windows 9x поверх установленной Windows 2000 Pro - в такой ситуации загрузить Windows 2000 Pro обычно не удается. Команда Fixboot перезаписывает загрузочный сектор жесткого диска, что делает диск загружаемым. Понимает единственный аргумент - букву устройства, на которое производится запись. Например

fixboot c:

произведет запись нового загрузочного сектора на диск С.

Fixmbr. С помощью этой команды можно попытаться восстановить главную загрузочную запись (Master Boot Record) загрузочного раздела. С ее помощью можно попытаться заставить систему загружаться в тех случаях, когда она отказывается это делать. У нее определен только один аргумент - имя устройства, на которое устанавливается новая MBR. Если имя в команде не указано, Fixmbr запишет новую MBR в устройство по умолчанию (обычно диск С).

Format. Команда позволяет переформатировать дефектный диск или заново отформатировать раздел, созданный командой Diskpart. Ее аргументами могут быть только: буква устройства, /Q (quick format) - параметр быстрого форматирования и /FS:(file system) - тип файловой системы, с указанием одного из параметров FAT, FAT32, или NTFS. Например команда

format g: /Q /FS:FAT32

применит быстрое форматирование к устройству G и создаст на нем файловую систему FAT32. Если при запуске команды тип файловой системы не указан, по умолчанию задается NTFS, используемая только системами Windows 2000. Это может вызвать проблемы при настройке окружения на работу двух операционных систем одновременно. (Прим. переводчика: установка Windows NT 4.0 с сервисным пакетом SP4 позволяет NT работать с NTFS 5.0, созданной Windows 2000).

Listsvc. Команда выводит на экран перечень всех используемых в системе служб и драйверов с указанием их флагов запуска. Если система не может загрузиться из-за проблем с каким-либо драйвером, Listsvc может помочь. Выпишите наименования всех служб, появившихся на "голубом экране смерти" и загрузите RC. Запустив Listsvc, найдите в выданном ею списке выписанные службы. Командой Disable отключите подозрительные драйверы и покиньте RC. Если система после этого не запустится, загружайте RC и пробуйте снова.

Logon. При использовании нескольких вариантов загрузки эта команда позволит подключаться к различным разделам. Команда выводит список разделов, позволяет выбрать нужный и запрашивает пароль администратора (процедура аналогична той, которая возникает при запуске RC).

Map. Команда выводит список всех устройств жесткого диска, поставленных им в соответствие букв, форматов файловой системы, размеров устройств и физических устройств NT, соответствующих каждому диску. Например, для диска С: команда Map может вывести подобную информацию

C: FAT162047MB
\Device\Harddisk0\Partition1

Аргументом этой команды может быть arc. В этом случае команда покажет разметку физического устройства в формате Advanced RISC Computing (ARC). Именно в таком виде эта информация обычно представлена в файле boot.ini.

Systemroot. Команда делает текущим корневой системный каталог Windows 2000 Pro (обычно C:\winnt).

Команды консоли восстановления могут помочь "оживить" систему. Когда исчерпаны все средства, RC подскажет верное решение.

Автор: Джон Рулей

Источник: www.osp.ru


Подборка советов по настройке и работе в Windows XP

Данная подборка советов была прислана Vitaly Nevzorov. Если найдется их автор, обращайтесь ко мне, я дам здесь ссылку на ваш сайт.

Наткнулся на одном сайте (уже не помню где) на описания некоторых настроек в XP, некоторые работают и для предыдущих версий, цитирую все, как есть:

1. Если предыдущие версии Windows скрывали, как долго они способны работать без перезагрузки, то ХР в этом плане есть чем гордиться. Войдите в командную строку из меню Accessories, которое вызывается стартовой кнопкой All Programs, и наберите systeminfo. Компьютер выдаст много полезной информации, в том числе время бесперебойной работы. Для сохранения этих данных в файле наберите systeminfo > info.txt.

2. Для того чтобы удалять файлы, не сохраняя их в "мусорной корзине", выберите Run... из меню Start и наберите gpedit.msc, затем выберите User Configuration, Administrative Templates, Windows Components, Windows Explorer и отметьте флажком Do not move deleted files to the Recycle Bin. Покопавшись в gpedit, можно найти массу параметров интерфейса и системы, однако будьте осторожны: некоторые из них могут привести к нежелательному поведению компьютера. (Это работает только в Professional Edition.)

3. Рабочую станцию ХР можно запереть двумя щелчками мыши. Кликнув на рабочем столе правой кнопкой, создайте новый ярлык и введите в поле location строку rundll32.exe user32.dll,LockWorkStation. Присвойте этому ярлыку какое-нибудь имя. Теперь двойным щелчком по нему вы сможете блокировать свой компьютер. Того же эффекта можно добиться сочетанием клавиш Windows + L.

4. XP скрывает отдельные элементы системного ПО, которые кто-то, возможно, захочет удалить. Это может быть, например, Windows Messenger. Пользуясь редактором Notepad или Edit, исправьте текстовый файл /windows/inf/sysoc.inf, найдя и удалив в нем слово hide. Затем войдите в меню Add or Remove Programs на панели управления, выберите Add/Remove Windows Components и вам откроется все, что было сокрыто.

5. Тем, кто владеет искусством работы с пакетными файлами DOS, ХР предлагает ряд интересных новых команд. В их числе eventcreate и eventtriggers для создания системных событий и слежения за ними, typeperf для контроля за производительностью различных подсистем и schtasks для управления запланированными задачами. Как обычно, /? после имени команды выдает список опций - их слишком много, чтобы перечислять здесь все.

6. В ХР есть поддержка IP версии 6 - интернет-протокола нового поколения. К сожалению, такой поддержки нет у вашего ISP, поэтому экспериментировать с ней можно лишь в пределах локальной сети. Введите ipv6 install в поле Run... (не беспокойтесь, текущие сетевые настройки от этого не пострадают), а затем наберите ipv6 /? в командной строке, чтобы получить дополнительную информацию. Если вы не знаете, что такое IPv6, не переживайте и не утруждайте себя.

7. Наконец-то появилась возможность снимать задачи из командной строки. Наберите taskkill /pid и номер задачи или просто tskill и номер процесса. Номер можно узнать, набрав команду tasklist, которая вдобавок сообщит многое о том, что происходит в вашей системе.

8. XP считает файлы Zip папками - это удобно, если у вас быстрая машина. На более медленных системах можно заставить ХР отказаться от такой практики, набрав в командной строке regsvr32 /u zipfldr.dll. Позднее, если вы передумаете, можно все вернуть назад командой regsvr32 zipfldr.dll.

9. В ХР встроена технология сглаживания шрифтов на экране ClearType, но по умолчанию она выключена. Ее стоит попробовать, особенно если вы начинали с DOS и пялились на экран все эти годы, заработав астигматизм. Чтобы включить ClearType, кликните правой кнопкой мыши на десктопе, выберите Properties, Appearance, Effects, затем найдите во втором падающем меню ClearType и разрешите эту опцию. Лучшие результаты получаются на лаптопах. Если вы хотите использовать ClearType и на экране приветствия Welcome, присвойте параметру HKEY_USERS/.DEFAULT/Control Panel/Desktop/FontSmoothingType в реестре значение 2.

10. Вы можете помочь приятелю, который работает в домашней сети и пользуется трансляцией сетевых адресов (NAT), применив механизм удаленного доступа, но не сразу. Сначала попросите друга прислать вам e-mail с приглашением Remote Assistance, предварительно отредактировав файл. В атрибуте RCTICKET указан IP-адрес NAT, например 192.168.1.10. Его надо заменить действительным IP-адресом вашего приятеля - он может определить его, посетив сайт www.whatismyip.com, - и пусть он убедится, что в его брандмауэре порт 3389 открыт и переадресован на проблемный компьютер.

11. Вы можете исполнять программы от имени другого пользователя без выхода из системы и повторной регистрации. Кликните на значке правой кнопкой, выберите Run As... и введите имя пользователя и пароль. Они будут действовать до окончания текущего сеанса работы. Это особенно полезно, когда нужно получить права администратора для установки программы, что случается очень часто. Имейте в виду, что многократно исполнять программы под разными именами - занятие увлекательное, но оно может привести к непредсказуемым эффектам.

12. Windows XP проявляет настойчивость в отношении автоматической проверки апдейтов, регистрации в системе Passport, использования Windows Messenger и т.п. Со временем вы привыкните, но, если чувствуете, что не доживете до этого момента в здравом уме, запустите Regedit, войдите в HKEY_CURRENT_USER/Software/Microsoft/Windows/Current Version/Explorer/Advanced и создайте параметр DWORD с именем EnableBalloonTips и значением 0.

13. Можно начинать работать, не набирая имени пользователя и пароля. Выберите Run... из стартового меню и наберите control userpasswords2, что приведет к открытию приложения, управляющего учетными записями пользователей. На вкладке Users удалите флажок у позиции Users Must Enter A User Name And Password To Use This Computer и кликните ОК. Появится диалоговое окно Automatically Log On; введите имя пользователя и пароль для нужной учетной записи.

14. Internet Explorer 6 можно настроить на автоматическое удаление временных файлов. Запустите браузер, выберите Tools / Internet Options... и Advanced, спуститесь до раздела Security и отметьте позицию Empty Temporary Internet Files Folder When Browser is Closed.

15. К ХР прилагается бесплатный индикатор работы сети на тот случай, если вам не видно светодиодов на сетевой плате. Кликните правой кнопкой на My Network Places на рабочем столе и выберите Properties. Кликните правой кнопкой на ярлыке своей локальной сети или dial-up соединения, выберите Properties и активизируйте значок Show в зоне оповещения о работе в сети. Теперь при наличии сетевого трафика в правой части панели задач вам будет весело подмигивать маленький значок сети.

16. Меню Start, когда оно решит появиться, может показаться медлительным, но этот процесс можно ускорить, уменьшив значение параметра реестра HKEY_CURRENT_USER/Control Panel/Desktop/MenuShowDelay, которое по умолчанию равно 400. Сделайте его, например, нулевым.

17. В Windows Explorer файлы можно переименовывать скопом. Выделите в окне группу файлов, кликните правой кнопкой по одному из них и, если нужно, переименуйте его. Все выделенные файлы получат имя указанного файла с индивидуальными номерами в скобках. Кроме того, значки в папке можно организовать в упорядоченные по алфавиту группы - для этого выберите View, Arrange Icon By... Show In Groups.

18. Windows Media Player в процессе воспроизведения треков отображает обложки альбомов если находит их изображение в Интернете во время копирования трека с CD. В противном случае, а также если у вас большая библиотека музыкальных файлов WMP, вы можете поместить свою собственную копию изображения обложки в тот же каталог, где хранятся записи. Просто назовите ее имя_каталога.jpg, и Windows Media Player найдет и выведет эту картинку.


Установка SP1 на Windows XP, активация XP

Автор: Vladimir Akhmechet

После выхода SP1 для Windows XP на многих форумах стали появляться вопросы, как его корректно установить. Эта небольшая инструкция, надеюсь, поможет решить большинство возникающих проблем. Уточню, что мной неоднократно были установлены SP1 по этой инструкции для английской версии Windows. Пока проблем не было. Также инструкция успешно прошла проверку на немецкой версии. Так что можно смело утверждать, что и на других версиях она вполне работоспособна.

Microsoft рекомендует, прежде, чем начать установку, запустить System Restore и создать новую контрольную точку (Create New Restore Point).

Предупреждение: ошибка в использовании Registry Editor может быть причиной серьёзной проблеммы, которая потребует полной переустановки операционной системы. Microsoft не несёт ответственности за это. Используйте Registry Editor на свой собственный риск.

Итак, после этих предупреждений приступим к делу:

1. Нажмите Start, а затем Run.

2. В окне Open напечатайте regedit и нажмите OK.

3. На левой панели найдите и откройте следующий ключ:
HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\Current Version\WPAEvents.

4. В правой панели нажать правой кнопкой на параметре OOBETimer и выбрать Modify. Необходимо изменить как минимум одну цифру в этом параметре, чтобы дезактивировать Windows.

5. Нажать Start, а затем Run.

6. В окне Open напечатать следующую команду и нажать OK:
%systemroot%\system32\oobe\msoobe.exe /a
(%systemroot% - это каталог, в котором установлена Windows. Чаще всего он так и называется Windows).

7. В открывшемся окне нажать Yes, I want to telephone a customer service representative to activate Windows, и затем нажать OK.

8. Нажать Change Product Key.

9. Напечатать новый код в окошке New Key и нажать OK. (Список возможных кодов активации XP - см. Ниже).

Если происходит возврат к предыдущему окну, нажмите Remind me later, а затем перезагрузите компьютер.

Повторите шаги 5 и 6, чтобы убедиться, что Windows активирована. Должно появиться следующее сообщение: Windows is already activated. Нажмите OK, чтобы выйти.

После этих хитрых манипуляций надо инсталлировать SP1 For Windows.

Если Windows не запускается после установки SP1, надо нажать F8 во время перезагрузки и выбрать Last Known Good Configuration, а затем повторить процедуру.

Возможные коды для активации Windows XP:
[82VJ3-PB4JR-QPDXV-77VRC-8WRFX]
[DCJM2-4FJQ8-FH46R-WMPDF-4MJ64]
[YXPGY-FQHT2-7MHPD-FJ3R3-8PPKB]
[GXYXB-M46X6-BCVJ3-3RR7K-F6TTM]
[M8W23-CM7TD-DJWV4-KTTB2-99B7K]
[8GKGV-B6FKM-2JVM3-KJ842-TP7QY]
[DPQFT-GYD77-X72G7-KFCP6-K9P4T]
[HY2DM-YFFDH-M7P8R-XGG4J-63W3Y]
[WHBV2-GQC8P-3CC4G-GYWPK-G7PRT]
[G6QBR-P3DDJ-7MDJ7-7X8FT-F2CH6]
[MWB32-G7RB6-4QWH3-GP2V2-BJB83]
[VJKTC-33Q7W-VMXPR-2JDTK-867CQ]


Установка Windows 9x поверх NT/2000/XP

Автор: Korsar

Можно ли установить Windows 98/МЕ, если уже установлена Windows 2000/XP? (Далее Windows 98 и Windows 2000) Можно. Устанавливать Windows 98 нужно на винчестер, который разбит на логические диски с файловой системой FAT32. Понадобятся несколько программ, а в свойствах папки должен быть включен параметр Показывать все файлы. Так же понадобятся компакт-диски с дистрибутивами Windows 98 и Windows 2000, причем, эти диски должны быть загрузочными.

Первая программа Bootpart. При помощи этой программы можно восстановить загрузчик систем NT. Чтобы в командной строке не писать много, составьте файл ВАТ с текстом

BOOTPART WINNT BOOT:C:

и сохраните этот файл, например, с именем bp.bat в той же папке, где находится Bootpart.exe.

Составьте в текстовом редакторе файл msbatch.inf, в котором напишите следующее:

[Setup]
CleanBoot=0

Вообще, msbatch.inf имеет много параметров, а облегчит его составление программа MS Batch 98. Не знаю, жива ли ссылка, но эта программа обычно идет на диске с дистрибутивом Windows 98 в папке Tools. Запускать инсталляцию Windows 98 нужно с параметром msbatch.inf. Для этого сохраните этот файл прямо в корне диска С, потом удалите за ненадобностью.

Следующая программа, которая понадобится, Norton Ghost, только не весь пакет 10-20 МБ, а небольшая программа из большого пакета. До недавнего времени эта программка была здесь. Как пользоваться Norton Ghost можно прочитать здесь. При помощи Norton Ghost необходимо сделать снимок диска, на котором установлена Windows 2000, своеобразный файл отката на случай, если все же ничего не помогло.

Обязательно понадобится диск с дистрибутивом Windows 2000. И, на всякий случай, Service Pack. В корне диска С найдите файл Boot.ini, снимете с него все атрибуты и откройте его в текстовом редакторе. В файле сделайте некоторые изменения:

timeout=10 отвечает за задержку в секундах загрузочного меню выбора системы для загрузки;
добавьте в раздел [operating systems] строку C:\="Windows 98".

Сохраните файл Boot.ini и установите все его атрибуты на место. Когда будут существовать на вашем компьютере 2 системы, то при загрузке компьютера будет выведено загрузочное меню выбора системы для загрузки. Будет ожидание действий пользователя 10 секунд, после чего загрузится система по умолчанию. Число 10 я взял условно, вы можете установить задержку по своему усмотрению, главное, чтобы в параметре timeout после знака "=" стояло ЦЕЛОЕ ЧИСЛО.

Условимся, к примеру, что на диске С установлена Windows 2000, а на диск D будет устанавливаться Windows 98. Сделаны все приготовления, загружаемся с компакт-диска с дистрибутивом Windows 98 и запускаем установку Windows 98 с параметром msbatch.inf. Для этого в командной строке нужно набрать setup.exe c:\msbatch.inf. При установке Windows 98 необходимо выбрать другой диск, т.к. на диске С установлена Windows 2000. Если устанавливать Windows 98 на тот же диск, на котором установлена Windows 2000, могут возникнуть конфликты в частности с Internet Explorer и Outlook Express. Т.к., если папку, куда будет устанавливаться система, можно изменить при установке, задав другое имя, то папку Program Files изменить нет возможности. Поэтому заранее в файл msbatch.inf можно добавить строку InstallDir="d:\windows", чтобы уже не заботиться о диске назначения устанавливаемой Windows 98.

После установки Windows 98 откажитесь от установки драйверов, а сразу сделайте загрузочную дискету в Панели управления - Установка и удаление программ - вкладка Загрузочный диск и перезагрузите компьютер, загрузившись с этой дискеты. Найдите папку с программой Bootpart, запустите файл bp.bat и согласитесь на восстановление загрузчика Windows 2000. Перезагрузите компьютер, но с компакт-диска, на котором содержится дистрибутив Windows 2000.

Запустите установку Windows 2000. После копирования файлов на диск будет предложено установить систему или восстановить существующую. Выбираем восстановление, после чего будет предложено восстановить систему через консоль восстановления. Чтобы воспользоваться консолью восстановления, нужно знать пароль администратора. Выбираем консоль восстановления, где нужно выбрать папку восстанавливаемой системы, ввести пароль администратора и ввести команду FIXBOOT. Остается перезагрузить компьютер и выбрать систему для загрузки. Конечно, нужно выбрать Windows 98, т.к. нужно установить дрова и софт, а так же удалить все папки с баксами ($) на диске С, куда были скопированы временные файлы установщиком Windows 2000.

Если совсем ничего не помогло, хотя всегда прокатывает, но все же, тогда у вас есть пара вариантов:

1. Удалить Windows 98 и при помощи Norton Ghost вернуть снимок диска с установленной Windows 2000.
2. Удалить Windows 2000 и запустить ее установку из Windows 98.

Все спасибЫ шлите на мой собачий адрес.


Устанавливаем консоль восстановления Windows XP

Источник: oszone.net

Консоль восстановления - это командная строка, которая поддерживает целый список команд, которые могут быть использованы при устранении неполадок с вашим компьютером, когда ваш компьютер запускается некорректно или же не запускается вовсе. Если вы не можете загрузиться в режиме Safe Mode, то тогда вы должны попробовать использовать консоль восстановления.

В Консоли восстановления Windows XP вы можете следующее:

- Использовать, копировать, переименовывать или замещать системные файлы и директории
- Исправлять boot sector файловой системы или Master Boot Record (MBR)
- Включать или выключать сервисы или установку устройств при последующем запуске компьютера
- Создавать или форматировать разделы на диске

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

Вы должны понять, что может возникнуть случаи, когда вы не сможете загрузиться с вашего жесткого диска, в этих случаях вам все равно придется использовать Windows XP CD. Но для других проблем Консоль восстановления, установленная на ваш компьютер, может быть прекрасным решением.

Для установки Консоли восстановления на ваш компьютер, вам потребуется около 7 Mb свободного места. Для установки вам необходимо проделать следующее:

1. Во время использования Windows XP, вставьте в CD-ROM оригинальный диск Windows XP и нажмите Выход, когда появится окно с началом установки системы. (Вы можете пропустить это, если имеете директорию \i386 на вашем жестком диске)

2. Выберите Пуск -> Выполнить и в появившемся окне введитеe: {X}:\i386\winnt32.exe /cmdcons
Где {X} должно быть буквой диска, соответствующей CD-ROM.Если директория i386 уже содержится на вашем компьютере, то вам достаточно указать путь к ней, например: C:\i386\winnt32.exe /cmdcons

3. Следуйте указаниям для установки консоли, после завершения установки перезагрузите компьютер

4. Косоль восстановления покажет список доступных операционных систем в меню загрузки, для использования консоли восстановления вам необходимы права администратора

Для ускорения меню загрузки выберите Пуск -> Панель управления -> Система -> Дополнительно. Нажмите на кнопке Настройка в меню Загрузка и Восстановление. В разделе Загрузка системы вы можете установить время, используемое для показа меню загрузки (bootmenu).


Настройка контекстного меню файлов в Windows XP и 2000

Автор: Korsar

Зачастую, возможностей стандартного контекстного меню файлов не хватает для различных задач пользователей. Уже была статья о том, как расширить это меню, однако, в Windows 2000 и Windows XP можно добавить еще пару пунктов, которые заложены в самой операционной системе, но по умолчанию не включены.

Ковыряясь очередной раз в реестре, обратил внимание на два интересных раздела {C2FBB630-2971-11d1-A18C-00C04FD75D13} и {C2FBB631-2971-11d1-A18C-00C04FD75D13} со своими параметрами, которые отвечают за копирование и перемещение файлов в Windows. В общем, эти две возможности, "Копировать в папку" и "Переместить в папку", можно включить в контекстное меню файлов.

Контекстное меню файла с новыми пунктами

Эти два пункта вызывают стандартное окно для копирования или перемещения файла. Пользоваться ими гораздо удобнее, чем открывать отдельное окно с нужным каталогом, а потом перетаскивать в него файлы.

Вид окна для копирования или перемещения файлов

Чтобы включить новые пункты в контекстное меню надо создать разделы и параметры в реестре:

- для копирования

[HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers\Copyto]
@="{C2FBB630-2971-11d1-A18C-00C04FD75D13}"

- для перемещения

[HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers\Moveto]
@="{C2FBB631-2971-11d1-A18C-00C04FD75D13}"

В примере пункты меню появятся у всех файлов и папок. Чтобы добавить их только в файлы с конкретным расширением, надо добавлять записи в раздел shellex этих файлов. Так, для текстовых файлов это будет выглядеть таким образом:

- для копирования

[HKEY_CLASSES_ROOT\txtfile\shellex\ContextMenuHandlers\Copyto]
@="{C2FBB630-2971-11d1-A18C-00C04FD75D13}"

- для перемещения

[HKEY_CLASSES_ROOT\txtfile\shellex\ContextMenuHandlers\Moveto]
@="{C2FBB631-2971-11d1-A18C-00C04FD75D13}"

Изначально раздела shellex там нет. Надо создать его и все подразделы самостоятельно.

К сожалению, это работает только в Windows 2000 и XP. Перезагрузка компьютера не понадобится.


Настройка меню "Пуск" в Windows XP

Windows XP довольно далеко шагнула вперед в плане настройки пользовательского интерфейса. Теперь многие настройки можно проводить с помощью различных диалогов, программ, специальных средств, встроенных в оболочку операционной системы. Если в том же Win98, чтобы скрыть какие-то пункты из "Пуска", необходимо было редактировать реестр или пользоваться различными твикерами сторонних разработчиков, то теперь ему можно придать любой вид воспользовавшись свойствами панели задач и меню "Пуск" (и это не единственный способ). Однако, прямое редактирование реестра не потеряло своей актуальности. Если вы настраиваете вид меню один раз для себя, то лезть в реестр не обязательно, но если вам необходимо повторить эту процедуру на десятке компьютеров, то проще один раз сделать reg-файл, а потом просто запустить его на всех компьютерах.

Раньше я уже писал о том, как можно изменить вид меню в Windows9x, однако в ХР произошли существенные изменения и к немногочисленным старым настройкам добавилось очень много новых. Итак, посмотрим, что же нам предлагает в этом плане Microsoft.

Все параметры, влияющие на вид меню, находятся в разделе

HKEY_CURRENT_USER\ Software\ Microsoft\ Windows\ CurrentVersion\ Policies\ Explorer

Если вы хотите, чтобы они были применимы для всех пользователей, параметры необходимо создавать в разделе

HKEY_USERS\ .DEFAULT\ Software\ Microsoft\ Windows\ CurrentVersion\ Policies\ Explorer

Все они имеют тип DWORD и, если это не оговорено особо, значение 1 включает эту настройку, а удаление соответствующего параметра или присвоение ему значения 0 - отключает.

Итак, пройдемся по параметрам (некоторые могут показаться вам знакомыми - ничего удивительного - они остались еще со времен Win9x. Некоторые параметры работают только в Windows XP Professional):

NoSimpleStartMenu - форсировать классическое меню "Пуск" - в свойствах меню "Пуск" становится недоступным переключатель на вид меню в стиле ХР и работать теперь можно только с классическим видом меню "Пуск";
NoStartMenuPinnedList - удаляет фиксированный список программ из меню "Пуск", а также значки "Интернет" и "Электронная почта";
NoStartMenuMFUprogramsList - удаляет список часто используемых программ;
NoStartMenuMorePrograms - удаляет опцию "Все программы" из меню "Пуск";
NoCommonGroups - удаляет группы программ общего назначения (это элементы профиля All Users в списке "Все программы");
GreyMSIAds - отображает частично установленные программы серым цветом;
NoWindowsUpdate - блокирует и удаляет ссылки на Windows Update. Также блокируется доступ к сайту windowsupdate.microsoft.com;
DisableMyPicturesDirChange - запрещает менять путь к папке "Мои рисунки";
DisableMyMusicDirChange - запрещает менять путь к папке "Моя музыка";
DisableFavoritesDirChange - запрещает менять путь к папке "Избранное";
NoStartMenuMyMusic, NoSMMyPictures, NoFavoritesMenu, NoRecentDocsMenu - удаляет все папки пользовательской оболочки из меню "Пуск" (кроме "Моих документов"), а также удаляет соответствующие флажки, расположенные в диалоговом окне настройки меню "Пуск";
NoSMMyDocs - удаляет папку "Мои документы" из меню, а также соответствующий флажок в диалоговом окне настройки меню "Пуск";
DisablePersonalDirChange - препятствует пользователю изменить путь к папке "Мои документы";
MaxRecentDocs - значение этого параметра соответствует максимальному количеству ярлыков, указывающих на последние открываемые документы, которые должны отображаться в подменю "Недавние документы";
ClearRecentDocsOnExit - очищает список недавно использованных документов при выходе пользователя из системы;
NoRecentDocsMenu - удаляет пункт "Недавние документы" из меню "Пуск";
NoFavoritesMenu - удаляет меню "Избранное", а также соответствующие флажки в диалоговом окне настройки Пуска;
NoNetworkConnections - удаляет элемент "Сетевое окружение", находящийся в меню "Пуск" вместе с соответствующим флажком в окне настройки;
NoStartMenuNetworkPlaces - удаляет элемент "Сетевые подключения" меню "Пуск" и соответствующий флажок окна настройки;
NoRecentDocsNetHood - запрещает добавлять или удалять совместно используемые папки в/из "Сетевые подключения", всякий раз когда пользователь открывает документ, находящийся в совместно используемой папке;
NoSMHelp - удаляет пункт "Справка и поддержка" из меню "Пуск";
NoFind - удаляет команду "Поиск" в меню "Пуск" и отключает соответствующую опцию в диалоговом окне настройки;
NoRun - удаляет команду "Выполнить", отключает флажок в окне настройки, отключает возможность запуска программ в Диспетчере задач, блокирует нажатие клавиш Win+R;
MemCheckBoxInRunDlg - добавляет флажок "Запустить в отдельной области памяти" в диалоговое окно "Запуск программы", который позволяет выполнить 16-разрядные приложения в отдельных виртуальных DOS-машинах;
NoSetTaskbar - блокирует возможность внесения любых изменений в установки панели задач и меню "Пуск", а также удаляет элемент Панель задач и меню "Пуск" в Панели управления и в меню "Пуск";
NoInstrumentation - блокирует возможность запоминания системой информации о ранее используемых программах, путях и документах;
NoUserNameInStartMenu - удаляет имя пользователя из меню "Пуск";
NoResolveSearch - препятствует системе осуществлять поиск целевого устройства по его ярлыку;
NoResolveTrack - блокирует функциональные возможности системы по отслеживанию NTFS, при поиске целевых файлов ярлыков оболочки;
ForceStartMenuLogoff - блокирует для пользователя возможность удаления опции "Выход из системы" меню "Пуск";
StartmenuLogoff - отключает опцию Logoff меню "Пуск" и препятствует пользователям включить ее в состав меню;
NoClose - удаляет опцию "Завершение работы" в меню "Пуск" и блокирует для пользователей возможность выключения системы с использованием стандартных средств пользовательского интерфейса;
NoChangeStartMenu - блокирует модификации, производимые по принципу drag-and-drop в меню "Пуск";
HKEY_CURRENT_USER\ Software\ Microsoft\ Windows\ CurrentVersion\ Policies\ NonEnum\ {20D04FE0-3AEA-1069-A2D8-08002B30309D} - удаляет элемент "Мой компьютер" из меню и блокирует соответствующий флажок в диалоговом окне настройки.

Чтобы вам не пришлось вручную писать reg-файл, я привожу ниже его код, со всеми перечисленными выше параметрами. Просто уберите знак ";" в начале строки, параметр которой хотите добавить в реестр, и запустите файл на выполнение.

REGEDIT4

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
;"NoSimpleStartMenu"=dword:00000001
;"NoStartMenuPinnedList"=dword:00000001
;"NoStartMenuMFUprogramsList"=dword:00000001
;"NoStartMenuMorePrograms"=dword:00000001
;"NoCommonGroups"=dword:00000001
;"GreyMSIAds"=dword:00000001
;"NoWindowsUpdate"=dword:00000001
;"DisableMyPicturesDirChange"=dword:00000001
;"DisableMyMusicDirChange"=dword:00000001
;"DisableFavoritesDirChange"=dword:00000001
;"NoStartMenuMyMusic"=dword:00000001
;"NoSMMyPictures"=dword:00000001
;"NoFavoritesMenu"=dword:00000001
;"NoRecentDocsMenu"=dword:00000001
;"NoSMMyDocs"=dword:00000001
;"DisablePersonalDirChange"=dword:00000001
;"MaxRecentDocs"=dword:00000010
;"ClearRecentDocsOnExit"=dword:00000001
;"NoRecentDocsMenu"=dword:00000001
;"NoFavoritesMenu"=dword:00000001
;"NoNetworkConnections"=dword:00000001
;"NoStartMenuNetworkPlaces"=dword:00000001
;"NoRecentDocsNetHood"=dword:00000001
;"NoSMHelp"=dword:00000001
;"NoFind"=dword:00000001
;"NoRun"=dword:00000001
;"MemCheckBoxInRunDlg"=dword:00000001
;"NoSetTaskbar"=dword:00000001
;"NoInstrumentation"=dword:00000001
;"NoUserNameInStartMenu"=dword:00000001
;"NoResolveSearch"=dword:00000001
;"NoResolveTrack"=dword:00000001
;"ForceStartMenuLogoff"=dword:00000001
;"StartmenuLogoff"=dword:00000001
;"NoClose"=dword:00000001
;"NoChangeStartMenu"=dword:00000001

;[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion
\Policies\NonEnum\{20D04FE0-3AEA-1069-A2D8-08002B30309D}]


Windows Script Host (WSH)

Windows Script Host, или сокращенно WSH, является одной из интереснейших тем, рассматриваемых при работе с Windows. Именно благодаря скриптам, написанным на языке JScript или VBScript, можно существенно облегчить свой труд на компьютере, избавиться от массы рутинной работы, автоматизировать многие операции и процессы, да и просто поприкалываться над друзьями.

Обработка исключений
Довольно важный момент при работе с WSH-скриптами. Некоторые задачи вообще невозможно решить без обработки исключений
читать дальше

Файлы и папки
Как работать со всеми файлами и папками, находящимися в одной директории, сразу, а не перебирать их по одному поименно
читать дальше

MS Office
Работа с ActiveX объектами на примере Word и Excel. Высший пилотаж. Дальнейшее развитие темы управления приложениями
читать дальше

Управление программами
Пожалуй, самая зрелищная возможность WSH. Делаем на JScript за 15 минут то, что требует десятка часов напряженного программирования на C++
читать дальше

Работа с сетевым окружением
Еще одна важная тема. Какой админ обойдется без управления сетью и объектами сетевого окружения?
читать дальше

Чтение и редактирование файлов
Хотите отредактировать файл? Проверить наличие строки в autoexec.bat? Вести лог работы на компьютере? Легко!
читать дальше

Файловая система
Один из ключевых вопросов, без досконального знания которого нельзя писать полноценные скрипты
читать дальше

Ярлыки
Возможность создавать ярлыки на запуск любого файла порой приносит весьма немало пользы
читать дальше

Запуск программ
Даже в таком простом деле, как запуск программ, видно неоспоримое превосходство WSH над bat-файлами
читать дальше

Теория, реестр
В статье рассматриваются основы работы с WSH, а также работа с реестром Windows (добавление, редактирование, изменение информации)
читать дальше


Windows Script Host (WSH) - MS Office

В предыдущей статье я рассказывал, как можно управлять различными окнами программ: активизировать их, передавать в них нажатие клавиш... В этой статье мы зайдем немного дальше и научимся управлять приложениями через ActiveX компоненты. Пожалуй, наиболее популярное и частое применение этих знаний может найти отражение в работе с MS Office, а точнее с Word и Excel. Вот над ними мы сегодня и поиздеваемся (все примеры были протестированы в Офис 2000).

Для начала, приведу немножко подредактированный файл примера Microsoft по работе с Excel-ем, сопроводив его попутно своими комментариями:

//JScript
//Создаем Екселевский объект, с методами и свойствами которого будем работать
var objXL = WScript.CreateObject("Excel.Application");
//Делаем окно видимым и создаем рабочую книгу
objXL.Visible = true;
objXL.WorkBooks.Add;

//Устанавливаем ширину первых трех колонок
objXL.Columns(1).ColumnWidth = 20;
objXL.Columns(2).ColumnWidth = 30;
objXL.Columns(3).ColumnWidth = 40;

//Первая строка будет у нас шапкой таблицы
//Заполняем значения ячеек
objXL.Cells(1, 1).Value = "Название свойства";
objXL.Cells(1, 2).Value = "Значение";
objXL.Cells(1, 3).Value = "Описание";

//Форматируем ячейки, чтобы все было красиво
objXL.Range("A1:C1").Select;
objXL.Selection.Font.Bold = true;
objXL.Selection.Interior.ColorIndex = 1;
objXL.Selection.Interior.Pattern = 1;
objXL.Selection.Font.ColorIndex = 2;
objXL.Columns("B:B").Select;
objXL.Selection.HorizontalAlignment = -4131;

//Вводим счетчик строк, куда будем записывать информацию
var intIndex = 2;

//А эта функция как раз и будет выводить нашу информацию построчно
function Show(strName, strValue, strDesc) {
    objXL.Cells(intIndex, 1).Value = strName;
    objXL.Cells(intIndex, 2).Value = strValue;
    objXL.Cells(intIndex, 3).Value = strDesc;
    intIndex++;
    objXL.Cells(intIndex, 1).Select;
}

//Итак, заполним таблицу данными о версии wscript установленной на компьютере
Show("Name",           WScript.Name,           "Application Friendly Name");
Show("Version",        WScript.Version,        "Application Version");
Show("FullName",       WScript.FullName,       "Application Context: Fully Qualified Name");
Show("Path",           WScript.Path,           "Application Context: Path Only");
Show("Interactive",    WScript.Interactive,    "State of Interactive Mode");
//До кучи добавим сведения о параметрах, с которыми запускается скрипт
var colArgs = WScript.Arguments;
Show("Arguments.Count", colArgs.length, "Number of command line arguments");
for (i = 0; i < colArgs.length; i++) {
    objXL.Cells(intIndex, 1).Value = "Arguments(" + i + ")";
    objXL.Cells(intIndex, 2).Value = colArgs(i);
    intIndex++;
    objXL.Cells(intIndex, 1).Select;
}

Все весьма прозрачно. Приведу аналогичный пример на VBScript, дабы не заставлять любителей этого языка самостоятельно адаптировать код под него:

Dim objXL
Set objXL = WScript.CreateObject("Excel.Application")
objXL.Visible = TRUE
objXL.WorkBooks.Add

objXL.Columns(1).ColumnWidth = 20
objXL.Columns(2).ColumnWidth = 30
objXL.Columns(3).ColumnWidth = 40

objXL.Cells(1, 1).Value = "Название свойства"
objXL.Cells(1, 2).Value = "Значение"
objXL.Cells(1, 3).Value = "Описание"
objXL.Range("A1:C1").Select
objXL.Selection.Font.Bold = True
objXL.Selection.Interior.ColorIndex = 1
objXL.Selection.Interior.Pattern = 1
objXL.Selection.Font.ColorIndex = 2
objXL.Columns("B:B").Select
objXL.Selection.HorizontalAlignment = &hFFFFEFDD

Dim intIndex
intIndex = 2

Sub Show(strName, strValue, strDesc)
    objXL.Cells(intIndex, 1).Value = strName
    objXL.Cells(intIndex, 2).Value = strValue
    objXL.Cells(intIndex, 3).Value = strDesc
    intIndex = intIndex + 1
    objXL.Cells(intIndex, 1).Select
End Sub

Call Show("Name",           WScript.Name,           "Application Friendly Name")
Call Show("Version",        WScript.Version,        "Application Version")
Call Show("FullName",       WScript.FullName,       "Application Context: Fully Qualified Name")
Call Show("Path",           WScript.Path,           "Application Context: Path Only")
Call Show("Interactive",    WScript.Interactive,    "State of Interactive Mode")
Dim colArgs
Set colArgs = WScript.Arguments
Call Show("Arguments.Count", colArgs.Count, "Number of command line arguments")
For i = 0 to colArgs.Count - 1
    objXL.Cells(intIndex, 1).Value = "Arguments(" & i & ")"
    objXL.Cells(intIndex, 2).Value = colArgs(i)
    intIndex = intIndex + 1
    objXL.Cells(intIndex, 1).Select
Next

Хорошо, а как быть если надо сделать какое-то действие не описанное здесь? Вполне логичный вопрос. Но описать все возможности встроенного в Офис VB в этой статье (как и в 10 статьях) просто невозможно. Эти сведения вам только в качестве информации к размышлению. А все что сверх этой статьи, изучается довольно просто: запускается Word (Excel), включается запись макроса, выполняются нужные вам действия, а потом на основе сгенерированного кода по аналогии пишется скрипт. Нелишним будет почитать и справку (надеюсь вы ее установили?). Замечу, что для работы с приложениями Офиса легче писать скрипты на VBScript, так как справка по встроенному VB сможет удовлетворить даже самым изысканным потребностям.

Именно таким методом (читая справку и анализируя записанные макросы), я сделал практически аналогичный предыдущим скрипт, работающий с Вордом:

//JScript
//Создаем объект для работы с Вордом
var wrd = new ActiveXObject("Word.Application");
//Создаем новый документ
wrd.Documents.Add();
//Получаем указатель на активный документ
adoc=wrd.ActiveDocument;
//Указатель на область в документе
myRange = adoc.Range(Start=0, End=0)
//Активизируем Ворд
wrd.Visible = true;
wrd.Activate();

//Создаем таблицу с одной строкой и тремя столбцами
tb0=adoc.tables.Add(Range=myRange, NumRows=1, NumColumns=3);
//Задаем ширину столбцов
tb0.Columns(1).Width = 80;
tb0.Columns(2).Width = 160;
tb0.Columns(3).Width = 160;

//Заполняем заголовок таблицы
tb0.Cell(1,1).Range.InsertAfter("Название свойства");
tb0.Cell(1,2).Range.InsertAfter("Значение");
tb0.Cell(1,3).Range.InsertAfter("Описание");

//Счетчик строк
intIndex = 2;

//Выводимая в строках таблицы информация
Show("Name",           WScript.Name,           "Application Friendly Name");
Show("Version",        WScript.Version,        "Application Version");
Show("FullName",       WScript.FullName,       "Application Context: Fully Qualified Name");
Show("Path",           WScript.Path,           "Application Context: Path Only");
Show("Interactive",    WScript.Interactive,    "State of Interactive Mode");

//Ну и сама функция для вывода строк
function Show(strName, strValue, strDesc) {
    tb0.Rows.Add();
    tb0.Cell(intIndex, 1).Range.InsertAfter(strName);
    tb0.Cell(intIndex, 2).Range.InsertAfter(strValue);
    tb0.Cell(intIndex, 3).Range.InsertAfter(strDesc);
    intIndex++;
}

Надеюсь, с задачей указания основного направления при работе с MS Office, мне удалось справиться. Дальше все зависит от вашего терпения и знания английского при переводе справки.


Windows Script Host (WSH) - запуск программ

В предыдущей статье я рассказал об основах WSH и привел пример скрипта для работы с реестром (добавление и удаление записей). Здесь мне бы хотелось продолжить обсуждение этой интересной темы и предложить вашему вниманию еще несколько скриптов, полнее раскрывающих возможности Windows Script Host.

Для начала, хотелось бы привести небольшой скрипт, который позволяет запускать различные программы (в примере Блокнот), а также показать вывод диалогового окна с запросом о запуске программы.

//Пример запуска программы с диалоговым окном запроса
//на JScript
var vbOKCancel = 1;
var vbInformation = 64;
var vbCancel = 2;
var Message = "Вы действительно хотите запустить программу Notepad?";
var Title   = "Подтвердите действие";
Welcome();

var WSHShell = WScript.CreateObject("WScript.Shell");
WSHShell.Run("notepad",5);

function Welcome() {
    var WSHShell = WScript.CreateObject("WScript.Shell");
    var intDoIt;

    intDoIt =  WSHShell.Popup(Message,
                              0,
                              Title,
                              vbOKCancel + vbInformation );
    if (intDoIt == vbCancel) {
        WScript.Quit();
    }
}

В первых пяти строках описываются переменные, которые нам потребуются при вызове функции Welcome(). Эта функция выдает на экран окно с запросом на запуск программы и в случае положительного ответа продолжается выполнение скрипта. Если ответ отрицательный, выполнение прерывается. Строка

WSHShell.Run("notepad",5);

запускает Блокнот. Мы еще рассмотрим ее подробнее чуть позже, а пока обратите внимание на то, что объект WSHShell создается дважды: один раз в функции Welcome() и второй раз непосредственно перед запуском Блокнота. Закономерный вопрос: а нельзя ли обойтись одним созданием объекта? Если закомментировать строку перед запуском Блокнота и попробовать опять запустить скрипт, то будет выдана ошибка что определение WSHShell отсутствует. Почему так происходит? Ведь функция Welcome() вызывается до запуска программы и следовательно создание объекта WSHShell происходит до вызова метода запуска программы. Да простят меня программисты за то, что мне приходится подробно описывать такие элементарные вещи, но не все знакомы с программированием и с таким термином как "область видимости". Так как объект WSHShell создается внутри функции, то он будет существовать только до тех пор, пока мы из этой функции не выйдем. Т.е. за пределами Welcome() объекта WSHShell нет, поэтому и появляется ошибка. Давайте немного модифицируем скрипт, чтобы объект WSHShell описать только один раз:

//Пример запуска программы с диалоговым окном запроса
//на JScript
var vbOKCancel = 1;
var vbInformation = 64;
var vbCancel = 2;
var Message = "Вы действительно хотите запустить программу Notepad?";
var Title   = "Подтвердите действие";
var WSHShell = WScript.CreateObject("WScript.Shell");
Welcome();

WSHShell.Run("notepad",5);

function Welcome() {
    var intDoIt;

    intDoIt =  WSHShell.Popup(Message,
                              0,
                              Title,
                              vbOKCancel + vbInformation );
    if (intDoIt == vbCancel) {
        WScript.Quit();
    }
}

Теперь создание WSHShell происходит до вызова функции Welcome() и создавать его повторно внутри функции нет необходимости. Такая переменная называется глобальной. Т.е. она существует на протяжении всего времени выполнения скрипта и видна во всех функциях. Переменная которая создается внутри функции и видна только в этой функции называется локальной.

Давайте вернемся к строке WSHShell.Run("notepad",5); и рассмотрим ее подробнее. При вызове метода Run передаются 2 переменных. Если с первой все понятно - это имя запускаемого файла (т.к. файл notepad находится в каталоге Windows, который присутствует в переменной среды окружения Path, то можно не указывать полный путь к нему. В противном случае для запуска программы надо указывать ее полное имя, например: "C:\polniy\put_k\programme\file.exe"), то со второй не все так просто. Эта цифра указывает состояние окна запускаемой программы. Она может принимать десять различных значений от 0 до 9, но все я описывать не буду, а расскажу только про самые интересные:

0 - запускать программу в скрытом окне. Т.е. если вы попытаетесь запустить Блокнот с таким значением второй переменной, то окно программы будет невидимым и кнопка на панели задач не будет создана. Чтобы увидеть что Блокнот все-таки запустился, нажмите Ctrl+Alt+Del и вы увидите там строку с текстом Notepad.

6 - запустить программу минимизированной. При этом активным будет следующее окно в Z-последовательности.

2 - запустить программу минимизированной.

3 - запустить программу максимизированной.

5 - запустить программу с текущими размером и позицией окна.

Остальные значения не так интересны и являются вариациями на тему. Если интересно, можете сами поэкспериментировать с этой переменной.

В конце статьи хотелось бы привести небольшой скриптик. Я оставлю его без комментария, т.к. он очень простой. Запустите его и посмотрите в действии самостоятельно ;).

//Просто небольшой забавный примерчик ;)
//язык JScript
var WSHShell = WScript.CreateObject("WScript.Shell");
do {
WSHShell.Popup("Hello, World!");
} while (true);

Я не стал приводить эти примеры в исполнении на VBScript - желающие легко смогут осуществить это самостоятельно. Если что не получится, обратитесь к предыдущему материалу, там было описано коротко различие между JS и VBS.

На этом пока все, но тема еще не закрыта.


Windows Script Host (WSH) - обработка исключений

Вначале стоит определиться с терминами, ведь если любой программист прекрасно знает что такое "исключения", то остальные далеко не все точно представляют о чем идет речь. Говоря простым языком исключения или исключительные ситуации - это ошибки, возникающие в ходе работы программы (в нашем случае скрипта). Но это не те ошибки, когда вы забыли поставить закрывающую скобку, запятую или ошиблись в имени переменной. Это ошибки, возникающие в некоторых (исключительных) ситуациях во время выполнения РАБОЧЕГО скрипта.

Рассмотрим простенький пример скрипта на VBScript, пытающегося прочитать значение какого-то параметра в реестре и выдать его в сообщении:

   Dim Perem
   set WSHShell = WScript.CreateObject("WScript.Shell")

   WSHShell.Popup "Начало скрипта"

   Perem = ""
   Perem = WSHShell.RegRead("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Test")
   WSHShell.Popup Perem
   WSHShell.Popup "Конец скрипта"

Сообщение "Начало скрипта" появилось, следовательно, синтаксических ошибок мы не допустили, но вот затем появляется сообщение об ошибке

Пример сообщения об ошибке

что и неудивительно - параметра с именем Test в разделе HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer не существует. Из-за этого наш пример не отработал до конца. Возникает логичный вопрос: а нельзя ли каким-то образом отловить момент появления ошибки, как-то его обработать и продолжить выполнение скрипта дальше? Оказывается, можно. Перепишем наш пример следующим образом:

   Dim Perem
   set WSHShell = WScript.CreateObject("WScript.Shell")

   WSHShell.Popup "Начало скрипта"
   Perem = ""

   On Error Resume Next
   GetErr()
   if Err.Source="WshShell.RegRead" then
        Perem = "Параметр не существует"
   else
        Perem = WSHShell.RegRead("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Test")
   end if
   Err.Clear

   WSHShell.Popup Perem
   WSHShell.Popup "Конец скрипта"

   Function GetErr()
        If WSHShell.RegRead("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Test") Then
     End If
   End Function

Попытка прочитать параметр из реестра вынесена в отдельную функцию. Если происходит ошибка - функция возвращает код ошибки (Err.Number) и источник (Err.Source). В операторе if мы проверяем та ли это ошибка, что нам нужна и если это именно так, значит параметр не удалось прочитать по причине его отсутствия, о чем нас честно и предупреждают в появившемся сообщении. При этом скрипт корректно отрабатывает до конца. Если же ошибки не возникло, мы спокойно прочитываем значение нужного нам параметра.

Обратите внимание на объект Err. Это стандартный объект VBScript, содержащий информацию о так называемых run-time errors (ошибках времени выполнения). Свойство Source указывает на источник ошибки (в сообщении на рисунке это последняя строка). Метод Clear очищает свойства объекта, удаляя сведения об ошибке. Помимо Source и Clear у объекта есть и другие свойства и методы, но реально может понадобиться, пожалуй, свойство Number и Description. Number возвращает код произошедшей ошибки, а Description ее описание. Измените в скрипте строку

        Perem = "Параметр не существует"

на

        Perem = "Ошибка " & Err.Number & ".   " Err.Description

Во время выполнения скрипта появится сообщение: "Ошибка -2147024894. Не удается открыть для чтения раздел реестра "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Test"". Это большое отрицательное число и есть код ошибки. При обработке исключений можно пользоваться и номерами ошибок.

Почему для объяснения работы с исключениями я объяснял все примеры на чтении данных из реестра? Во-первых, работа с реестром в WSH одна из наиболее часто встречаемых задач, во-вторых, другие ошибки (например, попытка подмапировать сетевой диск на уже существующую букву, попытка открытия несуществующего файла и т.п.) могут быть обработаны другими способами (при открытии файла можно сперва проверить его наличие с помощью метода FileExists объекта fso), в то время как проверка наличия какого-либо параметра в реестре отсутствует в принципе. Поэтому вопросы обработки исключений при работе с реестром наиболее актуальны.

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


Windows Script Host (WSH) - работа с сетевым окружением

Наконец-то мы добрались и до работы с сетью. Пожалуй, это одна из самых важных тем при обсуждении вопросов WSH. Ведь основной контингент пользователей, которым наиболее полезен WSH - сетевые администраторы. Ну, а раз они сетевые, то и работать должны с сетью :). Но это все лирика, перейдем к практике.

Для работы с какими-то объектами сети и сетевого окружения в WSH есть объект WshNetwork, позволяющий получать информацию об имени пользователя, компьютера, подключать и отключать сетевые диски и принтеры.

Рассмотрим небольшой пример, в котором выведем в информационное окно сведения об имени пользователя, имени компьютера и домене:

//Пример работы с WshNetwork в JScript
//Создаем объект WshNetwork
var WshNetwork = new ActiveXObject("WScript.Network");
//Создаем переменную info и заносим туда имя пользователя
info = "Имя пользователя: " + WshNetwork.UserName;
//Добавляем переход на следующую строку
info = info + "\n";
//Добавляем имя компьютера
info = info + "Имя компьютера: " + WshNetwork.ComputerName;
info = info + "\n";
//Добавляем домен, к которому подключился пользователь
info = info + "Домен: " + WshNetwork.UserDomain;
//Выводим на экран полученную информацию
WScript.Echo (info);

'Тот же пример на VBScript
Set WshNetwork = CreateObject("WScript.Network")
info = "Имя пользователя: " & WshNetwork.UserName
'Обратите внимание, как осуществляется переход на новую строку
info = info & Chr(10)
info = info & "Имя компьютера: " & WshNetwork.ComputerName
info = info & Chr(10)
info = info & "Домен: " & WshNetwork.UserDomain
WScript.Echo info

В этих примерах мы использовали свойства объекта WshNetwork: UserName, ComputerName и UserDomain для получения информации о залогинившемся пользователе. Зачем это может понадобиться? Например, если на компьютере работает несколько пользователей и им нужен доступ к разным сетевым дискам, можно обеспечить автоматическое мапирование этих дисков в зависимости от того, какой пользователь сейчас работает.

Таким образом мы незаметно подошли к вопросу работы с сетевыми дисками. Для начала, неплохо бы выяснить, какие сетевые диски подключены в данный момент:

//JScript
var vbOKOnly = 0;
var vbInformation = 64;
var WSHShell = WScript.CreateObject("WScript.Shell");
var WSHNetwork = WScript.CreateObject("WScript.Network")
var colDrives = WSHNetwork.EnumNetworkDrives();
if (colDrives.length == 0) {
    WSHShell.Popup("Подключенных сетевых дисков нет",
                   0,
                   "Работа с WSHNetwork",
                   vbInformation + vbOKOnly );
} else {
    strMsg = "Текущие сетевые подключения:  \n";
    for (i = 0; i < colDrives.length; i += 2) {
        strMsg = strMsg + "\n" + colDrives(i) + "\t" + colDrives(i + 1);
    }

    WSHShell.Popup(strMsg,
                   0,
                   "Работа с WSHNetwork",
                   vbInformation + vbOKOnly );
}

'VBScript
Set WSHNetwork = WScript.CreateObject("WScript.Network")
Set colDrives = WSHNetwork.EnumNetworkDrives
If colDrives.Count = 0 Then
    MsgBox "Подключенных сетевых дисков нет",     _
           vbInformation + vbOkOnly,              _
           "Работа с WSHNetwork"
Else
    strMsg = "Текущие сетевые подключения: " & Chr(10)
    For i = 0 To colDrives.Count - 1 Step 2
        strMsg = strMsg & Chr(10) & colDrives(i) & Chr(9) & colDrives(i + 1)
    Next

    MsgBox strMsg,                                _
           vbInformation + vbOkOnly,              _
           "Работа с WSHNetwork"
End If

Думаю, подробно код объяснять не стоит, все довольно прозрачно: создаем нужные переменные, проверяем есть ли вообще подключенные диски, если нет - выводим соответствующее сообщение, если есть - выводим их список.

Для подключения и отключения сетевых дисков существуют методы MapNetworkDrive и RemoveNetworkDrive соответственно. Пример работы с ними (на JScript):

WshNetwork.MapNetworkDrive("X:", "\\\\S2\\Vol1", "true", "User1", "123");

Здесь обязательными являются только первые два параметра: буква, на которую будет подключаться диск и, собственно, путь к сетевому диску. Третий (true или false) параметр указывает, осуществлять или нет подключение этого диска при следующем логоне. Четвертый и пятый параметры - это имя пользователя и пароль, с которыми может подключаться этот диск. Конечно, хранить пароль на подключение диска в открытом виде в скрипте не очень мудро. Лучше организовать доступ к диску нужным пользователям на сервере, средствами самой ОС. Тогда посторонние люди не смогут узнать пароль для работы с этим ресурсом.

WshNetwork.RemoveNetworkDrive("X:", "true", "true");

Здесь обязателен только первый параметр - буква отключаемого диска. Второй параметр - если true, отключает диск даже если он в этот момент используется. Третий параметр сохраняет настройки для следующих логонов.

С дисками разобрались, перейдем к сетевым принтерам. Работа с ними мало отличается от работы с дисками, поэтому похожие моменты опишу коротко, а остановлюсь подробнее именно на отличиях.

EnumPrinterCollections - возвращает список подключенных принтеров (аналогично дискам).

AddPrinterConnection - подключает локальный порт компьютера к сетевому принтеру. Параметры у этого метода аналогичны методу MapNetworkDrive, только первым параметром идет не буква диска, а порт принтера (LPT1, например).

RemovePrinterConnection - отключает сетевой принтер (вместо буквы диска - порт принтера).

SetDefaultPrinter - устанавливает заданный сетевой принтер принтером по умолчанию. В качестве параметра методу передается сетевое имя принтера, который будет использован по умолчанию (SetDefaultPrinter("\\\\Comp1\\HP1100");).

AddWindowsPrinterConnections - регистрирует принтер в Windows и подключает его к сетевому ресурсу. Этот метод позволяет создать связь с сетевым принтером без явного перенаправления вывода в локальный порт. Набор параметров этого метода для Windows 9x и Windows NT/2000/XP отличается.

Для Windows 9x:

AddWindowsPrinterConnections(strPrnPath, strDriverName [,strPort]);

strPrnPath - путь к сетевому принтеру;

strDriverName - имя драйвера, необходимого для подключения принтера;

strPort - порт, куда будет перенаправлен вывод.

Для Windows NT/2000/XP последние два параметра игнорируются.

Вот, собственно, и вся информация по работе с сетевым окружением с помощью WSH. Областей, где это можно применить - масса, приведу только один пример, который сейчас активно используется у нас на работе: при каждой регистрации пользователя на компьютере отрабатывает logon-скрипт, который пишет в лог-файл (имеющий имя компьютера, на котором произошла регистрация) имя пользователя и время логона. Таким образом убиваются два зайца: можно выяснить на каком компьютере установлена неверная дата и кто заходит в сеть с чужого компьютера. Пример довольно легкий, так что я не буду приводить здесь его код, пусть это будет вашим домашним заданием :). Другие способы использования материалов этой статьи, надеюсь, придумаете сами.


Windows Script Host (WSH) - теория, реестр

Когда компьютеры были большими, а программы были маленькими, основной операционной системой большинства домашних компьютеров была DOS. Компьютерщиков в то время было немного и были они все люди занятые, поэтому для выполнения каких-то постоянно повторяющихся действий были придуманы и использовались bat-файлы (или, как они еще называются, пакетные файлы). С тех пор утекло немало воды, компьютеры стали маленькими и вошли в широкие народные массы. Программы, наоборот, стали очень большими и прожорливыми до ресурсов. Операционная система тоже изменилась. Про DOS большинство современных пользователей и не слышало, а если кому и доводилось с ним работать, то чувствовали они себя крайне некомфортно. А что же bat-файлы? Неужели на фоне всеобщего движения вперед они остались неизменны? Да, они по-прежнему исправно служат во многих ситуациях, но вместе с появлением Windows у них появился реальный конкурент: Windows Script Host (WSH).

Что же представляют собой файлы, написанные с использованием WSH? Это сценарии команд, написанные на JScript, VBScript или других скриптовых языках (Active Perl, Python), позволяющие автоматизировать какие-то действия на компьютере. При этом спектр действий по сравнению с bat-файлом существенно расширен. Помимо обычного запуска программ и работы с файлами WSH позволяет создавать ярлыки программ, выключать компьютер, изменять (добавлять и удалять) записи в реестре, работать с сетью и пользователями (выводить список дисков, подключать/отключать сетевые диски, получать имя компьютера и пользователя, ...), работать с переменными окружения, выдавать диалоговые и информационные сообщения и многое другое. Как видите, список различных возможностей WSH весьма впечатляющий. Причем, научиться с ним работать вовсе не сложно.

Из положительных особенностей Windows Script Host хотелось бы отметить возможность работы в "невидимом" режиме. Например, если вы захотите добавить какую-то информацию в реестр с помощью reg-файла, то вам будет выдан запрос с подтверждением этого действия. При запуске WSH-скрипта никаких вопросов задаваться не будет. Пользователь даже может не подозревать, что на его компьютере выполняются какие-то работы. Думаю, многим администраторам такая возможность придется по душе.

Файлы сценариев WSH представляют собой программы (да-да, это можно уже назвать программой), написанные на JScript (эти файлы имеют расширение .js) или VBScript (соответственно, файлы с расширением .vbs). Синтаксис, естественно, немного отличается, но если вам приходилось раньше сталкиваться с одним из этих языков написания скриптов, то никаких проблем возникнуть не должно.

Если вы пользователь Windows 98/ME/2000/XP то проблем с WSH у вас возникнуть не должно - библиотеки, отвечающие за обработку скриптов изначально присутствуют в системе. Если вы являетесь счастливым обладателем Windows NT, то для включения возможности обработки сценариев WSH вам придется установить сервис пак 4. Тем же, у кого на компьютере установлен Windows 95 придется заглянуть на сайт Microsoft и скачать Windows Scripting Host (msdn.microsoft.com/scripting). Если вы не уверены, есть ли у вас на компьютере Windows Scripting Host, просто запустите поиск файла wscript.exe в каталоге Windows.

Итак, для написания WSH-скрипта вам понадобится любой текстовый редактор (я предпочитаю использовать внутренний редактор FARa), немного терпения и голова на плечах.

Чтобы запустить готовый скрипт, просто дважды щелкните мышкой по файлу, либо введите полное имя файла скрипта в Пуск - Выполнить (учтите, что файл должен иметь расширение .js или .vbs).

Ну вот, на этом, пожалуй, теоретическую часть можно завершить и перейти непосредственно к написанию самих скриптов. В силу привычки я предпочитаю JScript, но по мере возможностей постараюсь приводить примеры как на JS, так и на VBS.

Так как раздел ориентирован в основном на реестр Windows, то и начать хотелось бы со скрипта, работающего с реестром. Итак, попробуем создать какой-нибудь раздел, в нем несколько параметров, а затем все это удалим. Создайте любой файл с расширением .js (например, test.js) и напишите в нем следующее:

//Пример работы с реестром на JScript
var WSHShell = WScript.CreateObject("WScript.Shell");
WSHShell.Popup("Создаем раздел");
WSHShell.RegWrite("HKCU\\MyRegKey\\", "Primer");
WSHShell.Popup("Создаем строковый параметр");
WSHShell.RegWrite("HKCU\\MyRegKey\\String", 1);
WSHShell.Popup("Создаем параметр DWORD");
WSHShell.RegWrite("HKCU\\MyRegKey\\DWORD", 2, "REG_DWORD");
WSHShell.Popup("Создаем двоичный параметр");
WSHShell.RegWrite("HKCU\\MyRegKey\\Binary", 3, "REG_BINARY");
WSHShell.Popup("Удаляем все параметры");
WSHShell.RegDelete("HKCU\\MyRegKey\\String");
WSHShell.RegDelete("HKCU\\MyRegKey\\DWORD");
WSHShell.RegDelete("HKCU\\MyRegKey\\Binary");
WSHShell.Popup("Удаляем раздел");
WSHShell.RegDelete("HKCU\\MyRegKey\\");

В первой строке создается объект типа WSHShell с тем же именем. Во второй строке выводится сообщение о том что создается раздел. После нажатия на "ОК" в появившемся окне в реестре будет создан новый раздел. Перед каждым действием будет появляться окно с сообщением о том, что сейчас будет сделано. В нормальном рабочем скрипте такие окна, конечно, не нужны. Здесь они добавлены просто для того, чтобы вы могли отследить изменения в реестре (для обновления информации в редакторе реестра нажимайте F5 после каждого изменения). Последние строчки удаляют наши параметры и раздел, чтобы не забивать реестр разным мусором.

Если вы обратили внимание, то корневой раздел HKEY_CURRENT_USER в скрипте обозначается как HKCU. Здесь возможны сокращенные названия корневых разделов. HKEY_LOCAL_MACHINE будет писаться как HKLM, HKEY_CLASSES_ROOT - HKCR. Остальные разделы не имеют короткого имени.

Теперь проделаем аналогичную операцию на VBScript (test.vbs):

'Пример работы с реестром на VBScript
set WSHShell = WScript.CreateObject("WScript.Shell")
WSHShell.Popup "Создаем раздел"
WSHShell.RegWrite "HKCU\\MyRegKey\\", "Primer"
WSHShell.Popup "Создаем строковый параметр"
WSHShell.RegWrite "HKCU\\MyRegKey\\String", 1
WSHShell.Popup "Создаем параметр DWORD"
WSHShell.RegWrite "HKCU\\MyRegKey\\DWORD", 2, "REG_DWORD"
WSHShell.Popup "Создаем двоичный параметр"
WSHShell.RegWrite "HKCU\\MyRegKey\\Binary", 3, "REG_BINARY"
WSHShell.Popup "Удаляем все параметры"
WSHShell.RegDelete "HKCU\\MyRegKey\\String"
WSHShell.RegDelete "HKCU\\MyRegKey\\DWORD"
WSHShell.RegDelete "HKCU\\MyRegKey\\Binary"
WSHShell.Popup "Удаляем раздел"
WSHShell.RegDelete "HKCU\\MyRegKey\\"

Как видите, отличия весьма незначительные (по другому задается комментарий, отсутствует ";" в конце строки, нет круглых скобок при задании параметров, var заменена на set). Подробно его разбирать, я думаю, смысла нет - все что справедливо для первого примера, справедливо и для второго.

"Это все здорово, но посоветуй-ка мне что-нибудь полезное!" - скажете вы. И посоветую. Я на 100% уверен, что абсолютно все пользователи интернета сталкивались с такой проблемой, как замена стартовой страницы Internet Explorer'a некоторыми сайтами. Причем, большинство этих сайтов не несет ничего полезного и зачастую видеть их у себя второй раз совсем не хочется. Для борьбы с ними используйте следующий скрипт:

var WSHShell = WScript.CreateObject("WScript.Shell");
//Делаем задержку 10 секунд на случай если
//паразитный сайт добавил что-то в автозагрузку
WScript.Sleep(10000);
//Проверяем что у нас в стартовой странице
StartPage = WSHShell.RegRead("HKCU\\SOFTWARE\\Microsoft\\Internet Explorer\\Main\\Start Page");
//И если там не то, что мы задумали, то меняем на свое
if (StartPage!="http://www.whatis.ru/") {
  WSHShell.RegWrite("HKCU\\SOFTWARE\\Microsoft\\Internet Explorer\\Main\\Start Page", "http://www.whatis.ru/");
}

Добавьте его в автозагрузку в разделе HKEY_CURRENT_USER и вам не придется следить самостоятельно за такими сайтами. И даже если они пропишут какую-нибудь гадость в автозагрузку, то скорее всего и в этом случае стартовая страница будет нужная вам. Правда, если у вас работает антивирус Касперского, могут быть проблемы - по крайней мере у меня он этот файл обозвал трояном :). С другой стороны, если у вас постоянно работает антивирус, то врядли нехорошие сайты что-либо поменяют.

В конце приведу еще один небольшой скрипт, выводящий на экран окно с сообщением о версии WSH у вас на компьютере:

//Версия WSH на JScript
var WSHShell = WScript.CreateObject("WScript.Shell");
WSHShell.Popup("Версия WSH "+WScript.Version);

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


Windows Script Host (WSH) - управление программами

Возможно, читая статьи о WSH, вы задавались вопросом: "Да что такого особенного в этом скрипте?". Действительно, править реестр можно и из reg-файлов, запускать программы, работать с сетевыми дисками, файлами и папками можно из bat-файлов. Да, WSH имеет более богатые возможности в этой области, работать с ним проще и удобнее, но стоят ли эти преимущества того, чтобы изучать данную тему? Для особо сомневающихся в этой статье я хочу затронуть такую область при работе на компьютере, где бессильны все остальные средства (за исключением специально написанных программ). А речь в ней пойдет о возможности управлять другими приложениями Windows (консольными приложениями для MS-DOS управлять не удастся).

В этот раз теории будет совсем немного, зато я постараюсь привести много очень любопытных примеров, ну, а дальше все будет зависеть от вашей фантазии.

Итак, что я подразумеваю под управлением другими приложениями? Активизацию существующего окна и имитацию нажатия в нем различных клавиш клавиатуры. Люди для этого пишут умные и сложные программы, а мы напишем простенький скрипт с тем же эффектом.

Начнем с того, что попытаемся активизировать окно уже запущенной программы.

//JScript
var WshShell = WScript.CreateObject("WScript.Shell");
WshShell.AppActivate("Блокнот");

Для активизиции окна мы воспользовались методом WshShell.AppActivate(). В качестве параметра передается какая-то текстовая строка. Скрипт осуществляет поиск окна, название которого эквивалентно переданной строке. Если такого окна нет, то будет вестись поиск окна, начало заголовка которого совпадает со строкой и в последнюю очередь ведется поиск окна, окончание заголовка которого эквивалентно переданной строке. Это очень удобно, т.к., например, в Word'e заголовок окна меняется в зависимости от имени редактируемого файла, но начало всегда "Microsoft Word". Если окон, удовлетворяющих условию поиска несколько, то активизируется первое найденное окно. Надо отметить, что если окно программы свернуто на панель задач, то оно не разворачивается, а просто кнопка приложения становится "нажатой".

Но просто сама по себе такая возможность мало что дает полезного, но вот в связке со следующим методом можно добиться потрясающего эффекта. И метод этот SendKeys(). Итак, давайте напишем небольшой забавный скрипт, позволяющий слегка посмеяться над друзьями:

//JScript
var WshShell = WScript.CreateObject("WScript.Shell");
KL = true;

while (KL) {
  if (WshShell.AppActivate("Блокнот")) {
    WriteWord();
    KL = false;
  }
  if (WshShell.AppActivate("Microsoft Word")) {
    WriteWord();
    KL = false;
  }
  WScript.Sleep(10000);
}

function WriteWord() {
WshShell.SendKeys("THE ");
WScript.Sleep(300);
WshShell.SendKeys("MATRIX ");
WScript.Sleep(300);
WshShell.SendKeys("HAS ");
WScript.Sleep(300);
WshShell.SendKeys("YOU...");
WScript.Sleep(300);
}

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

Вот похожий пример написанный на VBScript:

set WshShell = WScript.CreateObject("WScript.Shell")
KL = true

do while KL
  if WshShell.AppActivate("Microsoft Word") then
    WriteWord()
    KL = false
  end if
  WScript.Sleep 3000
loop

function WriteWord()
WshShell.SendKeys "HELLO WORLD!"
end function

Я привел его для того, чтобы любители именно этого скриптового языка могли по аналогии переделать все остальные примеры в данной статье, потому что они будут на JScript.

Вынужден сразу разочаровать многих: русские буквы корректно в окно программы не передаются, так что придется обходиться только латинскими.

Помимо алфавитно-цифровых символов в приложения можно передавать и нажатие специальных клавиш, например, Enter, Tab, F1...F12, Alt, Shift, Ctrl, и т.п. В таблице приведены специальные обозначения для этих клавиш:

Клавиша | Код | Клавиша | Код
"BackSpace" | {BACKSPACE}, {BS} или {BKSP} | "Break" | {BREAK}
"Caps Lock" | {CAPSLOCK} | "F1"..."F12" | {F1}...{F12}
"Delete" | {DELETE} или {DEL} | "End" | {END}
"Enter" | {ENTER} или ~ | "Esc" | {ESC}
"Help" | {HELP} | "Home" | {HOME}
"Insert" | {INSERT} или {INS} | "Num Lock" | {NUMLOCK}
"Page Down" | {PGDN} | "Page Up" | {PGUP}
"Print Screen" | {PRTSC} | "Scroll Lock" | {SCROLLLOCK}
"Tab" | {TAB} | "Стрелка вверх" | {UP}
"Стрелка влево" | {LEFT} | "Стрелка вниз" | {DOWN}
"Стрелка вправо" | {RIGHT} |  |

Для указания клавиш Alt, Shift, Ctrl существуют специальные коды:

Клавиша | Код
Shift | +
Ctrl | ^
Alt | %

Так если вы хотите передать нажатие нескольких клавиш с Shift-ом, то вам надо выполнять команду: WshShell.SendKeys("+(ABC)");, если только первую: WshShell.SendKeys("+ABC");.

Легко заметить, что такие символы как +, ^, % зарезервированы под обозначение специальных клавиш, так что просто так передать эти (и некоторые другие) символы не удастся. Для этого надо заключить их в фигурные скобки: "{+}", "{%}"... Вот полный список символов, которые необходимо заключать в фигурные скобки: +, ^, %, ~, (,), {, }, [, ].

Если вы хотите передать несколько нажатий подряд одной клавиши, то вам вовсе не обязательно все их набирать в скрипте, можно просто указать количество повторений. Так, строка WshShell.SendKeys("{A 100}"); эквивалента сотне нажатий клавиши "А". Правда, есть ограничение на количество возможных повторений нажатия клавиш. Это значение лежит где-то между 8150 и 8180 раз (более точно мне было лень выяснять). При превышении этого значения в скрипте будет выдана ошибка.

На этом покончим с теорией и рассмотрим еще парочку примеров работы с программами именно с использованием клавиш, приведенных в таблице. Для начала поиздеваемся над бедными юзерами, а именно закроем Word без сохранения изменений в файле:

var WshShell = WScript.CreateObject("WScript.Shell");
KL = true;

while (KL) {
  if (WshShell.AppActivate("Microsoft Word")) {
    WriteWord();
    KL = false;
  }
  WScript.Sleep(3000);
}

function WriteWord() {
WshShell.SendKeys("%{F4}");
WScript.Sleep(300);
WshShell.SendKeys("{TAB}");
WScript.Sleep(300);
WshShell.SendKeys("{ENTER}");
}

Комментировать не буду, итак все достаточно подробно объяснено по ходу статьи. Конечно, если вы не лишены гуманизма, то можно предварительно сохранить документ в какой-нибудь файл:

var WshShell = WScript.CreateObject("WScript.Shell");
KL = true;

while (KL) {
  if (WshShell.AppActivate("Microsoft Word")) {
    WriteWord();
    KL = false;
  }
  WScript.Sleep(3000);
}

function WriteWord() {
WshShell.SendKeys("%");
WScript.Sleep(300);
WshShell.SendKeys("{ENTER}");
WScript.Sleep(300);
WshShell.SendKeys("{DOWN}");
WScript.Sleep(300);
WshShell.SendKeys("{DOWN}");
WScript.Sleep(300);
WshShell.SendKeys("{DOWN}");
WScript.Sleep(300);
WshShell.SendKeys("{DOWN}");
WScript.Sleep(300);
WshShell.SendKeys("{ENTER}");
WScript.Sleep(300);
WshShell.SendKeys("test");
WScript.Sleep(300);
WshShell.SendKeys("{ENTER}");
}

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

Если вы помните, несколько лет назад был ажиотаж вокруг Spedia.net - спонсора платящего деньги за время, проведенное в интернете. Многие люди пытались на этом заработать, а учитывая тот факт, что некоторые провайдеры давали бесплатный доступ в ночное время, программеры начали писать утилитки, имитирующие работу пользователя за компьютером (запуск браузера, почтового клиента, серфинг по сайтам, получение почты и т.п.). Спедия по мере сил боролась с ними, блокируя оплату юзерам, использующим такие программы... Многим хотелось написать свою утилитку имитации работы, да еще чтобы ее не отловили, но для этого надо было знать программирование, причем там использовались не самые тривиальные знания. С помощью материала данной статьи, я думаю, теперь любой сможет написать нечто похожее :). Правда, сейчас это уже никому не нужно, но найти для полученных знаний более достойное применение вполне возможно.

На этой радостной ноте хотелось бы закончить рассмотрение данного материала.


Windows Script Host (WSH) - файловая система

В этой статье речь пойдет о работе с объектами файловой системы, а именно, с самими файлами и локальными дисками (дисководы, жесткие диски, CD-ROM'ы). Сетевые диски будут рассмотрены в одной из следующих статей.

Приведу небольшой пример и на его основе объясню принципы работы с дисками в Windows Script Host. Если вы еще не отключили сообщение системы о том что какой-то диск переполнен, то, наверняка, уже не раз лицезрели его. Мерзкая штука! Оно вам надо? Давайте, лучше, сами создадим такое сообщение :).

'Проверка количества свободного места на дисках. VBScript
Set fso = WScript.CreateObject("Scripting.FileSystemObject")
Set WSHShell = WScript.CreateObject("WScript.Shell")
'Проверяем все драйвы (HDD, FDD, CDD) в системе
For each i In fso.Drives
  'DriveType=2 - логические диски. Зачем нам дисковод и т.п. ерунда?
  If i.DriveType=2 Then
    'Получаем букву диска
    drive=i.DriveLetter
    'Узнаем свободное место и переводим его в Мб с
    'точностью до 1 знака после запятой
    free = FormatNumber(fso.GetDrive(drive).FreeSpace/1048576, 1)
    'Если места меньше 100 Мб
    If free < 100 Then
      'то выводим сообщение об этом
      WSHShell.Popup("На диске "+drive+" осталось меньше 100 Мб. Свободно "+free+" Мб!")
    End If
  End If
Next

Добавьте получившийся файл в автозагрузку и каждый раз при старте системы у вас будет проверяться наличие свободного места на диске. Как только его окажется меньше порогового значения, заданного вами (в примере 100 Мб), выскочит информационное окно, уведомляющее об этом.

Если вы не будете фильтровать тип диска (строка If i.DriveType=2), то объем свободного места будет проверяться и на дискете в дисководе и на CD-ROM'e. А если в приводе не будет носителя, то скрипт прервется и будет выдано сообщение об ошибке.

DriveType имеет следующие значения:

0 - Тип не может быть определен
1 - Сменный носитель или дисковод для гибких дисков
2 - Обычный HDD
3 - Сетевой диск
4 - CD-ROM
5 - Виртуальный RAM-диск

Остановимся подробнее на строке free = FormatNumber (fso.GetDrive(drive).FreeSpace /1048576, 1). Свойство FreeSpace возвращает количество свободного дискового места в байтах. Конечно, работать с такими большими цифрами некомфортно, поэтому мы переводим байты в мегабайты, делением на 1048576. А чтобы не лицезреть кучу знаков после запятой, округляем до одного значащего символа с помощью FormatNumber() - количество знаков после запятой устанавливается с помощью второй переменной.

Если вам надо получить полный объем диска, то вместо FreeSpace используйте свойство TotalSize.

Вы можете явно указать диск, с которым хотите работать. Для этого используется метод GetDrive:

Set fso = WScript.CreateObject("Scripting.FileSystemObject")
Set Drive = fso.GetDrive("c")

Чтобы узнать файловую систему диска используйте свойство FileSystem:

MsgBox(Drive.FileSystem)

Остальные свойства и методы работы с диском не так интересны. Среди них такие как:

DriveExists - проверяет на наличие заданного диска: fso.DriveExists("c").
IsReady - если диск готов к использованию, возвращает true, в противном случае - false.
RootFolder - возвращает путь к корневому каталогу.
SerialNumber - возвращает серийный номер диска.
ShareName - возвращает сетевое имя диска.
VolumeName - возвращает либо устанавливает метку диска.

Теперь обратим внимание на работу с файлами и папками. Редактирование файлов я бы хотел вынести в отдельную статью, а здесь коснемся вопросов создания, копирования, удаления файлов, установки атрибутов и т.п.

Для примера давайте создадим на диске С:\ папку TEST, а в ней файл test.txt:

//Создание папки и файла. JScript
var fso = new ActiveXObject("Scripting.FileSystemObject");
//Проверяем, есть ли такая папка
if (fso.FolderExists("C:\\TEST"))
   WScript.Echo("Такая папка уже существует");
else
//Если нет - создаем
   var Folder = fso.CreateFolder("C:\\TEST");
//Проверяем, есть ли уже такой файл
if (fso.FileExists("C:\\TEST\\test.txt"))
   WScript.Echo("Такой файл уже существует");
else
//Если нет, то создаем его
   var File = fso.CreateTextFile("C:\\TEST\\test.txt", true);

Комментарии наглядно демонстрируют работу скрипта. Давайте только подробнее остановимся на создании файла (последняя строка). Вторым параметром передается значение true. Этот параметр является необязательным и указывает, перезаписывать ли файл с таким именем. Здесь же может передаваться и третий параметр. Если он отсутствует или равен false, то файл будет создан в кодировке ASCII. Если параметр равен true - в unicode.

В примере мы не просто создали папку и файл, но и создали объекты этой папки и файла (Folder и File соответственно). Если надо создать объект для уже существующей папки/файла, используйте метод GetFile/GetFolder:

var File1 = fso.GetFile("C:\\autoexec.bat");

К этим объектам применимы различные методы, позволяющие копировать, переименовывать, удалять файлы, получать о них различные сведения, устанавливать атрибуты. Как несложно догадаться для копирования, перемещения и удаления файлов и папок применяются методы Copy, Move и Delete. При этом в Copy и Move передается имя файла, в который надо скопировать/перенести исходный, а в Delete ничего не передается. Так, чтобы скопировать autoexec.bat в autoexec.tmp надо добавить строку

File1.Copy("C:\\autoexec.tmp");

Различные свойства объектов, созданных с помощью GetFile/GetFolder позволяют получить различные сведения о файлах и папках на которые они указывают. Вот эти свойства:

Size - возвращает размер файла/папки;
DateCreated - время создания;
DateLastAccessed - время последнего обращения к объекту;
DateLastModified - время последнего изменения.

Например:

WScript.Echo(File1.Size);

Бывают ситуации, когда надо получить имя файла, на который ссылается объект. Например:

var fso = new ActiveXObject("Scripting.FileSystemObject");
var File1 = fso.GetFile("C:\\autoexec.bat");
var File2 = fso.GetFile("C:\\config.sys");
var File3 = fso.GetFile("C:\\netlog.txt");
if (fso.FileExists("C:\\config.sys"))
   File1 = File2;
else
   File1 = File3;
WScript.Echo (File1.Name);

В зависимости от того, есть ли файл config.sys, объект File1 будет указывать на разные файлы. Конечно, в таком виде этот пример в реальной ситуации вряд ли встретится, но для иллюстрации неопределенности с файлом вполне подходит. Для определения имени файла (папки) и пути к нему служат еще несколько свойств:

Name - возвращает обычное имя файла (папки);
ShortName - короткое имя (в формате MS-DOS). Длинные имена будут урезаны до формата 8.3;
Path - возвращает обычный путь к файлу (папке);
ShortPath - короткий путь (с тильдой "~");
ParentFolder - возвращает имя родительского каталога.

Как они работают вы уже могли видеть в предыдущем примере в последней строке.

Закончить рассмотрение данной темы мне бы хотелось описанием установки атрибутов файлов/папок и получением сведений о типе файла. Тип файла возвращает свойство Type. Вызывается оно аналогично описанным ранее свойствам:

WScript.Echo (File1.Type);

Если вы вызовите свойства файла по правому клику мышки, то на вкладке "Общие" в поле "Тип" будет как раз то описание, что возвращает это свойство.

Получать или устанавливать атрибуты файлам и папкам позволяет свойство Attributes. Так, посмотреть атрибуты нашего файла можно командой:

WScript.Echo (File1.Attributes);

В таблице приведены значения, которые может принимать данное свойство:

Константа | Значение | Действие | Описание
Normal | 0 | чтение/запись | Обычный файл без атрибутов
ReadOnly | 1 | чтение/запись | Только чтение
Hidden | 2 | чтение/запись | Скрытый
System | 4 | чтение/запись | Системный
Volume | 8 | только чтение | Метка диска
Directory | 16 | только чтение | Папка
Archive | 32 | чтение/запись | Архивный
Compressed | 128 | только чтение | Сжатый файл

Если вам надо установить несколько свойств файлу, значения надо складывать. Например чтобы установить для файла атрибуты только для чтения, скрытый и системный, надо передать значение 1+2+4=7:

File1.Attributes = 7;

На этом объяснения по работе с объектами файловой системы позвольте закончить :). В следующей статье будут подняты вопросы чтения и редактирования файлов.


Windows Script Host (WSH) - файлы и папки

В одной из предыдущих статей затрагивалась тема работы с файловой системой вообще и с файлами и каталогами в частности. Однако, при рассмотрении этого вопроса объяснялось как работать с одним файлом или одним каталогом. Зачастую, этого бывает недостаточно, особенно, когда нужно совершить какие-то действия со всеми файлами из определенного каталога и их имена не известны (довольно распространенная задача). Для этого случая в Windows Script Host есть возможность работы с коллекциями файлов и каталогов.

Сперва рассмотрим работу с каталогами. Список каталогов хранится в коллекции Folders, получить которую можно с помощью свойства SubFolders объекта Folder (может немного запутанно, но в приведенном ниже примере все станет ясно). Folders имеет свойство Count и методы Item и Add. Вот небольшой пример на JScript, выводящий список имен всех папок на диске С:, демонстрирующий как работать с коллекцией Folders:

   var fso, f, fc, fc1, s;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   f = fso.GetFolder("C:");
   fc = new Enumerator(f.SubFolders);
   fc1 = f.SubFolders;
   s = "";
   for (; !fc.atEnd(); fc.moveNext())
   {
      s += fc.item();
      s += "\n";
   }
   s = s + "Всего папок: " + fc1.Count;
   WScript.Echo(s);

Аналогично на VBScript:

   Dim fso, f, f1, fc, s
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f = fso.GetFolder("C:")
   Set fc = f.SubFolders
   For Each f1 in fc
      s = s & f1.name
      s = s & CHR(10)
   Next
   s = s & "Всего папок: " & fc.Count
   WScript.Echo s

Для иллюстрации метода Add приведу небольшой пример на JScript:

   var fso, f, fc;
   fso = WScript.CreateObject("Scripting.FileSystemObject");
   f = fso.GetFolder("C:");
   fc = f.SubFolders;
   fc.Add("NewFolder");

Этот метод позволяет создать новую папку с именем, заданным в качестве параметра, в указанной вами директории.

Конечно, данные примеры вряд ли найдут практическое применение, но для иллюстрации работы с каталогами этого вполне достаточно. Работа с файлами мало отличается от работы с каталогами. Список всех файлов из какого-либо каталога формируется с помощью коллекции Files. Вот небольшой пример, в принципе, очень похожий на первый:

   var fso, f, f1, fc, s;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   f = fso.GetFolder("C:");
   fc = new Enumerator(f.files);
   s = "";
   for (; !fc.atEnd(); fc.moveNext())
   {
      s += fc.item();
      s += "\n";
   }
   WScript.Echo(s);

И без комментариев все довольно понятно. В конце хотелось бы привести пример, реально встречающийся в практике: синхронизация содержимого двух каталогов. Здесь файлы сравниваются по имени и размеру и если у файлов с одинаковым именем оказываются разные размеры, то происходит копирование файла из одного каталога в другой, а информация об этом сохраняется в логе. Таким способом можно синхронизировать какие-то файлы лежащие на сервере и на локальной машине, просто поменяйте пути к папкам на нужные вам. Скрипт написан на VBScript.

   Set fso = CreateObject("Scripting.FileSystemObject")
   Set UFolder = fso.getfolder("C:\Folder1")
   set UFile = UFolder.files
   Set OFolder = fso.getfolder("C:\Folder2")
   Set OFile = OFolder.files

   If (fso.FileExists("C:\LOG\copy.log")) Then
      Set MyFile = fso.OpenTextFile("C:\LOG\copy.log", 8, True)
   Else
      Set MyFile = fso.CreateTextFile("C:\LOG\copy.log")
   end if

   For Each f1 in UFile
      FileToCopy = UFolder&"\"&f1.Name
      For Each f2 in OFile
         if f1.Name = f2.Name then
            if f1.Size = f2.Size then
            else
               fso.CopyFile FileToCopy, OFolder&"\"&f1.Name
               MyFile.WriteLine(Cstr(Date)&" "&Cstr(Time)&" Файл "&f1.Name&" обновлен. Размер "&f1.Size)
            end if
         else
         end if
      Next
   Next

   MyFile.Close


Windows Script Host (WSH) - чтение и редактирование файлов

Копировать, переносить и удалять файлы и папки мы научились в предыдущей статье, теперь давайте попробуем просматривать содержимое файлов и редактировать их. Областей применения данного умения масса: от редактирования autoexec.bat и config.sys, до проверки значения параметра run в win.ini, от вывода на экран содержимого файла в качестве сообщения до ведения логов работы пользователей и действий скрипта.

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

//JScript
var fso = new ActiveXObject("Scripting.FileSystemObject");
var file = fso.OpenTextFile("C:\\TEST\\test.txt", 2, true);

//VBScript
Set fso = CreateObject("Scripting.FileSystemObject")
Set file = fso.OpenTextFile("C:\TEST\test.txt", 2, true)

Итак, OpenTextFile открывает файл, если его нет, то создается новый файл. Из параметров, передаваемых методу, обязательным является только первый - имя файла. Остальные параметры можно не указывать. Вторым параметром устанавливается режим открытия файла. Возможные значения, которые может принять эта переменная, следующие:

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

Третья переменная может принимать значение true или false. Она показывает, создавать ли новый файл, если его до этого не существовало. Если значение равно true, то новый файл будет создан.

Есть еще и четвертый параметр, который указывает кодировку для открытия файла. Его возможные значения:

- 2 - открывается, используя системную кодировку;
- 1 - открывается в кодировке Unicode;
0 - открывается в кодировке ASCII.

Но, просто открыть файл мало, надо туда и записать что-нибудь! Именно для этого служат следующие методы:

Write - записывает данные в файл в одну строку, без перевода курсора;
WriteLine - записывает в файл отдельную строку;
WriteBlankLines - записывает пустую строку (в качестве параметра принимает количество пустых строк, которые надо записать).

Вот небольшой пример их использования:

//JScript
fso = new ActiveXObject("Scripting.FileSystemObject");
file = fso.OpenTextFile("c:\\TEST\\test.txt", 2, true);
file.Write("Hello, World!");
file.WriteBlankLines(2);
file.WriteLine("Hello");

Для чтения данных из файла используются методы:

Read - читает из файла указанное в качестве параметра количество символов;
ReadLine - читает строку из файла;
ReadAll - считывает весь файл;
Skip - пропускает указанное количество символов;
SkipLine - пропускает строку.

Давайте попробуем написать на основе этого один весьма полезный скрипт:

//JScript
fso = new ActiveXObject("Scripting.FileSystemObject");
//Откроем файл на чтение
//При необходимости поменяйте путь расположения файла
file = fso.OpenTextFile("c:\\windows\\win.ini", 1, false);
//Предполагаем, что параметр run находится во 2-й строке
//поэтому устанавливаем туда курсор, пропустив первую строку
file.SkipLine();
//Считываем строку и сравниваем с пустой записью
//Если они не совпадают, то бъем тревогу
if (file.ReadLine()!="run=") {
   WScript.Echo("Параметр run не пустой!!!");
}
//Это просто для контроля. В реальной работе можно отключить
else {
   WScript.Echo("OK!");
}

Некоторые вирусы и трояны прописывают свой запуск в файле win.ini в параметре run. Этот скрипт проверяет, есть ли там какая-то запись, и если с помощью него что-то запускается, то скрипт об этом честно предупреждает. Конечно, это самый примитивный вариант, можно сделать, чтобы была проверка, действительно ли это параметр run, выводить его содержимое если он не пустой, но в учебных целях такого вполне достаточно. Прописываете его в автозагрузку и можете спать спокойно (только не сильно увлекайтесь "засорением" автозагрузки - хоть и не на много, но загружаться будет медленнее).

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

Думаю теперь чтение и запись данных в файл с помощью WSH у вас не вызовет никаких проблем.


Windows Script Host (WSH) - ярлыки

Продолжая тему WSH, в этой статье мне хотелось бы рассказать, как с помощью скрипта создавать ярлыки для файлов и интернет-URL'ов, а также как работать с системными папками Windows.

Давайте для начала попробуем создать ярлык Блокнота на Рабочем столе:

// Создание ярлыка программы. JScript
var vbOKCancel = 1;
var vbInformation = 64;
var vbCancel = 2;
var Message = "Вы действительно хотите создать ярлык на Рабочем столе?";
var Title   = "Подтвердите действие";
var WSHShell = WScript.CreateObject("WScript.Shell");
Welcome();

// Узнаем путь к Рабочему столу
var DesktopPath = WSHShell.SpecialFolders("Desktop");
// Создаем ярлык
var MyShortcut = WSHShell.CreateShortcut(DesktopPath + "\\Блокнот.lnk");
// Задаем свойства для ярлыка:
// Запускаемый файл
MyShortcut.TargetPath = WSHShell.ExpandEnvironmentStrings("%windir%\\notepad.exe");
// Директория запускаемого файла
MyShortcut.WorkingDirectory = WSHShell.ExpandEnvironmentStrings("%windir%");
// Клавиши для быстрого вызова программы
MyShortcut.HotKey = ("CTRL+ALT+N");
// Тип окна запускаемого файла
MyShortcut.WindowStyle = 4;
// Иконка, используемая для ярлыка
MyShortcut.IconLocation = WSHShell.ExpandEnvironmentStrings("%windir%\\notepad.exe, 0");
// Сохраняем изменения свойств ярлыка
MyShortcut.Save();
// Докладываем, что все готово
WScript.Echo("Ярлык для Блокнота создан на Вашем Рабочем столе");

function Welcome() {
    var intDoIt;

    intDoIt =  WSHShell.Popup(Message,
                              0,
                              Title,
                              vbOKCancel + vbInformation );
    if (intDoIt == vbCancel) {
        WScript.Quit();
    }
}

Комментариев более чем достаточно, чтобы понять принцип работы скрипта. Более подробно расскажу о свойстве WindowStyle. Вызовите свойства любого ярлыка и обратите внимание на поле "Окно:". Здесь вы можете задавать способ запуска программы. Вот какие значения можно использовать при задании этого свойства:

3 - при запуске окно программы будет развернуто на весь экран;

4 - стандартный размер окна;

7 - окно будет свернуто в значок на панели задач.

В четвертой строчке вам встречается новый метод - SpecialFolders. Он возвращает путь к системным папкам Windows. Вот список наиболее любопытных папок:

Desktop - Рабочий стол
Favorites - Избранное
Fonts - Шрифты
MyDocuments - Мои документы
NetHood - Сетевое окружение
PrintHood - Принтеры
Programs - подменю Программы из меню Пуск
Recent - подменю Документы из меню Пуск
SendTo - подменю Отправить из контекстного меню файлов
StartMenu - Главное меню
Startup - Автозагрузка из подменю Программы
Templates - Шаблоны

Есть еще несколько папок: AllUsersDesktop, AllUsersStartMenu, AllUsersPrograms, AllUsersStartup - но они присутствуют только в WinNT/2000/XP

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

Теперь от файлов плавно перейдем к линкам. Ярлыки для адресов в Интернете создаются практически так же. Только надо учесть, что у них поменьше свойств, а точнее - только одно:

//Создание файла линка Интернет. JScript
var WSHShell = WScript.CreateObject("WScript.Shell");
// Узнаем путь к "Избранному"
var FavoritesPath = WSHShell.SpecialFolders("Favorites");
// Создаем ярлык
var MyShortcut = WSHShell.CreateShortcut(FavoritesPath + "\\Кормушка для чайников.URL");
// Задаем свойства для ярлыка
MyShortcut.TargetPath = WSHShell.ExpandEnvironmentStrings("http://www.whatis.ru");
MyShortcut.Save();

Указав в скрипте расширение .URL для ярлыка, мы даем понять, что нас интересует какой-то адрес в Интернете, а не файл. Ну и конечно, ярлык создаем в Избранном - наиболее логичное место для него.

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