Unable to update custom attribute in AD with powershell

MilesLogan
MilesLogan used Ask the Experts™
on
Hi EE

The script below works but when I replace StreetAddress with " custom-attribute1" and update the CSV file with custom-attribute1 as the header ..it does not update it ..  I receive the error below .

Import-module ActiveDirectory
Import-CSV "C:\PS\UpdateField.csv" | % {
$User = $_.UserName
$ID = $_.StreetAddress
Set-ADUser $User -StreetAddress $ID
}



Error:

At C:\PS\UpdateFieldTest.ps1:4 char:15
+ $ID = $_.custom-attribute1
+               ~~~~~~~~~~~~~
Unexpected token '-attribute1' in expression or statement.
    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : UnexpectedToken
Comment
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
Qlemo"Batchelor", Developer and EE Topic Advisor
Top Expert 2015

Commented:
That is because of the dash, which is not allowed as part of names by default. Such a names can brew enclosed in single or double quotes or curly braces.
But that is only half the rent. You need to use a different syntax to set that attribute.
Import-module ActiveDirectory
Import-CSV "C:\PS\UpdateField.csv" | % {
  Set-ADUser $_.UserName -Add @{'custom-attribute1' = $.'custom-attribute1'
} 

Open in new window

Author

Commented:
Hi Qlemo

thank you ! but I am getting a CurlyBrace

+                                                     ~
Missing closing '}' in statement block.
    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : MissingEndCurlyBrace
"Batchelor", Developer and EE Topic Advisor
Top Expert 2015
Commented:
#@~!!!
Import-module ActiveDirectory
Import-CSV "C:\PS\UpdateField.csv" | % {
  Set-ADUser $_.UserName -Add @{'custom-attribute1' = $.'custom-attribute1'}
} 

Open in new window

Author

Commented:
Thank you Qlemo ..

I still had an issue with my csv with the dash in the attribute name , so I just modified the header on the sheet and the script to not have a dash and it worked .. thank you much .

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial