«Параметр неверен» при использовании 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, сообщающей, что параметр неверен (хотя это было не так).
Как ответил 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>"
Поскольку я пока не могу прокомментировать ответ, мне пришлось создать новый на тот случай, если у кого-то возникнет такая же проблема, как и у меня.