我在导入的会话窗口中运行。不确定是否重要。
我正在尝试向函数中的数组添加一些变量值。
$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 = @()
作为第一行,但它也失败了。
答案 0 :(得分:2)
不确定您要实现的目标,但AdGroups
变量仅在AddUsersToGroups
函数的范围内可用。
解决此问题的一种方法是添加script:
范围,如下所示:
Function AddUsersToGroups{
Write-output $Group1 -outvariable +script:Adgroups
Write-output $Group2 -outvariable +script:Adgroups
}
现在,您应该能够在调用该函数后访问$Adgroups
外部。