В вашем скрипте больше проблем. Сейчас я расскажу о части Set-ProcessMitigation
.
По какой-то причине командлет Set-ProcessMitigation
представляется доступным только в 64-разрядной оболочке PowerShell. Поскольку Inno Setup является 32-разрядным приложением, оно по умолчанию будет запускать 32-разрядную оболочку PowerShell. Таким образом, командлет не найден.
Чтобы программа Inno Setup запустила 64-разрядную версию PowerShell, добавьте 64bit
flag к записи раздела [Run]
. Также флаг 64bit
нельзя комбинировать с флагом shellexec
. Но я не думаю, что вам это действительно нужно, поэтому снимите флаг shellexec
.
[Run]
Filename: "powershell.exe"; \
Parameters: "-NoProfile -NoExit -Command ""Set-ProcessMitigation ..."""; Flags: 64bit