基本上我的问题归结为此,我需要使用ServerManager模块在远程服务器上运行代码,但是将输出返回到本地shell。
以下是在WKS01上运行的代码:
Enter-PsSession SVR01
Import-Module ServerManager
$Roles = @(Get-WindowsFeature | Where {$_.installed -eq $true})
现在我需要使用WKS01上$ Roles中的数据。有没有办法做到这一点?我是不是错了?
答案 0 :(得分:3)
这就是-ArgumentList的用途。
您可以使用此参数将参数传递给远程会话。 这是一个例子:
$procName = "powershell"
Invoke-Command -ComputerName (get-content c:\scripts\servers.txt) `
-ScriptBlock {param ($Name) Get-Process -Name $Name} `
–ArgumentList $procName
答案 1 :(得分:2)
$rs = New-PSSession -ComputerName SVR01
$Roles = Invoke-Command -Session $rs -ScriptBlock {
Get-WindowsFeature | Where { $_.Installed }
}
Remove-PSSession $rs