Solved

Powershell to update Office365 user attributes

Posted on 2015-02-19
15
312 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
Optimizing Cloud Backup for Low Bandwidth

With cloud storage prices going down a growing number of SMBs start to use it for backup storage. Unfortunately, business data volume rarely fits the average Internet speed. This article provides an overview of main Internet speed challenges and reveals backup best practices.

 
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

Are your AD admin tools letting you down?

Managing Active Directory can get complicated.  Often, the native tools for managing AD are just not up to the task.  The largest Active Directory installations in the world have relied on one tool to manage their day-to-day administration tasks: Hyena. Start your trial today.

Question has a verified solution.

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

How to resolve IMCEAEX NDRs in Exchange or Exchange Online related to invalid X500 addresses.
In-place Upgrading Dirsync to Azure AD Connect
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…
Polish reports in Access so they look terrific. Take yourself to another level. Equations, Back Color, Alternate Back Color. Write easy VBA Code. Tighten space to use less pages. Launch report from a menu, considering criteria only when it is filled…

790 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