Интернет-журнал "Домашняя лаборатория", 2008 №2 - Журнал «Домашняя лаборатория»
В отличие от acompat.exe из дистрибутива Windows 2000, Windows ХР в режиме совместимости не просто рапортует программе, что она — это не она (по типу утилиты setver из MS-DOS), но и эмулирует структуру реестра Windows, свойственную той или иной версии ОС. Если нет желания лазать по свойствам файлов и ярлыков самостоятельно, можно воспользоваться Program Compatibility Wizard (Start — Programs — Accessories). Впрочем, не стоит ожидать от этого механизма чуда, 100 % совместимости добиться так и не удалось, поэтому не будет лишним сходить на сайт производителя Вашей программы и посмотреть, не появился ли там апдейт на неё, делающей её совместимой с ХР.
Решение проблемы с необнаружением DirectX 5.0 некоторыми программами в Windows 2000
Некоторые программы при старте или инсталляции жалуются, что DirectX 5.0 не установлен, хотя в Windows 2000 входит DirectX 7.0. Наличие DirectX 5.0 определяется несколько по-другому, чем наличие более поздних версий, поэтому некоторые старые программы не находят DirectX вообще. Но их можно обмануть.
Для этого, создаётся каталог directx в Program Files. Потом в этот каталог из дистрибутива DirectX 5.0 переписываются несколько файлов: DXINFO.EXE, DXSETUP.EXE и DXTOOL.EXE. Там же создаётся линк на "dxdiag.exe", который находится в каталоге WINNTSystem32. И напоследок, в каталог WINNTSystem32 переписывается файл ddhelp.exe из дистрибутива DirectX 5.0. После этого запускаем упрямую программу и радуемся жизни.
Примечание: программы, требующие DirectX 6.1, на эту уловку, к сожалению, не поддаются.
Ошибка "Несовместимая версия заглушки RPC"
Если при инсталляции программы в Windows NT/2000 вы получаете сообщение об ошибке "Несовместимая версия заглушки RPC" ("Incompatible Version of the RPC Stub"), то причиной этого является то, что какая-то другая программа заменила какой-либо из файлов 01eaut32.dll, Olepro32.dll, Asycfilt.dll, Stdole2.tlb другой версией, которая не совместима со старой.
Для решения проблемы необходимо сделать следующее. Если на компьютере установлен MS Office 2000, то надо поставить Service Release la (SR-la) для него. Если Office 2000 не установлен, то надо скачать и запустить утилиту Mcrepair.exe. Взять её можно здесь: http://download.microsoft.com/download/msninvestor/patch/1.0/win98/en-us/mcrepair.exe
Отказ от перезаписи для всех файлов при копировании в "Проводнике" Windows 2000/ХР
Если при копировании файлов в "Проводнике" часть файлов может перезаписаться, то выскакивает диалог с запросом на подтверждение перезаписи.
И там есть, в частности, кнопка "Да для всех" (Yes for All). А вот отказываться приходится для каждого файла по отдельности… Но если щёлкнуть на кнопке "Нет", удерживая <Shift>, то это сработает как "Нет для всех", т. е. для всех подобных запросов будет автоматически выдаваться отмена перезаписи файла.
Сохранение настроек security и permissions файлов при копировании
По умолчанию, когда Вы копируете файлы с одного NTFS-диска на другой, файлы принимают security и permissions текущего каталога. Но можно копировать файлы и с сохранением их собственных настроек security и permissions.
Для этого можно воспользоваться программой SC0PY из NT Resource Kit. Пример: SCOPY c: winfaqsecure.dat d: temp /о /а. Эта команда копирует с сохранением владельца (/о) и информации об аудите (/а).
Также можно использовать ключ /s для копирования информации в подкаталогах. Единственное ограничение для этой команды состоит в том, что и начальный, и конечный диски должны быть в NTFS.
Удаление файлов с именами, совпадающими с именами устройств в DOS
Если имя файла (или его часть) совпадает с наименованием устройств в DOS (NUL, СОМх, AUX, LPTx, PRN…), то удалить его с помощью Explorer'а или стандартной командой DEL невозможно. Для удаления, например, файла AUX.BAT используйте команду: DEL \.drive: pathAUX.ВАТ.
Как заменить используемый Windows NT системный файл
Если Вы попытаетесь заменить используемый NT системный файл, будет выведено сообщение о том, что файл заблокирован. В Windows NT Resource Kit для этого есть специальная 32 — х разрядная утилита MV.EXE, которая заменяет системные файлы при перезагрузке.
Основной формат выполнения MV следующий:
mv /х /d d: tempntfs.sys d: winntsystem32driversntfs.sys
Ключ /х указывает, что не нужно сохранять копию файла. Ключ /d указывает, что копирование производится при перезагрузке.
Если у Вас нет утилиты MV.EXE, то придётся выполнять её работу вручную:
1. Откройте редактор реестра regedt32.exe (а не regedit.exe).
2. Перейдите в раздел
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession Manager
3. Дважды щёлкните мышью на параметре "PendingFileRenameOperations". Если данный параметр отсутствует, то создайте его (тип REG_MULTI_SZ).
4. В первой строке запишите путь к файлу, который надо заменить, с ?? в начале строки, например: ??d: winntsystem32driversntfs.sys 5. На второй строке запишите путь к файлу, на который надо заменить, с!?? в начале строки, например:!??d: timentfs.sys 6. Нажмите "ОК".
После перезагрузки и замены необходимого системного файла, параметр "PendingFileRenameOperations" будет автоматически удалён из реестра.
Ведение протоколов службы удалённого доступа (RAS)
Включение dword-параметра "Logging" (значение 1) в разделе реестра
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesRasManParameters создаёт файл DEVICE.LOG (протокол устройств) в каталоге %SYSTEMROOT%SYSTEM32RAS для записи информации о командах, посылаемых модемом, и сообщённых ошибках. Этот файл может быть очень полезен для отладки отказов RAS.
Включение dword-параметра "Logging" (значение 1) в разделе реестра
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesRasManPPP
создаёт файл PPP.LOG (протокол РРР) в каталоге %SYSTEMROOT%SYSTEM32RAS для того, чтобы помочь в диагностике проблем связи между РРР-сервером и РРР-пользователем, когда один из компьютеров — клиент службы удалённого доступа Windows NT.
Предотвращение автоматического закрытия окон DOS-задач
При запуске командного файла (или любой другой DOS-задачи без установленных pif-настроек) используются свойства ярлыка DEFAULT.PIF из каталога %SystemRoot% (обычно, C: Windows). Если в его свойствах на вкладке "Программа" (Program tab) стоит флажок "Закрывать окно по завершении работы" (Close on Exit), то DOS-окна будут автоматически закрываться, скрывая результат выполнения командного файла. Для отмены такого поведения надо снять этот флажок.
Запуск приложения в виде сервиса
Как и во многих других случаях здесь поможет Resource Kit, а точнее входящие в его состав утилиты instsrv.exe и srvany.exe. Последовательность действий следующая:
1. instsrv <Имя_вашего_сервиса> C: NTResKitsrvany.exe
2. Control Panel —> Services —> <Имя_вашего_сервиса> —> Startup —> установите нужный вам способ запуска сервиса: Automatic или Manual. Logon As: здесь вы должны указать учётную запись, от имени которой будет стартовать сервис. Если по ходу работы он должен будет взаимодействовать с клавиатурой и/или с экраном поставьте галочку на "Allow Service to Interact with Desktop".
3. Запустите редактор реестра (Start —> Run —> regedt32 —> Ok).
В раздел
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesИмя_вашего_сервиса
добавьте подраздел Parameters, создайте в нём параметр "Application" (REG_SZ) со значением, равным полному