Set-ExchangeMailboxConfig
Exchange: Modifies properties of a mailbox and its associated user
#Requires -Version 5.1
[CmdletBinding()]
Param (
[Parameter(Mandatory = $true)]
[string]$Identity,
[string]$Alias,
[string]$DisplayName,
[string]$PrimarySmtpAddress,
[string]$FirstName,
[string]$LastName,
[string]$Office,
[string]$Phone,
[bool]$ResetPasswordOnNextLogon
)
Process {
try {
$mailboxParams = @{
'Identity' = $Identity
'Confirm' = $false
'ErrorAction' = 'Stop'
}
if ($PSBoundParameters.ContainsKey('Alias')) { $mailboxParams.Add('Alias', $Alias) }
if ($PSBoundParameters.ContainsKey('DisplayName')) { $mailboxParams.Add('DisplayName', $DisplayName) }
if ($PSBoundParameters.ContainsKey('PrimarySmtpAddress')) { $mailboxParams.Add('PrimarySmtpAddress', $PrimarySmtpAddress) }
if ($mailboxParams.Count -gt 3) {
Set-Mailbox @mailboxParams
}
$userParams = @{
'Identity' = $Identity
'Confirm' = $false
'ErrorAction' = 'Stop'
}
if ($PSBoundParameters.ContainsKey('FirstName')) { $userParams.Add('FirstName', $FirstName) }
if ($PSBoundParameters.ContainsKey('LastName')) { $userParams.Add('LastName', $LastName) }
if ($PSBoundParameters.ContainsKey('Office')) { $userParams.Add('Office', $Office) }
if ($PSBoundParameters.ContainsKey('Phone')) { $userParams.Add('Phone', $Phone) }
if ($PSBoundParameters.ContainsKey('ResetPasswordOnNextLogon')) { $userParams.Add('ResetPasswordOnNextLogon', $ResetPasswordOnNextLogon) }
if ($userParams.Count -gt 3) {
Set-User @userParams
}
$mailbox = Get-Mailbox -Identity $Identity -ErrorAction Stop
$user = Get-User -Identity $Identity -ErrorAction Stop
$result = [PSCustomObject]@{
Identity = $Identity
DisplayName = $mailbox.DisplayName
Alias = $mailbox.Alias
Office = $user.Office
Phone = $user.Phone
Action = "MailboxConfigUpdated"
Status = "Success"
Timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
}
Write-Output $result
}
catch {
throw
}
}Specifies the Identity of the mailbox.
Optional. Specifies a new Exchange alias.
Optional. Specifies a new display name.
Optional. Specifies a new primary SMTP address.
Optional. Specifies the user's first name.
Optional. Specifies the user's last name.
Optional. Specifies the user's office location.
Optional. Specifies the user's phone number.
Optional. If set, forces the user to change their password at the next logon.