Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Windows [игнор отключен] [закрыт для гостей] / Как Windows 2000 ищет Command.com призапуске старых приложений? / 17 сообщений из 17, страница 1 из 1
17.01.2005, 09:27
    #32867043
aleks2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как Windows 2000 ищет Command.com призапуске старых приложений?
На одном из компов Windows 2000 SP4 заполучил такое сообщение:

Код: plaintext
1.
Всплывающее окно приложения:  16 -разрядная подсистема MS-DOS : <все, что угодно>.EXE
config.nt. Системный файл не предназначен для выполнения приложений MS-DOS и Microsoft Windows. Для завершения работы приложения нажмите кнопку ''Закрыть''. 

Почитал http://support.microsoft.com/default.aspx?scid=kb;ru;324767

Проверил
• Config.nt
• Autoexec.nt
• Command.com
все на месте в %systemroot%\system32.

С помощью FileMon обнаружил, что система пытается найти Command.com в корне C:\.

Засунул Command.com в C:\ - все стало ХОККЕЙ...

НО!!!, на других компах с Windows 2000 SP4 НЕМА C:\Command.com и ВСЕ работает.

Внимание вопрос: Как Windows 2000 SP4 ищет Command.com призапуске старых приложений? И как это дело можно поправить?
...
Рейтинг: 0 / 0
17.01.2005, 09:29
    #32867047
lissyara
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как Windows 2000 ищет Command.com призапуске старых приложений?
start -> run -> regedit.exe
...
Рейтинг: 0 / 0
17.01.2005, 09:38
    #32867063
aleks2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как Windows 2000 ищет Command.com призапуске старых приложений?
lissyarastart -> run -> regedit.exe

Блин, такие советы и я могу давать... а дальше?
...
Рейтинг: 0 / 0
17.01.2005, 10:04
    #32867109
lissyara
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как Windows 2000 ищет Command.com призапуске старых приложений?
А много у тебя command.com`ов в реестре? У меня - ни одного. Но у меня он его и не ищет.
...
Рейтинг: 0 / 0
17.01.2005, 10:42
    #32867187
trubb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как Windows 2000 ищет Command.com призапуске старых приложений?
с винфака - "Посмотрите C:\WINNT\SYSTEM\autoexec.nt и C:\WINNT\SYSTEM\config.nt Hо под W2k эти файлы влияют только на процессы, работающие через NTVDM и на Win32 никакого эффекта не оказывают. Кроме того, при указании путей в autoexec.nt могут некорректно вести себя Win16-приложения. Поэтому рекомендуется прописывать пути в свойствах "Мой компьютер" на закладке Advanced -> Environment Variables. "
...
Рейтинг: 0 / 0
17.01.2005, 12:43
    #32867545
aleks2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как Windows 2000 ищет Command.com призапуске старых приложений?
lissyaraА много у тебя command.com`ов в реестре? У меня - ни одного. Но у меня он его и не ищет.

Для неграмотных поясняю: command.com он не в реестре, он в %systemroot%\system32 живет и это стандартный компонент Windows.
Запускается если пользователь заводит любое 16-битное приложение.


trubbс винфака - "Посмотрите C:\WINNT\SYSTEM\autoexec.nt и C:\WINNT\SYSTEM\config.nt Hо под W2k эти файлы влияют только на процессы, работающие через NTVDM и на Win32 никакого эффекта не оказывают. Кроме того, при указании путей в autoexec.nt могут некорректно вести себя Win16-приложения. Поэтому рекомендуется прописывать пути в свойствах "Мой компьютер" на закладке Advanced -> Environment Variables. "

autoexec.nt и config.nt нормальные. Ведь работают 16-битные приложения, ЕСЛИ
засунуть Command.com в C:\
---------------------
Вопрос в том: какого хрена его там система ищет и чем ее не устраивает %systemroot%\system32\Command.com
...
Рейтинг: 0 / 0
17.01.2005, 12:53
    #32867575
trubb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как Windows 2000 ищет Command.com призапуске старых приложений?
Environment Variables - shell - знаешь?
...
Рейтинг: 0 / 0
17.01.2005, 13:02
    #32867605
lissyara
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как Windows 2000 ищет Command.com призапуске старых приложений?
Сами ми не местние....
Ми искаль в реюсти - а посему зе ему ентот command.com нузен в c:\....

А коли на тот момент не было других предложений где искать путь к command.com я и выдвинул идею порыться в реестре.

