Windows 10 上带有 RUNAS 的 SETX 失败



此语句失败。

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:Windowssystem32;C:Windows;C:WindowsSystem32Wbem;C:WindowsSystem32WindowsPowerShellv1.0;C:ProgramDatachocolateybin;D:Program Files (x86)Microsoft VS Codebin;;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:Windowssystem32;C:Windows;C:WindowsSystem32Wbem;C:WindowsSystem32WindowsPowerShellv1.0;C:ProgramDatachocolateybin;D:Program Files (x86)Microsoft VS Codebin;;D:Program Files (x86)metapad36" /M as user "DESKTOP-AB0HSLDEve" ...
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:Windowssystem32;C:Windows;C:WindowsSystem32Wbem;C:WindowsSystem32WindowsPowerShellv1.0;C:ProgramDatachocolateybin;D:Program Files (x86)Microsoft VS Codebin;;D:Program Files (x86)metapad36" /M as user "DESKTOP-AB0HSLDAdam" ...

我把这段代码放在一个批处理文件中,然后执行了它。仍然闪烁屏幕和上面显示的相同"尝试"输出。

还是挺糊涂的...

  1. 该命令需要是一个参数 - 可能用引号括起来。需要将用于包围路径参数的附加引号括起来。将此命令保存在.cmd批处理文件中,或使用反斜杠对引号进行转义。

    正如 Wapac 在评论中提到的,runas /?帮助文本特别推荐反斜杠转义。 但是使用批处理文件可能更可取,因为它似乎无法转义百分号。

  2. 如果你runas /noprofile,你怎么能指望setx完成任何事情?

相关内容

  • 没有找到相关文章

最新更新