powershell通过-outvariable +变量在函数中添加对象

时间:2014-07-27 02:49:43

标签: function powershell

我在导入的会话窗口中运行。不确定是否重要。

我正在尝试向函数中的数组添加一些变量值。

$Session = New-PsSession -ConfigurationName Microsoft.Exchange -ConnectionUri "http://emailserver/powershell/" -Authentication Kerberos
Import-PsSession $Session -allowclobber
Add-PsSnapin Microsoft.SharePoint.PowerShell

$group1 = "Accounting"
$group2 = "HR"

function AddUsersToGroups {
  Write-output $Group1 -outvariable +Adgroups
  Write-output $Group2 -outvariable +Adgroups
}

当我突出显示并运行Powershell ISE中的行时,它们可以正常工作并创建Variable $ AdGroups,并且组合数据就在那里。

但是当我运行该函数时,我看到的只是输出而没有创建变量。

PS C:\Windows\system32> AddUserToGroups
Group1
Group2

有点难过。我试图创建一个变量$AdGroups = @()作为第一行,但它也失败了。

1 个答案:

答案 0 :(得分:2)

不确定您要实现的目标,但AdGroups变量仅在AddUsersToGroups函数的范围内可用。

解决此问题的一种方法是添加script:范围,如下所示:

Function AddUsersToGroups{
  Write-output $Group1 -outvariable +script:Adgroups
  Write-output $Group2 -outvariable +script:Adgroups
}

现在,您应该能够在调用该函数后访问$Adgroups外部。