如果我在windows 10上的powershell 4中运行此命令:
powershell $ENV:ProgramFiles
我得到这个:
C:Program Files
这太棒了!
如果我在Windows Nano服务器上使用powershell 5做同样的事情,我会得到这样的结果:http://paste.openstack.org/show/479695/
"n******************** START Argument Information ********************rnArgs'
Count: 1rn #0: $ENV:ProgramFilesrn******************** END Argument I
nformation ********************nrnn.................... START Result Output
....................rnResults Count: 1rn #0: C:\Program Filesrn.....
............... END Result Output ....................nrnn...............
..... START Error Output ....................rnErrors Count: 0rn..........
.......... END Error Output ....................nrnn....................
START Warning Output ....................rnWarnings Count: 0rn.............
....... END Warning Output ....................nrnn.................... ST
ART Information Output ....................rnInformation Count: 0rn.........
........... END Information Output ....................nrnn...............
..... START Verbose Output ....................rnVerbose Count: 0rn.........
........... END Verbose Output ....................nrn"
我能做些什么来只获取命令的stdout?
是否需要运行新的PowerShell进程?如果你直接运行命令(在PSSession中),它会按预期工作(nan01是我的普通Nano服务器):
ps:> Enter-PSSession nan01 -Credential (Get-Credential)
[nan01]: PS C:UsersAdministratorDocuments> $env:ProgramFiles
C:Program Files
在根据您的示例创建新流程时,我会得到与您类似的长字符串输出。我的猜测是,它是派生的Powershell进程的状态表示,在它终止之前发出。
顺便说一句,这也是Windows 10上的PowerShell 5。