У меня проблема с удалением дубликатов из моего массива.Удалить дубликаты из лицензионного массива
$DataSheet = Import-Csv C:\Temp\Groups.CSV
$LicenseData = @()
foreach ($Group in $DataSheet) {
$GroupMembership = Get-ADGroupMember $Group.Name | Select SamAccountName
foreach ($Member in $GroupMembership) {
$LicenseInfo = "" | Select "ID","GroupName","EngineLicense","UserLicense"
$LicenseInfo.ID = $Member.SamAccountName
$LicenseInfo.GroupName = $Group.Name
$LicenseInfo.EngineLicense = $Group.EngineLicense
$LicenseInfo.UserLicense = $Group.UserLicense
$LicenseData += $LicenseInfo
}
}
$LicenseData | Sort-Object ID |
Export-Csv C:\Temp\LicenseData.CSV -NoTypeInformation -Force
$EngineLicense = $LicenseData | Group -Property $EngineLicense |
ForEach {$_.Group | Sort-Object EngineLicense -Unique} |
Select EngineLicense, ID |
Sort-Object EngineLicense
$UserLicense = $LicenseData | Group -Property $UserLicense |
ForEach {$_.Group | Sort-Object UserLicense -Unique} |
Select UserLicense, ID |
Sort-Object UserLicense
Это пример того, что $LicenseData
выглядит
ID GroupName EngineLicense UserLicense -- --------- ------------- ----------- TestUser1 Group A Mobile Professional TestUser1 Group B ERQA ERQA TestUser1 Group B ERQA ERQA TestUser2 Group A Mobile Professional TestUser2 Group B ERQA ERQA
$EngineLicense
выглядит
EngineLicense ID ------------- -- ERQA TestUser1 Mobile TestUser1
То, что я пытаюсь сделать, это показать, потребляемые лицензии для каждого пользователя, но удаление дубликатов лицензии для пользователя. В настоящее время -Unique
удаляет дубликаты лицензий на двигатель.
В идеале это то, что я представляю себе на вид. Обратите внимание, что показаны лицензии, потребляемые для обоих пользователей, и удаленная дублируемая запись ERQA для TestUser1.
EngineLicense ID ------------- -- ERQA TestUser1 Mobile TestUser1 ERQA TestUser2 Mobile TestUser2
Это работало. Большое спасибо! – user3007002