Active Directory 사용자가 가진 모든 가능한 전자 메일 주소가 포함 된 CSV를 만들어야합니다.Powershell - 알 수없는 열 수를 가진 사용자 지정 개체 만들기
이Username | EmailAddress1 | EmailAddress2 | EmailAddressN
내 스크립트가 지금까지 다음과 같습니다 : 이제 기존 개체 뱉어
$Group = "GroupNAme
$usersObj = @()
$countMax = 0
$GetAdGroup = Get-AdGroup -Identity $Group -Properties *
[array]$members = $GetAdGroup.Members
ForEach ($member in $members) {
$currentUser = get-aduser -Identity $member `
-Properties EmailAddress, ProxyAddresses |
Where {$_.Enabled -eq "True"}
$countTemp = ($currentUser.ProxyAddresses).count
if ($countTemp -gt $countMax){ $countMax = $countTemp}
foreach ($mailAdd in $currentUser.ProxyAddresses) {
$usersOBJ += [pscustomobject]@{
'Username' = $currentUser.SamAccountName;`
'ProxyAddresses' = $mailAdd.SubString(5)
}
}
$usersOBJ | Export-CSV -NoTypeInformation C:\Export.csv
을 CSV 형식은 다음 (자신의가 가져가는 경우에 매우 엄격한 API)에 있어야합니다 사용자는 다음과 같습니다 :
UserName | Emailaddress1
Username | Emailaddress2
Username | EmailsaddressN
나는 더 나은 객체를 만드는 방법을 배우는 것으로 도약 할 수 없습니다. 발생하는 ProxyAddresses의 최대 수를 얻을 수는 있지만 내 개체를 만들고 그 열에 $ currentUser.ProxyAddresses의 값을 채우는 방법을 모르겠습니다.
나는 해시 테이블에 대해 읽은하지만 그들은 일반적으로 양식을 가지고, 내 요구 사항에 적합하지 않는 것 :
Username1 | Username2
Emailaddress1 | Emailaddress1
Emailaddress2 | Emailaddress2
는 사람이 올바른 방향으로 날 가리시겠습니까?
건배!