was successfully added to your cart.

Automate connecting to Office 365 with PowerShell

By September 5, 2019Office 365, PowerShell

Connecting to Office 365 with PowerShell enables you to perform many functions not available in the GUI.  But what if you want to automate these functions.  Connecting to Office 365 with PowerShell will prompt you for credentials for that session.  Now credentials can be saved in the script but that would be a security issue having your password saved in a file.  The way around that would be to save your password as a secure string in a text file.  And that is easy:

Read-Host -Prompt “Enter your password” -AsSecureString | ConvertFrom-SecureString | Out-File “C:\scripts\cred.txt

Your password will be encrypted and look like this:

Now that your password is saved as a secure string you can customize your script to call it when connecting to Office 365

##This will connect to Office 365

$AdminName = “admin@domain.onmicrosoft.com”
$Pass = Get-Content “c:\scripts\cred.txt” | ConvertTo-SecureString
$Cred = new-object -typename System.Management.Automation.PSCredential -argumentlist $AdminName, $Pass
$Session = New-PSSession`
-ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/`
-Credential $cred -Authentication Basic -AllowRedirection

Import-PSSession $Session

After the connection part you can add your desired function to the script.  Let’s say for instance you want to export a list of shared mailboxes.

Get-Mailbox -RecipientTypeDetails SharedMailbox -ResultSize Unlimited | Select DisplayName | sort DisplayName | Export-Csv c:\scripts\SharedMailboxes.csv -NoTypeInformation

**This illustrates how an O365 administrator can introduce automation in scripts that they own and control individually. For scheduling automation tasks it is recommended to use a dedicated service account.

Subscribe to our mailing list

* indicates required