Mappa konton mellan AD och Azure

Om man vill synka användare från lokalt AD till Azure AD är det rekommenderat att använda AD Connect. Om man redan har användare i Azure AD vill man förmodligen mappa ihop dessa med lokala användare. Första gången man synkar mellan lokalt AD och Azure AD kommer AD Connect att försöka koppla ihop UserPrincipalName i AD med UserPrincipalName i Azure AD, en så kallad soft match. Ibland fungerar inte det av olika anledningar och då kan man själv göra denna mappning. Det gör man genom att skriva in ObjectGUID från AD i fältet ImmutableId i Azure AD. Dock måste man göra en base64-encoding på värdet först. Det går till ungefär så här:

$userPrincipalName = "myuser@powerkjell.com"
adUser = Get-ADUser -Filter { userPrincipalName -eq $userPrincipalName }
$guid = New-Object -TypeName System.Guid -ArgumentList $aduser.ObjectGUID;
$immutableid = [System.Convert]::ToBase64String($guid.ToByteArray());
Set-MsolUser -UserPrincipalName $userPrincipalName -ImmutableId $immutableid

Uppdatera SSL-cert för ADFS

När man sätter upp ADFS i sin miljö använder man en gateway och ett SSL-certifikat för detta, till exempel fs.contoso.com. Detta SSL-certifikat behöver förnyas och det gör man smidigast med Powershell (så klart!). Logga in på alla ADFS-servrar och lägg till certifikatet. Uppdatera sedan på ADFS följande sätt:

Set-AdfsCertificate -CertificateType Service-Communications -Thumbprint <Thumbprint><br>
Set-AdfsSslCertificate -Thumbprint <Thumbprint>

På Web application proxy kör man följande kommando med Powershell:

Set-WebApplicationProxySslCertificate -Thumbprint <Thumbprint>

Uppdateringen av SSL-certifikat ger en kort störning på några sekunder i miljön.

Mer information från Microsoft finns här:

How to Update Certificates for AD FS 3.0

Sätta forward på brevlåda

En användare kan enkelt sätta forward på sin e-post till en annan e-postadress. Om man vill göra detta åt sina användare och låsa det så de inte kan ändra det kan man göra det med Powershell.

Set-Mailbox -Identity <Identity> -DeliverToMailboxAndForward $true -ForwardingSMTPAddress <EmailAddress>

Det kan till exempel vara bra att göra om en användare slutat eller är tjänstledig.

Sätta tidszon på brevlåda

När man tilldelar en användare en Exchange-licens i Office 365 skapas en brevlåda automatiskt. Denna brevlåda får ingen tidszon, utan den måste användaren själv ange. Man kan hjälpa till med detta t.ex. med Powershell:

 
Get-Mailbox <Identity> | Set-MailboxRegionalConfiguration -TimeZone "W. Europe Standard Time"

Man behöver dock vänta 5-10 sekunder från det att licensen tilldelats så att brevlådan hinner skapas upp innan man kör detta kommando. Annars hittas ingen brevlåda och man får ett felmeddelande.

Set subscription with Powershell

When users have been synchronized to Office 365, they lack subscription, which means they cannot access Exchange, Lync or SharePoint. Microsoft has documentation on how to activate synced users with the GUI. http://technet.microsoft.com/en-us/library/hh967617.aspx This can be automated using Powershell.

 # Connect to service $Username = "admin@mydomain.onmicrosoft.com" $Password = ConvertTo-SecureString P@ssword" -AsPlainText -Force $Credentials = New-Object System.Management.Automation.PSCredential $Username,$Password Connect-MsolService -Credential $Credentials # Set location Get-MSOLUser -UnlicensedUsersOnly | Set-MSOLUser -UsageLocation "SE" # Set subscription Get-MSOLUser -UnlicensedUsersOnly | where{$_.Title -eq "Student"} | Set-MsolUserLicense -AddLicenses "contoso:STUDENTPACK" Get-MSOLUser -UnlicensedUsersOnly | where{$_.Title -eq "Teacher"} | Set-MsolUserLicense -AddLicenses "contoso:FACULTYPACK" 

Script to set new password in Office 365

The following script can be used to set new password in Office 365. Replace username and password of service account and save file as Set-Password.ps1.

Set-Password.ps1 -UserPrincipalName [UserPrincipalName] -NewPassword [NewPassord]

param
(
   [parameter(Mandatory = $true)][string]$UserPrincipalName,
   [parameter(Mandatory = $true)][string]$NewPassword
)

function Set-Password()
{
   # Connect to service
   $Username = "admin@mydomain.onmicrosoft.com"
   $Password = ConvertTo-SecureString "P@ssword" -AsPlainText -Force
   $Credentials = New-Object System.Management.Automation.PSCredential $Username,$Password
   Connect-MsolService -Credential $Credentials

   # Reset password
   $pwd = ConvertTo-SecureString $NewPassword -AsPlainText -Force
   Set-MsolUserPassword -UserPrincipalName $UserPrincipalName -NewPassword $pwd -ForceChangePassword $false
}

Set-Password -UserPrincipalName $UserPrincipalName -NewPassword $NewPassword