AD -OtherAttributes parameter - no pipeline?

by sponsen at 2013-04-03 06:47:54

I recently created a bunch of ADGroups using powershell, and came over what i think should be a fetaure - and was wondering if i had forgotten something, before I post this as a PowerShell feature suggestion :slight_smile:

So, lets say that yo have gotten a large CSV file that contains Name,SamAccountName,Mail
From this CSV, you shal make ADGroups. Allright, Name and SamAccountName is OK - they have parameters ByPropertyName, but the other attributes must be written via -OtherAttributes.

And here is the issue… -OtherAttributes dont allow pipeline input… Since this is such a wide-covering parameter, i find it strange that the AD team have not implemented pipelining here… Or am I missing anything here?

What would you do to the following one-liner to input the mail values to each ADGroup?

Import-Csv C:\MassiveGroupDB.csv | New-ADGroup -OtherAttributes ??? -GroupCategory Distribution -GroupScope Universal -Path "OU=Distribution Groups,DC=domain,DC=com"
by ArtB0514 at 2013-04-03 07:17:29
One liners are severely overrated. The only way you can achieve what you want to do is with a foreach clause. The easiest way to create an OtherAttributes collection is by way of a hash table (also lookup splatting).

Note that this is just an example; it is not necessarily complete, and has definitely not been tested to verify that it works.
foreach ($Group in (Import-Csv C:\MassiveGroupDB.csv)) {
$Props = $Group | Get-Member -MemberType *Property | Select -ExpandProperty Name
$Props = $Props | Where {$.Name -notmatch "^Name$|^SamAccountName$|^OtherAttributeToIgnore$"}
$Properties = @{}
$Props | Foreach {$Properties.Add($
New-ADGroup -OtherAttributes $Properties -GroupCategory Distribution -GroupScope Universal -Path "OU=Distribution Groups,DC=domain,DC=com"