这个说法失败了。
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" ...
我将此代码放在一个批处理文件中,然后执行它。仍然得到闪烁的屏幕和上面显示的相同的“尝试”输出。
还是很迷茫……