Обсуждение завершено System32\Powershell.exe - неподдерживаемое 16-разрядное приложение

alex-s

Новый пользователь
Сообщения
21
Реакции
1
// Часть сообщений перенесена из темы: https://safezone.cc/threads/zapustit-skript-powershell-iz-cmd.24325/

А как на 64-разрядных исправить вот это ???
Подскажите пожайлуста.....
Я изменил путь

PowerShell:
@echo off
SetLocal EnableExtensions

set "ps=" & for %%X in (powerShell.exe) do set "ps=%%~$PATH:X"
if not defined ps set "ps=%systemRoot%\syswow64\windowsPowerShell\v1.0\powerShell.exe"

For /F "UseBackQ delims=" %%a in (`"cmd /c "
  "%ps%" -ExecutionPolicy ByPass -NoProfile -command "echo 123"
""`) do (
  echo %%a
)
pause

Все равно ошибка.

И можете дописать проверку на разрядность, чтобы данный скрипт мог запускаться на любой версии Windows 32 или 64 разряда ?
То есть при запуске что бы проверялась разрядность, соответственно в зависимости от результата проверки запускалась нужная версия Power shell и запускалась не команда а уже готовый скрипт Powershell ?
Я как понимаю в 64 разрядной системе запускается cmd 32 разрядное и оно не может правильно интерпретировать переданные ему команды на запуск powershell 64 разряда ?
Почему ?
И в то же время если я запускаю cmd вручную и ввожу

CMD/BATCH:
%systemRoot%\syswow64\windowsPowerShell\v1.0\powerShell.exe

тогда появляется консоль powershell
???
 

Вложения

  • Screenshot_1207.png
    Screenshot_1207.png
    11 KB · Просмотры: 116
  • Screenshot_1208.png
    Screenshot_1208.png
    48.6 KB · Просмотры: 92
Последнее редактирование модератором:
Я как понимаю в 64 разрядной системе запускается cmd 32 разрядное
Нет.
Если только вы не запускаете консоль из-под 32-разрядного процесса.

оно не может правильно интерпретировать переданные ему команды на запуск powershell 64 разряда ?
Смотря что за команды.

И можете дописать проверку на разрядность, чтобы данный скрипт мог запускаться на любой версии Windows 32 или 64 разряда ?
Могу, но не буду, потому что это не нужно. Он и так запускается на системах с любой из разрядностей (x32 / x64).

запускалась не команда а уже готовый скрипт Powershell ?
замените в скрипте строчку на такую:
CMD/BATCH:
"%ps%" -ExecutionPolicy ByPass -NoProfile -file "путь к скрипту.ps1"

По поводу скрина - это какие-то проблемы в вашей системе.
На обычной системе нет файла PowerShell.exe в папке \Windows\System32
Упакуйте этот файл в архив с паролем virus и пришлите на адрес quarantine<at>safezone.cc (замените <at> на @) с указанием вашего никнейма в заголовке письма и ссылки на эту тему.

Напишите также, чему = переменная PATH. (в CMD ввести слово PATH).
 

Вложения

  • path.txt
    1.2 KB · Просмотры: 5
Последнее редактирование модератором:
alex-s, пожалуйста, больше никогда не прикрепляйте потенциально опасные вложения на форум, даже с паролем. Удалил. Архив распаковать не смог. Там стоял неизвестный пароль, не virus

По поводу почты, пожалуйста, попробуйте отправить ещё раз, удалив у файла powerShell.exe расширение .exe, перед его упаковкой в архив.

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

А пока в целях диагностики, сделайте ещё такой отчёт: https://safezone.cc/threads/kak-sdelat-issledovanie-utilitoj-getsysteminfo.16791/
 
Alien, поддержка эмуляции прекращена, начиная с Vista. Но это не имеет отношения к теме.
 
Alien, я ошибся. Из Vista вырезан 16-битный интерпретатор command.com, но 16-разрядные программы всё ещё могут быть запущены через cmd.exe,
однако поддержка есть только в x32-разрядных версиях Windows. Кроме того, начиная с Windows 8, как вы правильно отметили, необходимо ещё и включить компонент NTVDM.
 
Назад
Сверху Снизу