AD1080
asked on
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
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
You can do this via powershell. Use the below command...
This will add the value of 40 to the CustomAttribute1 for all mailboxes.
Will.
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
}
Will.
ASKER
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.
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.
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.
Will.
It's again "Office", if it's populated that is.
@Vasil - Right but what cmdlet would populate this attribute? Does Get-Mailbox populate this info? Or is it another cmdlet?
Will.
Will.
Get-Mailbox, Get-Recipient, Get-User, Get-MsolUser, all of them :)
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
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
}
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
}
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.
I guess yours could work to but it is just redundant.
Will.
ASKER
Thanks again, I'll try yours.
Excellent!
Will.
Will.
ASKER
Actually would you mind showing us how to add the filter too?
Just open a new question and let me know what the link is. I will provide the solution.
Will.
Will.
ASKER
Thanks, here is a link to the new question
https://www.experts-exchange.com/questions/28621824/Add-Filter-to-For-Each-Powershell-Script.html
https://www.experts-exchange.com/questions/28621824/Add-Filter-to-For-Each-Powershell-Script.html
ASKER
Screen-Shots-of-Office365-Admin.docx