«Параметр неверен» при использовании runas с уровнем доверия после обновления Windows 11 22H2

У меня был сценарий, который нужно было запустить от имени администратора, но затем запустить одну команду в контексте без повышенных прав. Раньше я делал это сrunas /trustlevel:0x20000 program.exe, но после обновления Windows 11 до 22H2 команда теперь выдает следующий результат (в качестве примера запускается Блокнот):

      PS > runas /trustlevel:0x20000 notepad
RUNAS ERROR: Unable to run - notepad
87: The parameter is incorrect.

Я дважды проверил значение аргумента уровня доверия, и оно кажется правильным:

      PS > runas /showtrustlevels
The following trust levels are available on your system:
0x20000 (Basic User)

Это происходит с любым приложением, которое я пробую, а не только с Блокнотом или приложением в моем скрипте. Я также пробовал это в Powershell 7, Windows Powershell (5) и из командной строки, но никакой разницы. Сам Рунас не полностью сломан, насколько я могуrunas /profile /env /user:<username> notepadи он запустится (после ввода моего пароля). Я также сделалsfc /scannowна всякий случай, но это не имеет значения.

В настоящее время я пытаюсь выяснить, могу ли я здесь что-нибудь сделать, или эта функция только что устарела в 22H2.

3 ответа

Обходной путь — включить ключ /machine в командную строку runas.

Это известная проблема последнего обновления Windows 11. Эта проблема была решена в предварительной сборке 25247:

Исправлена ​​проблема, приводившая в некоторых случаях к неожиданному сбою команды runas с ошибкой 87, сообщающей, что параметр неверен (хотя это было не так).

https://blogs.windows.com/windows-insider/2022/11/18/announcing-windows-11-insider-preview-build-25247/

Как ответил BlueMonkMN, обходной путь с помощью /machine:x86|amd64|arm|arm64 работает. Если вы используете 64-битный компьютер Intel и хотите выполнить пакетный файл, то вариант машины не подойдет, поскольку cmd.exe — 64-битное приложение. Существует 32-битная версия cmd.exe в C:\Windows\sysWOW64\cmd.exe, поэтому команда может быть следующей:

      runas /machine:x86 /trustlevel:0x20000 "C:\Windows\sysWOW64\cmd.exe <yourBatchfileHere>"

Поскольку я пока не могу прокомментировать ответ, мне пришлось создать новый на тот случай, если у кого-то возникнет такая же проблема, как и у меня.

Другие вопросы по тегам