如何将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
如果你想传递给命令的其它参数。或者,如果你愿意,你可以从单个输入中解析,但它更杂乱。
谢谢你的帮助。我还有一个查询。有没有办法使用PowerShell检查特定服务的服务参数? –
对不起,不是我知道的一种方式。它的个人服务。您可以将参数传递给二进制路径变量:'new-service -name TestService -binaryPathName“C:\ WINDOWS \ System32 \ svchost.exe -k netsvcs”....' – Olegp