Это утверждение не выполняется.Все еще не разрешено: SETX с RUNAS в Windows 10 Fails
runas /noprofile /env /savecred /user:"Eve" setx path "%path%;D:\Program Files (x86)\metapad36" /M
Работает с notepad
, загрузив notepad
в переменную, и передавая эту переменную в runas
.
Но с setx
, я не получаю сообщение об ошибке. На консоли отображается справочный файл для runas
.
Цените любую помощь.
thx!
Update:
Это работает:
>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%"
Update2 :
Если я запустил это с несуществующим именем пользователя в параметре /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" ...
Я разместил этот код в пакетном файле и выполнил его. По-прежнему появляется мигающий экран и тот же самый «попытка», показанный выше.
еще совсем запутался ...
1) Если возможно, всегда используйте командные файлы, это спасет вас от ускользающего ада.2) что касается «неизвестных оконных вспышек» - когда у вас есть этот командный файл с 1), вы можете запустить команду «cmd.exe/k mybatchfile.cmd» в качестве команды. Переключатель/k заставит новое окно оболочки оставаться там после завершения командного файла, поэтому вы действительно увидите, что там происходит, и сможете узнать, что было не так. – Wapac
THX за предложение! но я не боюсь сбежать от ада, просто хочу решить его, надеюсь, с помощью ppl, которые понимают лучше меня. Повторите пакетный файл, если никто здесь не знает решения моей проблемы, тогда я попробую пакетный файл для устранения неполадок. Но, надеюсь, кто-то здесь это получает. –
@Wapac, я разместил этот код в пакетном файле и выполнил его. По-прежнему появляется мигающий экран и тот же самый «попытка», показанный выше. –