Recover Deleted O365 Mailbox data into Shared Mailbox

  1. Connect to Exchange Online
  2. Get-Mailbox -SoftDeletedMailbox | fl name,exchangeguid​
    2. (Get-Mailbox -SoftDeletedMailbox

3. Create a Shared Mailbox – and get the ExchangeGuid for the shared mailbox

4. Now, we will copy the data from the original deleted mailbox to the shared mailbox 

​5. Get-MailboxRestoreRequest for the status of the mailbox copy. 

Switch from Semi-Annual Channel to the Monthly Channel in O365

Consider a scenario where Office 365 ProPlus is installed on a machine from the Semi-Annual Channel.  Now let’s say, a new feature is introduced on the Monthly Channel which you would like to get.  Since you are on the Semi-Annual Channel you will have to wait for a few months before this feature is made available to the Semi-Annual Channel.  But what if you do not want to wait that long?  The answer is, switch to the Monthly Channel.

Some users have the semi-annual channel and others the monthly channel, The Monthly channel users get the latest updates. this could be due to the Office License that is assigned to the user. 
What I observed is that Business Premium users tend to have the “Monthly Channel” whereas the E3 users have the “Semi-Annual Channel” 
These cmd allow the E3 users to be assigned the Monthly channel in E3, that way the updates are synced across, and changes can be seen by new users

Below are the steps to switch channels:

  1. Identify the channel which you would like to switch to. Features and updates by channel are documented here.
  2. Launch Command Prompt as an administrator.
  3. Navigate to “C:\Program Files\Common Files\Microsoft Shared\ClickToRun\”
  4. Run the following command to change the desired channel, let’s say Monthly Channel Targeted “OfficeC2RClient.exe /changesetting Channel=Monthly” 

Note – You can use this command to switch to any channel using the corresponding Channel keyword listed below:

ChannelKeyword in CMD or ODT
  Monthly Channel (Targeted)  Channel=”Insiders“ or Channel=”FirstReleaseCurrent
  Monthly Channel  Channel=”Monthly” or Channel=”Current
  Semi-annual Channel (Targeted)  Channel=”Targeted” or Channel=”FirstReleaseDeferred
  Semi-annual Channel  Channel=”Broad” or Channel=”Deferred

To start the switch Channel process, run “OfficeC2RClient.exe /update user” from the cmd prompt path “C:\Program Files\Common Files\Microsoft Shared\ClickToRun\” 

This should be followed by a series of windows which will take you through the process of downloading and installing updates for the new channel that you have switched to.

Skydive Experience – An Expensive Thrill of a Lifetime

In just a few words, it was worth the wait!

Had to wait for close to 8 hours for 60 seconds for a thrill of a lifetime; jumping off a plane

Yes, I went skydiving in Skydive Dubai @ Desert Campus drop zone on 29th March, 2019

It was a rainy day; my jump was scheduled at 0830 and I had left early from my hotel, while it was a 1hr drive from Dubai to AlAin; I had a feeling it would be canceled and the Uber driver kept giving me negative vibes by saying “will it happen, the clouds won’t clear, it’s going to rain all day… ” Ugh I just needed him to shut up! Sometimes they should just leave the passengers to do their thing rather than build wasteful conversation. Anyways, once I arrived I reported at the Manifest desk, to see if they would be a chance to skydive.

Also it being in the middle of the desert I had no way of getting a Uber taxi way back. So then I waited and waited, every 2 hours to check if it’s canceled for the day, unless they declare it as canceled I was very hopeful, we were put on standby, when by later afternoon the rain, kind of dropped out, which meant that was a chance to relive the moment, but was again disappointed that due to wind and the dark high clouds we were told to wait again as standby.

Around mid-day, we were told to get ready, Omg! I got too excited, and bought the t-shirt, met my instructor, got the safety de-brief which was quite simple and easy to understand – chin up, knees together, shape like a banana, smile for the photos 😂😂😂

Well, just after I got tucked into the harness, the announcement came in, “We are on standby”

Oh man, the disappointment of getting off the harness, and it’s waiting time again.

Then again after a wait of close 2 hours, around 1640 we were told to get ready again, by this time the skies cleared, the wind was less, and I was bloody excited, OMG, it’s happening!!! I’m going to jump from a plane!

I had full confidence and faith in my instructor and we then did it! Here’s a glimpse of what happened next 🤣

PowerShell Commands for a O365 System Admin

Create New O365 User


New-Msoluser -UserPrincipalName -DisplayName "Torky ElEnazy" -FirstName Torky -LastName Elenazy -Country SA -MobilePhone +966594399666 -Fax SADP01334 -Department "Human Resources" -Title "Recruiter Assistant" -UsageLocation SA

Adding License to user

Set-MsolUserLicense -AddLicenses AlamarFoods:O365_BUSINESS_PREMIUM -UserPrincipalName

Add Manager Credentials – first connect to Exchange Online

Add Manager – MFA Enabled

Connect to EAC<Hybrid<Exchange Online Powershell with MFA

Connect-EXOPSSession -UserPrincipalName

(in Hybrid PowerShell )

Set-User -Identity -Manager

Set-ExecutionPolicy RemoteSigned

$UserCredential = Get-Credential

$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri -Credential $UserCredential -Authentication Basic -AllowRedirection

Import-PSSession $Session

Add to Distribution List – (Office365 Groups)

Add-DistributionGroupMember -Identity "Alamar Foods" -Member ""

Add-DistributionGroupMember -Identity "Alamar Corporate" -Member ""

Add to O365 Group

Add-UnifiedGroupLinks -Identity "Alamar Foods KSA" -LinkType Members -Links

Create New User in Active Directory

New-ADUser -Name "Kiran Venugopal" -GivenName "Kiran" -Surname "Venugopal" -SamAccountName "kiran.venugopal" -UserPrincipalName "" -Office "Head Office" -EmailAddress "" -Mobile "+971551477891" -Title "KSA Financial Analyst" -Department "Finance" -Path "OU=Finance,OU=HO Users,OU=Saudi Arabia-HO,DC=alamarfoods,DC=local" -AccountPassword(Read-Host -AsSecureString "Aa123456") -Company "Alamar Foods | KSA" -City "Riyadh" -Country ‘SA’ -StreetAddress "AlOlaya District, Street No. 36, Building No. 3" -POBox ‘4748’ -Manager "usama.ruby" -Enabled $true

For MENAP Users

New-ADUser -Name "Mohamed Younes" -GivenName "Mohamed" -Surname "Younes" -SamAccountName "mohamed.younes" -UserPrincipalName "" -Office "Head Office" -EmailAddress "" -Mobile "+20106644628" -Title "Warehouse Supervisor" -Department "Supply Chain" -Path "OU=Commissary,OU=EG Users,OU=Egypt,OU=MENAP,DC=alamarfoods,DC=local" -AccountPassword(Read-Host -AsSecureString "Aa123456") -Company "Alamar Foods | Egypt" -City "Cairo" -Country ‘EG’ -Manager "mohamed.amer" -Enabled $true

Adding Manager thru CSV command

Create CSV; UserPrincipalName; (see desktop)


$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri -Credential $UserCredential -Authentication Basic -AllowRedirection

Import-PSSession $Session

Add Manager

Set-User -Identity -Manager

Import-Csv "C:\Users\shrenik.salguna\Desktop\UpdateManager.csv" | foreach {Set-User -Identity $_.UserPrincipalName -Manager $_.Manager}

Get all properties of user

Get-User | gm

Get properties of user and manager

Get-User | select -Property Name,Manager

Export to CSV

Get-User | select -Property Name,Manager | Export-csv "C:\Users\shrenik.salguna\Desktop\Manager.csv"

"C:\Users\shrenik.salguna\Desktop\UpdateManager.csv" | foreach {Set-User -Identity $_.UserPrincipalName -Manager $_.Manager}

AWS Global Infrastructure


The AWS Global Infrastructure is so exciting of course because for one, it allows you to deploy services right in the area where most of your customers are located.

Crazy Growth

It is amazing to think that just 4 regions existed 5 years after Amazon launched AWS. The first region was N. Virginia in the USA.

After the second 5 years – AWS added 7 more regions. So that is 11 regions in the first 10 years.

What is amazing, is that from 2016 to 2018 – AWS will add another 11 regions! The growth is really exploding of course! AWS expects this to growth rate to continue to increase even faster.

Another exciting fact is that AWS is pushing hard to eventually be powered by 100% renewable energy. One of the reasons for the Sweden launch is their commitment to renewables. 50% of their energy is renewables as country!

Availability Zones

This is a critical part of the Global Infrastructure. A region is made up of multiple AZs. Here are the important aspects to keep in mind:

  • An AZ is a fully isolated infrastructure with one or more data centers – the distance between AZs is as far as possible (miles)
  • There is a meaningful distance of separation for fault tolerance
  • Each has a unique power infrastructure
  • There are many 100Ks of servers at scale
  • Datacenters within an AZ are connected with high speed fiber (with redundant links)
  • Regions have at least two AZs and some have six!
  • AZs are connected to each other with redundant high speed fiber

Region Connectivity

  • Each region has multiple high speed connection options to the rest of the Internet
  • Direct Connect points are expanding – this permits a private connection to the cloud; there are 67 currently
  • There is now inter-region Direct Connect – so the customer can not only connect to their local region privately, they can then do cross region work on their own connections

Edge Locations

  • Over 100 around the world
  • Serve as the basis for CloudFront locations to deliver content to users quickly

Add External Users as ‘Mail Contact’​ to add them to a ‘Distribution List’​ Email Address

This is a guide on how to add External Users to O365 Distribution List Email Address. It is not possible to directly add external users, unless they are created manually as a Mail Contact. This guide allows you to add the users in bulk by importing the contacts in a CSV file.

Firstly, you would need to create a notepad CSV file of the users with Email, DisplayName and then we will import that file in PowerShell by the following cmdlets

PS C:\Users\shrenik.salguna> $users=Import-csv C:\Users\shrenik.salguna\Desktop\CallCenterEmails.txt -Delimiter ","

PS C:\Users\shrenik.salguna> $users

Email            DisplayName

—–            ———– Naser Saeed Abdulrahman   Wadha Hamoud AlBakmi Rehab Hamad AlRwished

 This cmdlet creates the users as a Mail Contact

PS C:\Users\shrenik.salguna> $users | foreach {New-MailContact -Name $_.DisplayName -ExternalEmailAddress $_.Email}

 Check from the list of users in the .txt file whether the users have been added to the Portal as ‘Mail Contact’

PS C:\Users\shrenik.salguna> Get-Recipient

 Name          RecipientType

—-          ————-

Naser Saeed Abdulrahman MailContact

 Add the user to the Distribution List in Bulk

PS C:\Users\shrenik.salguna> $users | fore