Как 32-разрядный cmd.exe может запустить 64-разрядный cmd.exe на Windows Server 2003 x64? - PullRequest
7 голосов
/ 10 декабря 2011

Это продолжение до 7-Zip разрешений на выполнение в Windows Server 2008 64-битный .

Я пытаюсь избежать чрезмерно сложныхПроцесс сборки, чтобы сделать несколько 7-Zip EXE-файлов.Мне просто нужен .cmd, чтобы запустить мой Java-процесс после прочтения некоторых 64-битных записей реестра.Тем не менее, чтобы добиться успеха с одним файлом EXE, он должен быть 32-разрядным.

Приведенный выше вопрос нашел способ заставить Windows Server 2008 обнаруживать 32-разрядный cmd.exe и заменять его на 64-разрядный.Есть ли способ сделать это на Windows Server 2003?Есть исправление для Windows, которое позволяет reg.exe получать доступ к 64-битным записям в 32-битном режиме, но я не могу быть уверен, что это на сервере клиента, так что обходной путь не идет.

1 Ответ

14 голосов
/ 10 января 2012

Чтобы запустить 64-битный cmd.exe из 32-битного cmd.exe, вы должны иметь доступ к папке c:\Windows\System32 без перенаправления в папку c:\Windows\SysWow64. В Win2008 вы можете добиться этого, открыв путь c:\Windows\Sysnative. К сожалению, на Win2003 требуется исправление (см. http://support.microsoft.com/kb/942589).

Существует обходной путь - вы можете создать точку соединения NTFS, которая указывает на папку c:\Windows\System32, и использовать путь к этой точке соединения вместо c:\Windows\System32. Используя системные атрибуты junction.exe Мне удалось создать такую ​​точку соединения из 32-битного cmd.exe и запустить 64-битный cmd.exe.

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