如何存储来自每个并行Powershell的值



我是一个powershell初学者,我只是想知道将$allusers变量的所有值存储到一个对象中的最佳方法是什么?我在foreach并行中运行命令,我不能将所有数据存储到我的全局变量中。对于已经遇到这个问题的人,我提前感谢你。

Function Get-Members {
param ( 
[Parameter(Mandatory = $true)][String]$FileName,
[Parameter(Mandatory = $true)][String]$searchFileURL
)

$storageHolder = @()

$groupList = Get-Content $searchFileURL  #| ForEach-Object { $_ }
$groupList |  ForEach-Object -Parallel {


Import-Module -Name "C:UsersusernameDesktopGet-ADUserMembers.psm1" 
$allusers = Get-ADUserMembers -GroupName $_ | Select-Object ParentGroup, Name, EmployeeNumber, Enabled, LastLogonDate, PasswordLastSet


$storageHolder +=  $allusers <------------ This is not working even the $Using:storageHolder

} 


}

简单地输出来自ForEach-Object块的数据,并将其赋值给一个变量,该变量将收集所有输出,如示例12所示。

$storageHolder = $groupList | ForEach-Object -Parallel {     

Import-Module -Name "C:UsersusernameDesktopGet-ADUserMembers.psm1" 
Get-ADUserMembers -GroupName $_ | Select-Object ParentGroup, Name, EmployeeNumber, Enabled, LastLogonDate, PasswordLastSet       
}

如果ForEach-Object循环中有多个对象输出,PowerShell将自动创建和扩展数组。

最新更新