Solved

Powershell to update Office365 user attributes

Posted on 2015-02-19
15
246 Views
Last Modified: 2015-02-21
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
Comment
Question by:AD1080
  • 7
  • 6
  • 2
15 Comments
 

Author Comment

by:AD1080
ID: 40619219
0
 
LVL 53

Expert Comment

by:Will Szymkowski
ID: 40619261
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
 

Author Comment

by:AD1080
ID: 40619268
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
 
LVL 53

Expert Comment

by:Will Szymkowski
ID: 40619331
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
 
LVL 38

Expert Comment

by:Vasil Michev (MVP)
ID: 40619662
It's again "Office", if it's populated that is.
0
 
LVL 53

Expert Comment

by:Will Szymkowski
ID: 40619722
@Vasil - Right but what cmdlet would populate this attribute? Does Get-Mailbox populate this info? Or is it another cmdlet?

Will.
0
 
LVL 38

Expert Comment

by:Vasil Michev (MVP)
ID: 40619787
Get-Mailbox, Get-Recipient, Get-User, Get-MsolUser, all of them :)
0
How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

 
LVL 53

Accepted Solution

by:
Will Szymkowski earned 500 total points
ID: 40623368
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
 

Author Comment

by:AD1080
ID: 40623410
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
 
LVL 53

Expert Comment

by:Will Szymkowski
ID: 40623416
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
 

Author Comment

by:AD1080
ID: 40623417
Thanks again, I'll try yours.
0
 
LVL 53

Expert Comment

by:Will Szymkowski
ID: 40623420
Excellent!

Will.
0
 

Author Comment

by:AD1080
ID: 40623425
Actually would you mind showing us how to add the filter too?
0
 
LVL 53

Expert Comment

by:Will Szymkowski
ID: 40623429
Just open a new question and let me know what the link is. I will provide the solution.

Will.
0
 

Author Comment

by:AD1080
ID: 40623445
0

Featured Post

Do You Know the 4 Main Threat Actor Types?

Do you know the main threat actor types? Most attackers fall into one of four categories, each with their own favored tactics, techniques, and procedures.

Join & Write a Comment

This process describes the steps required to Import and Export data from and to .pst files using Exchange 2010. We can use these steps to export data from a user to a .pst file, import data back to the same or a different user, or even import data t…
A procedure for exporting installed hotfix details of remote computers using powershell
This is Part 3 in a 3-part series on Experts Exchange to discuss error handling in VBA code written for Excel. Part 1 of this series discussed basic error handling code using VBA. http://www.experts-exchange.com/videos/1478/Excel-Error-Handlin…
how to add IIS SMTP to handle application/Scanner relays into office 365.

746 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

9 Experts available now in Live!

Get 1:1 Help Now