2016-12-16 41 views
0

如何启动,通过CMD使用PowerShell现在 :)推出的PowerShell命令与

powershell -command "& {get-service -computername server1,server2 -displayname 'instance *'|where {$_.status -eq 'Running'}|foreach-object {start-process -filepath 'C:\monitor.exe' -argumentlist "-adminhost $($_.machinename) -servername $($_.name)"} } " 

与'计划的车更换“”当我得到的文本表示该参数的程序变量

-argumentlist "-adminhost $($_.machinename) -servername $($_.name)" 

是否有可能编写这样的命令powershell启动进程的参数?

回答

2

你最好的办法是到PowerShell代码写入到文件并运行:

powershell.exe -File "C:\path\to\your.ps1" 

如果必须执行与您需要转义反斜杠嵌套双引号嵌套双引号的命令字符串:

powershell.exe -Command "&{Write-Output \"foo bar\"}" 

你的情况:

powershell.exe -Command "&{Get-Service -ComputerName server1,server2 -DisplayName 'instance *'|where {$_.Status -eq 'Running'}|ForEach-Object {Start-Process -FilePath 'C:\monitor.exe' -ArgumentList \"-adminhost $($_.MachineName) -servername $($_.Name)\"}}" 

或者,因为我个别参数似乎不包含空格,您可以将参数列表作为实际列表/数组传递:

powershell.exe -Command "&{Get-Service -ComputerName server1,server2 -DisplayName 'instance *'|where {$_.Status -eq 'Running'}|ForEach-Object {Start-Process -FilePath 'C:\monitor.exe' -ArgumentList '-adminhost', $_.MachineName, '-servername', $_.Name}}" 
+0

work perfect thank's –