Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Gotcha
The thing that occurred to me as I was connecting to each environment was the nuances, slight differences of connecting to each one. At the end of my preparation I had 4 different consoles going and an Integrated Scripting window running.
More detail on the problem
Connecting to Exchange online
- Open a PowerShell Command Prompt as an Administrator
- Create a credential
$Cred = New-Object PSCredential “UserName@o365domain.onmicrosoft.com”, (ConvertTo-SecureString “<Password>” –AsPlainText –Force)
- Create an Exchange Online Session
$exchangeSession = New-PSSession –ConfigurationName Microsoft.Exchange –ConnectionUri https://ps.outlook.com/powershell -AllowRedirect -Authentication Basic -Credential $Cred
- Import the newly created Exchange session
Import-PSSession $exchangeSession
What this whole process does is loads up in memory the Exchange online cmdlets to the current PowerShell host as well as creates a persistent connection to Exchange online so you can act upon your instance remotely.
Connecting to SharePoint Online
- Open the SharePoint Online Management Shell as an Administrator
- Create a credential
$Cred = New-Object PSCredential “UserName@o365domain.onmicrosoft.com”, (ConvertTo-SecureString “<Password>” –AsPlainText –Force)
- Connect to the SharePoint online administration site
Connect-SPOService –Url https://<o365domain>-admin.sharepoint.com –credential $Cred
This whole process does a similar thing as the Exchange Online, however the PowerShell cmdlets are already loaded in the session and available within the management console.
Connecting to Lync Online
- Open a PowerShell Command Prompt as an Administrator
- Create a credential
$Cred = New-Object PSCredential “UserName@o365domain.onmicrosoft.com”, (ConvertTo-SecureString “<Password>” –AsPlainText –Force)
- Import the Lync Online connector module
Import-Module LyncOnlineConnector
- Create an Lync Online Session
$lyncSession = New-CsOnlineSession –Credential $Cred
Import-PSSession $lyncSession
NOTE: I did have problems at one point connecting to the session, I may not have cleaned up after myself, clearing out the session and the credentials got stale. This was remedied by rebooting the machine.
Connecting to O365
- Open the Windows Azure Active Directory Module for Windows PowerShell as an Administrator
- Create a credential
$Cred = New-Object PSCredential “UserName@o365domain.onmicrosoft.com”, (ConvertTo-SecureString “<Password>” –AsPlainText –Force)
- Connect to the O365 Service
Connect-MSolService –Credential $Cred
Summary
Four different products to connect to, four slightly different ways to connect. This is what I call nuance and if I have to do something in a hurry I am less apt to do it through a scripting environment.
A Possible Solution
To ease my pain I setup my profile for the current user all hosts with some commands to get me going. Below is the script and steps to get it done
- Open PowerShell ISE as an Administrator, this may not be required, I do this out of habit.
- Create a new directory
New-Item –ItemType Directory –Path $env:UserProfile\Document\WindowsPowershell
- Create a new Profile.ps1 file
New-Item –ItemType File –Path $env:UserProfile\Document\WindowsPowershell\Profile.ps1
- Open the newly created profile in the ISE and paste the next set of scripts, changing the <Password> and <O365Domain> to your respective domains and passwords.
#region Setup Credentials
$password = ConvertTo-SecureString "<Password>" -AsPlainText -Force
# Read-host -prompt "What is the password" -AsSecureString
$Cred = New-Object pscredential "admin@<o365Domain>.onmicrosoft.com", $password # (ConvertTo-SecureString "pass@word1" -AsPlainText -Force)
#endregion
#region connections
function Connect-O365Plus {
#region Setup for O365
Import-Module msonline
Connect-MsolService -Credential $Cred
#endregion
#region Setup for SharePoint Online
Import-Module Microsoft.Online.SharePoint.Powershell
Connect-SPOService -Url https://<o365Domain>-admin.sharepoint.com -Credential $o365Cred
#endregion
#region Setup for Lync Online
Import-Module LyncOnlineConnector
$lyncSession = New-CsOnlineSession -Credential $Cred
Import-PSSession $lyncSession
#endregion
#region Setup for Exchange Online
$exchangeSession = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell -Credential $Cred -Authentication Basic -AllowRedirection
Import-PSSession $exchangeSession
#endregion
}
function Connect-LyncOnline {
Import-Module LyncOnlineConnector
$lyncSession = New-CsOnlineSession -Credential $Cred
Import-PSSession $lyncSession
}
function Connect-ExchangeOnline {
#region Setup for Exchange Online
$exchangeSession = New-PSSession -ConfigurationName Microsoft.Exchange `
-ConnectionUri https://ps.outlook.com/powershell `
-Credential $Cred -Authentication Basic -AllowRedirection
Import-PSSession $exchangeSession
#endregion
}
function Connect-SharePointOnline {
#region Setup for SharePoint Online
Import-Module Microsoft.Online.SharePoint.Powershell
Connect-SPOService -Url https://marcusfdemo-admin.sharepoint.com -Credential $Cred
#endregion
}
function Connect-O365 {
#region Setup for O365
Import-Module msonline
Connect-MsolService -Credential $Cred
#endregion
}
#endregion
- Save and close the ISE and now when you open up a PowerShell console as an administrator you can connect to SharePoint Online (Connect-SharePointOnline), Exchange Online (Connect-ExchangeOnline), Lync Online (Connect-LyncOnline), O365 (Connect-O365), or the entire suite (Connect-O365Plus). Without having to recall the nuances.
Hope everyone enjoys and let me know if you have any feedback.
References
Connect to Office 365 by using a single Windows PowerShell window: https://technet.microsoft.com/en-US/library/dn568015.aspx