Это утверждение не работает.
runas /noprofile /env /savecred /user:"Eve" setx path "%path%;D:\Program Files (x86)\metapad36" /M
Работает с notepad
, загружая notepad
в переменную и передавая эту переменную в runas
.
Но с setx
я не получаю сообщение об ошибке. В консоли отображается файл справки для runas
.
Цените любую помощь.
Спасибо!
Обновление:
Это работает:
>set myvar=notepad
>echo "%myvar%"
"notepad"
И тогда это работает:
runas /noprofile /env /savecred /user:Adam "%myvar%"
Кажется, это работает. Он расширяет значение "%path%", что нормально. В некоторых комментариях предполагается, что мне нужны исходные переменные % в команде, которую я передаю runas, но это нормально, если их расширить до их фактического значения:
>set myvar=setx path "%path%;D:\Program Files (x86)\metapad36" /M
>echo "%myvar%"
"setx path "C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\ProgramData\chocolatey\bin;D:\Program Files (x86)\Microsoft VS Code\bin;;D:\Program Files (x86)\metapad36" /M"
Но тогда это не удается:
>runas /noprofile /env /savecred /user:Adam "%myvar%"
Обновление 2:
Если я запущу это с несуществующим именем пользователя в параметре /user
, меня попросят ввести пароль. Но если я запускаю его с реальным именем пользователя администратора (в командной строке без прав администратора), у меня НЕ запрашивается пароль. Вместо этого неизвестное окно мигает и исчезает, а системный путь НЕ изменяется.
>runas /noprofile /env /savecred /user:"Eve" "setx path \"%path%;D:\Program Files (x86)\metapad36\" /M"
Attempting to start setx path "C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\ProgramData\chocolatey\bin;D:\Program Files (x86)\Microsoft VS Code\bin;;D:\Program Files (x86)\metapad36" /M as user "DESKTOP-AB0HSLD\Eve" ...
Enter the password for Eve:
>runas /noprofile /env /savecred /user:"Adam" "setx path \"%path%;D:\Program Files (x86)\metapad36\" /M"
Attempting to start setx path "C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\ProgramData\chocolatey\bin;D:\Program Files (x86)\Microsoft VS Code\bin;;D:\Program Files (x86)\metapad36" /M as user "DESKTOP-AB0HSLD\Adam" ...
я поместил этот код в пакетный файл и выполнил его. Все еще появляется мигающий экран и тот же «попытка» вывода, показанная выше.
еще совсем запутался...