【问题标题】:Get output of the command line opened by runas command获取 runas 命令打开的命令行的输出
【发布时间】:2016-01-05 19:52:11
【问题描述】:

我一直在尝试获取 RUNAS 命令的输出,但到目前为止没有成功。

我需要获取另一个用户的时间,并将其保存到一个文件中,以便另一个进程稍后可以读取它。

我尝试了很多东西,但这里有一个例子: runas /noprofile /savecred /user:username "cmd /c time > output.txt"

这不会将命令行输出保存到文件中。我想知道是否有人可以帮我弄清楚我做错了什么!

我也尝试过编写一个 VBScript 来做我需要的事情,但到目前为止我没有运气

【问题讨论】:

  • /c 替换为/k。新窗口说什么?
  • @Stephan 它说“访问被拒绝”!所以这意味着我的问题是它无法将 output.txt 保存到我想要的位置?你知道解决这个问题的方法吗?
  • TIME 命令提示输入。使用TIME /TECHO %TIME%

标签: windows batch-file cmd runas


【解决方案1】:

两个问题:time 命令需要用户输入,并且新的 cmd 实例以c:\Windows\system32 的工作目录打开,其中username 可能没有写入权限。

使用另一个命令获取时间并提供具有写入权限的文件夹的完整路径:

runas /noprofile /savecred /user:username "cmd /V:on /C echo !time!>c:\temp\output.txt"

【讨论】:

  • 我写到“用户名”有写权限的地方,但它仍然给我“拒绝访问”。示例:runas /noprofile /saved /user:psadmin "cmd /k echo %time% > C:\Users\username\Desktop\output.txt",你知道为什么会这样吗?再次感谢您的所有帮助!
  • 这是我的问题,感谢您抽出时间@Stephan!
  • 我想知道您是否应该改用:cmd /V:on /C echo !time!。否则,%time% 变量会在它以 runas 用户身份执行命令之前立即展开。
  • @Squashman 完全正确;如果您在命令提示符下使用%TIME% 运行runas 命令行,您会看到%TIME% 已在该命令提示符中展开,而不是在username 上下文中打开的新提示符中展开;所以你肯定需要延迟扩展!TIME! 才能得到想要的结果......
  • @Squashman,Aschipfl:没错。编辑了我的答案。 time /t 也应该可以工作。
猜你喜欢
  • 1970-01-01
  • 2014-12-01
  • 2021-11-07
  • 2011-05-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多