• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 773
  • Last Modified:

Powershell to update Office365 user attributes

Hi,

I am looking for a way to use powershell to insert a value into "custom attribute 1" for all users using a value found in the "Office" attribute.  

Can this be done with 1 ForEach script somehow?  

Please see attached screen shots that detail exactly which fields I am referring to.   The attachment is in the comment below.

Thanks
0
AD1080
Asked:
AD1080
  • 7
  • 6
  • 2
1 Solution
 
AD1080Author Commented:
0
 
Will SzymkowskiSenior Solution ArchitectCommented:
You can do this via powershell. Use the below command...
This will add the value of 40 to the CustomAttribute1 for all mailboxes.
$Mailboxes = get-mailbox -resultsize "unlimited"
foreach ($Mailbox in $Mailboxes) {
Set-Mailbox -Identity $Mailbox -CustomAttribute1 40
}

Open in new window


Will.
0
 
AD1080Author Commented:
Hi Will,

Thanks very much.  Can you take this a step further, and make the value for "CustomAttribute1" whatever each user has for in the field "Office".

i.e. can we load whatever they have for "Office" into a variable, and use that in place of the hardcoded "40".

Sorry, I'm very new to powershell.  I dont have a handle on it yet.
0
Simplify Active Directory Administration

Administration of Active Directory does not have to be hard.  Too often what should be a simple task is made more difficult than it needs to be.The solution?  Hyena from SystemTools Software.  With ease-of-use as well as powerful importing and bulk updating capabilities.

 
Will SzymkowskiSenior Solution ArchitectCommented:
You can do this, however i do not have o365 setup. What is the cmdlet to get this Office attribute using powershell. If you can provide that for me i can add it to the above.

Will.
0
 
Vasil Michev (MVP)Commented:
It's again "Office", if it's populated that is.
0
 
Will SzymkowskiSenior Solution ArchitectCommented:
@Vasil - Right but what cmdlet would populate this attribute? Does Get-Mailbox populate this info? Or is it another cmdlet?

Will.
0
 
Vasil Michev (MVP)Commented:
Get-Mailbox, Get-Recipient, Get-User, Get-MsolUser, all of them :)
0
 
Will SzymkowskiSenior Solution ArchitectCommented:
Sorry for the delay...

If that is all that is needed all you need is the following changed see below...
$Mailboxes = get-mailbox -resultsize "unlimited"
foreach ($Mailbox in $Mailboxes) {
Set-Mailbox -Identity $Mailbox -CustomAttribute1 $Mailbox.Office
}

Open in new window


Make sure you test this with a couple users first as i have not tested this part but i am sure it will work.

Will.
0
 
AD1080Author Commented:
Hi, Thanks a lot.  Sorry for the delay on my part  as well.   We'll test this out.  

Actually just came up with the following a moment ago after spending a few hours getting  more familiar with Powershell.  Does this look to achieve the same result.  Granted your solution is cleaner.

$Mailboxes = get-mailbox -resultsize "unlimited"
foreach ($Mailbox in $Mailboxes)

{
$Office = (Get-User $MailBox.name).office
}
{
Set-Mailbox -Identity $Mailbox -CustomAttribute1 $Office
}
0
 
Will SzymkowskiSenior Solution ArchitectCommented:
You should not have to add the $Office var because it is already part of the $Mailboxes var because Office is an attribute of Get-Mailbox cmdlet. So all you need to do is just (.) dot source the var using the office attribute $Mailbox.Office which is what i did in the most recent script I posted.

I guess yours could work to but it is just redundant.

Will.
0
 
AD1080Author Commented:
Thanks again, I'll try yours.
0
 
Will SzymkowskiSenior Solution ArchitectCommented:
Excellent!

Will.
0
 
AD1080Author Commented:
Actually would you mind showing us how to add the filter too?
0
 
Will SzymkowskiSenior Solution ArchitectCommented:
Just open a new question and let me know what the link is. I will provide the solution.

Will.
0
 
AD1080Author Commented:
0

Featured Post

Problems using Powershell and Active Directory?

Managing Active Directory does not always have to be complicated.  If you are spending more time trying instead of doing, then it's time to look at something else. For nearly 20 years, AD admins around the world have used one tool for day-to-day AD management: Hyena. Discover why

  • 7
  • 6
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now