З.Ы. В вин2000 есть ещё cmd.exe
...
Рейтинг: 0 / 0
17.01.2005, 13:26
    #32867681
trubb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как Windows 2000 ищет Command.com призапуске старых приложений?
trubbEnvironment Variables - shell - знаешь?
или comspec....
...
Рейтинг: 0 / 0
17.01.2005, 15:57
    #32868219
aleks2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как Windows 2000 ищет Command.com призапуске старых приложений?
trubb trubbEnvironment Variables - shell - знаешь?
или comspec....

Знаешь. Там стоит comspec=%SystemRoot%\system32\cmd.exe.
Так стоит на всех машинах (и на проблемной тоже).
...
Рейтинг: 0 / 0
17.01.2005, 16:10
    #32868253
lissyara
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как Windows 2000 ищет Command.com призапуске старых приложений?
А ты пропиши c:\winnt\.....
...
Рейтинг: 0 / 0
17.01.2005, 16:17
    #32868278
trubb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как Windows 2000 ищет Command.com призапуске старых приложений?
создать pif для дос-проги и там ей подсунуть маршруты до config.nt ...
...
Рейтинг: 0 / 0
17.01.2005, 16:21
    #32868292
Anatoly Podgoretsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как Windows 2000 ищет Command.com призапуске старых приложений?
aleks2На одном из компов Windows 2000 SP4 заполучил такое сообщение:

[src]С помощью FileMon обнаружил, что система пытается найти Command.com в корне C:\.


Ты уверен, что система, а не приложение?
Кроме того выдай сюда распечатку консольной команды SET, а если возможно то это сделать из консоли той программы то и от туда.
...
Рейтинг: 0 / 0
18.01.2005, 07:20
    #32869063
aleks2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как Windows 2000 ищет Command.com призапуске старых приложений?
lissyaraА ты пропиши c:\winnt\.....

Я уже сунул command.com в корень. А твой совет из той же оперы...

trubbсоздать pif для дос-проги и там ей подсунуть маршруты до config.nt ...

Гм... это для каждого приложения создавать?

[quot Anatoly Podgoretsky][quot aleks2]На одном из компов Windows 2000 SP4 заполучил такое сообщение:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
С помощью FileMon обнаружил, что система пытается найти Command.com в корне C:\. 
[/quot]

Ты уверен, что система, а не приложение?
Кроме того выдай сюда распечатку консольной команды SET, а если возможно то это сделать из консоли той программы то и от туда.[/quot]

>>Ты уверен, что система, а не приложение?
Да. Приложения разные и на др. машинах они этого не делают.

>>Кроме того выдай сюда распечатку консольной команды SET

AUTOEXEC.nt и CONFIG.nt идентичны файлам на беспроблемной машине.

Это установки из cmd.exe
[src]ALLUSERSPROFILE=C:\Documents and Settings\All Users
APPDATA=C:\Documents and Settings\Администратор.ST2\Application Data
CLIENTNAME=ARB3
CommonProgramFiles=C:\Program Files\Common Files
COMPUTERNAME=ST2
ComSpec=C:\WINNT\system32\cmd.exe
HOMEDRIVE=C:
HOMEPATH=\Documents and Settings\Администратор.ST2
Files\Microsoft Visual Studio\VC98\lib
LOGONSERVER=\\ST2
NUMBER_OF_PROCESSORS= 1 
OS=Windows_NT
Os2LibPath=C:\WINNT\system32\os2\dll;
Path=C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Microsoft SQL Server\ 80 \Tools\Binn\
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
PROCESSOR_ARCHITECTURE=x86
PROCESSOR_IDENTIFIER=x86 Family  6  Model  6  Stepping  5 , GenuineIntel
PROCESSOR_LEVEL= 6 
PROCESSOR_REVISION= 0605 
ProgramFiles=C:\Program Files
PROMPT=$P$G
SESSIONNAME=RDP-Tcp# 3 
SystemDrive=C:
SystemRoot=C:\WINNT
TEMP=C:\DOCUME~ 1 \АДМИНИ~ 1 .ST2\LOCALS~ 1 \Temp\ 1 
TMP=C:\DOCUME~ 1 \АДМИНИ~ 1 .ST2\LOCALS~ 1 \Temp\ 1 
USERDNSDOMAIN=mp.dpt.ustu.ru
USERDOMAIN=MP2000
USERNAME=main
USERPROFILE=C:\Documents and Settings\Администратор.ST2
windir=C:\WINNT

А это из command.com и ЛЮБОЙ 16-и битной программы
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
COMSPEC=C:\COMMAND.COM
ALLUSERSPROFILE=C:\DOCUME~ 1 \ALLUSE~ 1 
APPDATA=C:\Documents and Settings\Администратор.ST2\Application Data
CLIENTNAME=ARB3
COMMONPROGRAMFILES=C:\PROGRA~ 1 \COMMON~ 1 
COMPUTERNAME=ST2
HOMEDRIVE=C:
HOMEPATH=\Documents and Settings\Администратор.ST2
LOGONSERVER=\\ST2
NUMBER_OF_PROCESSORS= 1 
OS=Windows_NT
OS2LIBPATH=C:\WINNT\system32\os2\dll;
PATH=C:\WINNT;C:\WINNT\System32
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
PROCESSOR_ARCHITECTURE=x86
PROCESSOR_IDENTIFIER=x86 Family  6  Model  6  Stepping  5 , GenuineIntel
PROCESSOR_LEVEL= 6 
PROCESSOR_REVISION= 0605 
PROGRAMFILES=C:\PROGRA~ 1 
PROMPT=$P$G
SESSIONNAME=RDP-Tcp# 3 
SYSTEMDRIVE=C:
SYSTEMROOT=C:\WINNT
TEMP=C:\tmp
TMP=C:\tmp
USERDNSDOMAIN=mp.dpt.ustu.ru
USERDOMAIN=MP2000
USERNAME=main
USERPROFILE=C:\Documents and Settings\Администратор.ST2
BGI=c:\bp\bgi
BATDIR=C:\com

Но какая скотина меняет COMSPEC?
На беспроблемной машине этого не происходит.
...
Рейтинг: 0 / 0
18.01.2005, 08:17
    #32869097
trubb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как Windows 2000 ищет Command.com призапуске старых приложений?
нашел у себя единственную ссылку на command.com - noclose.pif
...
Рейтинг: 0 / 0
18.01.2005, 08:41
    #32869119
trubb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как Windows 2000 ищет Command.com призапуске старых приложений?
"При наличии конфликта между переменными среды, они устанавливаются следующим образом.

Сначала устанавливаются системные переменные среды.
Далее устанавливаются все переменные среды из файла Autoexec.bat (кроме переменных Path), и они переопределяют значения системных переменных.
Затем устанавливаются переменные среды пользователя, заданные в диалоговом окне Свойства системы, причем они переопределяют значения системных переменных и переменных из файла Autoexec.bat.
В последнюю очередь устанавливается значение переменной Path из файла Autoexec.bat." - winhelp

вывод какой-то config.nt - левый.....

SESSIONNAME=RDP-Tcp#3 - это не в терминале часом? - там могут срабатывать скрипты на вход со сменой переменных среды....
...
Рейтинг: 0 / 0
18.01.2005, 12:41
    #32869834
aleks2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как Windows 2000 ищет Command.com призапуске старых приложений?
Все оказалось гораздо хитрее.
Тщательный просмотр лога FileMon показал.
При запуске NTVDM:
1) считывает config.nt
2) записывает его содержимое во временный файл (используются короткие имена файла)
C:\DOCUME~1\Админи~1.ST2\LocalS~1\temp\bla-bla.tmp
3) Закрывает оба.
4) Пытается открыть
C:\DOCUME~1\Админи~1.ST2\LocalS~1\temp\bla-bla.tmp
НО под ошибочным именем, заменяя Админи~1 на нечто невразумительное
5) Обламывается (не находит) и ... все вышеописанное.
----------------
Специально попробовал на этой машине с латинским именем профиля - усе работает.

Попробовал на другой машине - там Админи~1 сразу, еще на этапе 2) почему-то выглядит иначе. NTVDM пользует вместо Админи~1 имя из чего-то шестнадцатиричного типа ABF18CD86 т.е. руских буковок нема совсем, хотя файл появляется в этой папке
C:\DOCUME~1\Админи~1.ST2\LocalS~1\temp\
И на этапе 4) успешно его открывает с тем же шестнадц. именем.

Можно сделать вывод:
либо NTVDM использует неправильную кодовую станицу;
либо система по-разному генерирует короткие имена для DOS.
Но где это регулируется?
---------------
Обе машины Windows 2000 Server (RU).
...
Рейтинг: 0 / 0
Форумы / Windows [игнор отключен] [закрыт для гостей] / Как Windows 2000 ищет Command.com призапуске старых приложений? / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]