如何将powershell变量值传递给cmd.exe?

问题描述:

我正尝试从命令提示符下安装一个服务'ServiceName',其中的参数值是通过PowerShell用作用户输入表单的。如何将powershell变量值传递给cmd.exe?

$server = $return[0] 

Invoke-Expression -Command "cmd.exe /c ServiceName --install --server=$server" 

基本上,ServiceName服务在安装时从服务器变量中获取参数值。我不确定这是否是在cmd.exe中使用powershell变量值的正确方法。 cmd.exe能否以上面显示的方式获取服务器变量值?

您可以在PowerShell中添加新的服务,并且你没有使用CMD为:

$serviceName= Read-Host("Enter service name") 
$mycreds = Get-Credential 
$binaryPath = Read-Host("Enter service executable path") 
New-Service -name $serviceName -binaryPathName $binaryPath -displayName $serviceName -startupType Automatic -credential $mycreds 

您也可以使用

Get-Help New-Service 

如果你想传递给命令的其它参数。或者,如果你愿意,你可以从单个输入中解析,但它更杂乱。

+0

谢谢你的帮助。我还有一个查询。有没有办法使用PowerShell检查特定服务的服务参数? –

+0

对不起,不是我知道的一种方式。它的个人服务。您可以将参数传递给二进制路径变量:'new-service -name TestService -binaryPathName“C:\ WINDOWS \ System32 \ svchost.exe -k netsvcs”....' – Olegp