将invoke命令的输出封装在变量中 - PowerShell

时间:2017-03-03 13:22:12

标签: powershell variables scripting invoke-command storing-data

我有一个脚本可以在远程计算机上安装远程桌面服务(来自DC)。

我现在处于检查连接代理(服务器)和连接主机(服务器)上是否安装了RDS的阶段。

我想使用invoke-command,因为远程PowerShell会话看起来太复杂了。

这是我的代码:

$res = Invoke-Command -ComputerName "testpc.eil.local" -ScriptBlock {
if((Get-WindowsFeature -Name "Remote-Desktop-Services").Installed -eq 1)
{
   #i need this output (true or false or a string)
}
else
{
     #i need this output (true or false or a string)
}
}


Write-Host $res

但我的问题是,我如何在一个DC可以访问的变量中将scriptblock的输出封装在invoke-command中?如果RDS成功安装或未能通过日志文件

,我试图写出来

我们如何封装函数的输出并将其传递给运行它的机器?

由于

1 个答案:

答案 0 :(得分:4)

通常,对于powershell从命令\函数返回某些内容,您希望生成任何类型的输出。所以只是" bla-bla"在你的代码中将返回" bla-bla"给来电者。通过简化您的案例:

$res = Invoke-Command -ComputerName "testpc.eil.local" -ScriptBlock {
    (Get-WindowsFeature -Name "Remote-Desktop-Services").Installed
}

do something with $res here