Solved

Powershell to update Office365 user attributes

Posted on 2015-02-19
15
286 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
Best Practices: Disaster Recovery Testing

Besides backup, any IT division should have a disaster recovery plan. You will find a few tips below relating to the development of such a plan and to what issues one should pay special attention in the course of backup planning.

 
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 40

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 40

Expert Comment

by:Vasil Michev (MVP)
ID: 40619787
Get-Mailbox, Get-Recipient, Get-User, Get-MsolUser, all of them :)
0
 
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

Netscaler Common Configuration How To guides

If you use NetScaler you will want to see these guides. The NetScaler How To Guides show administrators how to get NetScaler up and configured by providing instructions for common scenarios and some not so common ones.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This is my first article on Expert Exchange on the Manual Method of Exporting Office 365 Mailboxes to PST format by using the eDiscovery mechanism of Office. Hope you will enjoy the article.
This article explains how to install and use the NTBackup utility that comes with Windows Server.
In this video I am going to show you how to back up and restore Office 365 mailboxes using CodeTwo Backup for Office 365. Learn more about the tool used in this video here: http://www.codetwo.com/backup-for-office-365/ (http://www.codetwo.com/ba…
Access reports are powerful and flexible. Learn how to create a query and then a grouped report using the wizard. Modify the report design after the wizard is done to make it look better. There will be another video to explain how to put the final p…

809 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