Windows 8.1 не может запустить Powershell из командлета cmd или командной строки powershell - " это приложение не может работать на вашем компьютере"
Powershell внезапно перестал открываться из командлетов cmd и powershell. Я не установил ничего нового Между тем, когда он работал и когда он перестал работать.
Когда я пытаюсь запустить powershell.exe из окна cmd (как повышенного, так и не повышенного) со следующей командой
C:Usersmyuser>powershell.exe
Я получаю всплывающее сообщение об ошибке от ОС, которое говорит:
This app can't run on your PC
Как только я закрываю это всплывающее окно, командная строка, из которой я сделал вызов, выводит:
Access is denied
К экрану (да, даже когда я делаю это в командной строке с повышенными правами)
Когда я пытаюсь сделать это в powershell с помощью следующей команды:
PS C:Usersmyuser> powershell.exe
Я получаю:
Program 'powershell.exe' failed to run: The specified executable is not a valid application for this OS platform.
At line:1 char:1
+ powershell.exe
+ ~~~~~~~~~~~~~~.
At line:1 char:1
+ powershell.exe
+ ~~~~~~~~~~~~~~.
+ CategoryInfo : ResourceUnavailable: (:) [], ApplicationFailedException
+ FullyQualifiedErrorID : NativeCommandFailed
Очевидно, даже powershell больше не любит powershell.
Я попытался перезагрузить компьютер, и это не помогло, но я совершенно не знаю, что делать дальше.
2 ответов:
@PetSerAl дал критический указатель в комментариях к этому вопросу.
Всплывающее сообщение об ошибке" это приложение не может работать на вашем компьютере " на Windows 8 или выше
указывает:
Поврежденный файл , например 0-байтовый файл
*.exe, esp. когда следует ошибка "Доступ запрещен" в консоли.Или, что все реже и реже, попытка запустить 64-разрядный исполняемый файл на 32-разрядной версии Окна.
Шаги по устранению неполадок:
Из командной строки (консоль
cmd.exe) выполните командуwhere.exe <executable-name>;
из PowerShell, выполнитьGet-Command -All <executable-name>, который показывает вам все исполняемые файлы с этим именем, присутствующие в каталогах, перечисленных в переменной окружения$env:PATHв этом порядке, по их полным путям.
Обратите внимание, чтоwhere.exe, в отличие отGet-Command, также смотрит в текущий каталог, и смотрит туда первый.
Таким образом, первый возвращаемый путь - это исполняемый файл, который фактически выполняется, когда указано только имя исполняемого файла .Обратите внимание, что совпадение в текущем каталоге , если оно найдено
where.exe, имеет значение только при вызове исполняемого файла изcmd.exe(из командной строки или пакетного файла), поскольку PowerShell по своей конструкции не позволяет вызывать исполняемые файлы из текущего каталога только по имени.- Если вы хотите запустить
where.exeиз PowerShell, расширение.exeявляется обязательным, поскольку имя командыwhereсамо по себе является встроенным псевдонимом для командлетаWhere-Object.В выводе из
where.exe/Get-Command, проверка:
- если исполняемый файл, который вы ожидаете, указан первым.
- если его размер ненулевой.
Удалите непредвиденные (нулевые байты) исполняемые файлы или, если вы ожидаете, что они будут там, переустановите их.
Пример:
Ищи всех всех исполняемые файлы с именем
Обратите внимание, что истинным домомpowershell.exeв текущем каталоге и в каталогах, перечисленных в$env:PATH.powershell.exeявляетсяC:\Windows\System32\WindowsPowerShell\v1.0, как это отражено в$PSHOME.Из
cmd.exe(обычная Командная строка):where powershell.exeПример вывода:
C:\Windows\System32\powershell.exe C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exeИз PowerShell:
Get-Command -All powershell.exeЕсли вы также хотите посмотреть в текущем каталоге , используйте
Get-Command -All .\powershell.exe, powershell.exeПример вывода:
CommandType Name Version Source ----------- ---- ------- ------ Application powershell.exe 0.0.0.0 C:\WINDOWS\system32\powershell.exe Application powershell.exe 10.0.14... C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exeЕсли вы хотите включить размер файла в выводе:
> where.exe powershell.exe | % { [system.io.fileinfo] $_ | select fullname, length, @{ n = 'Version'; e = { $_.versioninfo.FileversionRaw } } } FullName Length Version -------- ------ ------- C:\Windows\System32\powershell.exe 0 C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe 446976 10.0.14393.206
Удалите оболочку .exe (с 0KB) из location C:\Windows\System32 В моем случае Powershell работает нормально после удаления powershell.exe (с 0KB) из system 32

Comments