【问题标题】:executing cmd command in powershell在powershell中执行cmd命令
【发布时间】:2017-10-24 18:07:31
【问题描述】:

大家好,我有这个声明,我在 ps 中运行并且工作正常

sc.exe \\localhost config serviceName obj= lab\user password= password type= own

然而,当试图将它的一部分分配给一个变量时(见下文),它的 sc 命令没有被 cmd 识别

(不工作)

$user     = "lab\user"
$password = "password"


$sc = "\\localhost config serviceName obj= {0} password= {1} type= own" -f $user, $password


sc.exe $sc

一如既往地感谢您的帮助!

【问题讨论】:

  • 以与之前完全相同的方式键入命令,然后按Enter。为什么需要这个变量?
  • 我需要传递值而不是用户名和密码
  • 我添加了更多说明为什么我需要在那里使用变量

标签: powershell cmd


【解决方案1】:

请记住,PowerShell 是一个可以运行命令的 shell:您将命令放在行首,然后将参数放在后面。如果任何参数来自变量,只需将它们放在那里。这就是您需要做的所有事情:

$user     = "lab\user"
$password = "password"

sc.exe \\localhost config aie-agent-service obj= $user password= $password type= own

我希望不用说在任何类型的程序或脚本中嵌入密码都是一个坏主意。

【讨论】:

  • 谢谢比尔。是的,密码将通过安全字符串传递。我会听取您的建议并简化脚本
【解决方案2】:

您引用的 .exe 可能不在您的全局路径中,或者在您正在使用的目录中,因此不能仅通过拼写名称来调用。为了引用 .exe,您需要“点源”可执行文件,或者将文件添加到您的路径或将文件放入您的路径中已经存在的文件夹中。可以通过点击“我的电脑->属性->高级->环境变量->路径”修改路径,将路径添加到.exe中。

【讨论】:

  • 谢谢,但这不是我的观察结果。 sc.exe 命令抱怨语法问题....想知道是否存在转义问题
猜你喜欢
  • 1970-01-01
  • 2014-09-16
  • 1970-01-01
  • 1970-01-01
  • 2021-02-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-18
  • 2019-01-12
相关资源
最近更新 更多