我是一个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将自动创建和扩展数组。