【问题标题】:How to complete the RUNAS command in one line [closed]如何在一行中完成 RUNAS 命令 [关闭]
【发布时间】:2013-04-19 14:48:55
【问题描述】:

这个 Stack Overflow 问题提出了一个看起来应该可以工作的命令,但实际上并没有(不过现在该答案已被删除):

Single line command for Run as a different user on Window 7 that contains a password also

命令是:

echo PaSsWoRd | runas /user:Administrator cmd

但是它说:

未知的用户名或密码错误。

虽然细节绝对正确。例如,如果我要运行:

runas /user:Administrator

...在下一行,如果我输入PaSsWoRd,就没有问题了。

【问题讨论】:

  • runas /user:Administrator “cmd” < “C:\pass.txt”怎么样
  • 你可以使用runas /savecred ...,它会提示输入一次密码,然后记住它。 (见密码存储rundll32.exe keymgr.dll,KRShowKeyMgr
  • /savecred doesn't work/netonly。我尝试过的大多数解决方案都不起作用。我没有尝试 psexec,因为它对我来说是 rather heavyweight,但我 had success 使用 RunAs module for powershell 和内置 Windows "Credentials manager"

标签: cmd command-prompt runas


【解决方案1】:

runas command does not allow a password on its command line。这是设计使然(也是您无法通过管道将密码作为输入的原因)。 Raymond Chen 说得很好:

RunAs 程序要求您手动输入密码。为什么命令行不接受密码?

这是一个有意识的决定。如果可以在命令行上传递密码,人们就会开始将密码嵌入到批处理文件和登录脚本中,这是可笑的不安全。

换句话说,缺少该功能以消除不安全地使用该功能的诱惑。

【讨论】:

  • 这是完全失败的。试图比用户更聪明的软件设计者调用“安全”的想法真的很烦人。如果用户想要嵌入密码,那是他们的特权。相反,我们所有遇到此链接的人都会去寻找其他方法,通过其他令人讨厌的方式在 Windows 中使用 SUDO 等效项,从而破坏规则并浪费时间。我不会让一个批处理文件易受攻击,而是要发送降低机器上的整体安全性以使“sudo”工作。设计永远不应该比用户更聪明。你失败了!
  • 1) 我没有做出这个决定,所以对我咆哮是没有意义的。 2) 微软绝对做出了正确的决定。在脚本中嵌入密码是一个非常糟糕的主意,主要原因已经在答案中说明。
  • 你可以从 microsoft sysinternals 例如 psexec psexec -user MyUser -p MyPassword "cmd"
  • 如果有人好奇:@N.S 的“答案”(奇怪的是,这里作为一个单独的问题而不是另一个答案发布)建议使用WshShell COM 对象的SendKeys 方法模拟为runas 程序输入密码。这比runas 在其命令行上接受密码更不安全,因为它会将击键发送到具有当前焦点的任何窗口!我希望不用说这是一个非常非常糟糕的主意,我希望没有人真正这样做。
  • 我们中的一些人不得不生活在大公司的地狱里,在那里,可怕的黑客是把东西粘在一起的唯一方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多