sharepoint saturday ottawa 2015 - office 365 and powershell - a match made in heaven
TRANSCRIPT
![Page 1: SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in heaven](https://reader034.vdocuments.site/reader034/viewer/2022042906/58a5cd791a28ab6c2a8b5ae3/html5/thumbnails/1.jpg)
SharePoint Saturday Ottawa
Office 365 & PowerShell : A match made in heavenSébastien LevertOffice 365 Junkie & MVPNovember 21st, 2015
![Page 2: SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in heaven](https://reader034.vdocuments.site/reader034/viewer/2022042906/58a5cd791a28ab6c2a8b5ae3/html5/thumbnails/2.jpg)
Thanks to all of our Sponsors!
![Page 3: SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in heaven](https://reader034.vdocuments.site/reader034/viewer/2022042906/58a5cd791a28ab6c2a8b5ae3/html5/thumbnails/3.jpg)
Web Developer @sebastienlevert pimpthecloud.com
Who’s Sébastien Levert !?
Montreal, Canada negotium.com Office365 MVP
![Page 4: SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in heaven](https://reader034.vdocuments.site/reader034/viewer/2022042906/58a5cd791a28ab6c2a8b5ae3/html5/thumbnails/4.jpg)
Agenda⊕ Introduction to PowerShell in Office 365⊕ Using PowerShell with SharePoint Online⊕ Using PowerShell with the Office 365 APIs⊕ DevOps with PowerShell in Office 365
![Page 5: SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in heaven](https://reader034.vdocuments.site/reader034/viewer/2022042906/58a5cd791a28ab6c2a8b5ae3/html5/thumbnails/5.jpg)
Introduction to PowerShell in Office 365
![Page 6: SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in heaven](https://reader034.vdocuments.site/reader034/viewer/2022042906/58a5cd791a28ab6c2a8b5ae3/html5/thumbnails/6.jpg)
Getting started⊕ Announced at Ignite 2015⊕ http://powershell.office.com⊕ Sets of samples, scenarios, guides, …
![Page 7: SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in heaven](https://reader034.vdocuments.site/reader034/viewer/2022042906/58a5cd791a28ab6c2a8b5ae3/html5/thumbnails/7.jpg)
What do you need ?⊕ An Office 365 tenant⊕ Administrator privileges on your Office 365
tenant⊕ Administrator privileges on your machine
running PowerShell⊕ Administration modules
⊕ Microsoft Online Services Sign-in Assistant⊕ Azure Active Directory Module⊕ SharePoint Online Module⊕ Skype for Business Online Module
![Page 8: SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in heaven](https://reader034.vdocuments.site/reader034/viewer/2022042906/58a5cd791a28ab6c2a8b5ae3/html5/thumbnails/8.jpg)
Using PowerShell with SharePoint Online
![Page 9: SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in heaven](https://reader034.vdocuments.site/reader034/viewer/2022042906/58a5cd791a28ab6c2a8b5ae3/html5/thumbnails/9.jpg)
Connecting to SharePoint Online⊕ With the SharePoint Online Module⊕ With the SharePoint Client Side Object Model⊕ With the OfficeDev PowerShell Commands⊕ With the SharePoint REST APIs
![Page 10: SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in heaven](https://reader034.vdocuments.site/reader034/viewer/2022042906/58a5cd791a28ab6c2a8b5ae3/html5/thumbnails/10.jpg)
Connecting to SharePoint OnlineWith SharePoint Online Module
![Page 11: SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in heaven](https://reader034.vdocuments.site/reader034/viewer/2022042906/58a5cd791a28ab6c2a8b5ae3/html5/thumbnails/11.jpg)
Getting all your Site Collections
Demo
![Page 12: SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in heaven](https://reader034.vdocuments.site/reader034/viewer/2022042906/58a5cd791a28ab6c2a8b5ae3/html5/thumbnails/12.jpg)
Getting all your Site Collection
Get-SPOSite
Get-SPOSite –Detailed
Get-SPOSite –Detailed –Filter { Url –like “*term*” }
![Page 13: SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in heaven](https://reader034.vdocuments.site/reader034/viewer/2022042906/58a5cd791a28ab6c2a8b5ae3/html5/thumbnails/13.jpg)
Connecting to SharePoint OnlineWith SharePoint Client Side Object Model
![Page 14: SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in heaven](https://reader034.vdocuments.site/reader034/viewer/2022042906/58a5cd791a28ab6c2a8b5ae3/html5/thumbnails/14.jpg)
Connecting to SharePoint OnlineWith SharePoint Client Side Object Model
![Page 15: SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in heaven](https://reader034.vdocuments.site/reader034/viewer/2022042906/58a5cd791a28ab6c2a8b5ae3/html5/thumbnails/15.jpg)
Using SharePoint CSOM in PowerShell⊕ You have to manually get the CSOM Assemblies⊕ You have to manually load the CSOM
Assemblies in your PowerShell Sessions⊕ Ensure to have the latest bits of the CSOM
Assemblies[AppDomain]::CurrentDomain.GetAssemblies() | Where-Object { $_.FullName -like "*SharePoint*” –or $_.FullName –like “*Office*” } | Select FullName
![Page 16: SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in heaven](https://reader034.vdocuments.site/reader034/viewer/2022042906/58a5cd791a28ab6c2a8b5ae3/html5/thumbnails/16.jpg)
Tips & Tricks⊕ Do not use SharePoint Online Management
Shell⊕ Import the SharePoint Online PowerShell
module from a regular PowerShell session⊕ Load the required CSOM Assemblies before
loading the SharePoint Online Module⊕ Use Gary Lapointe’s Load-CSOMProperties
Cmdlet. Everyday.
![Page 17: SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in heaven](https://reader034.vdocuments.site/reader034/viewer/2022042906/58a5cd791a28ab6c2a8b5ae3/html5/thumbnails/17.jpg)
Getting the CSOM Assemblies
Demo
![Page 18: SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in heaven](https://reader034.vdocuments.site/reader034/viewer/2022042906/58a5cd791a28ab6c2a8b5ae3/html5/thumbnails/18.jpg)
Working with the CSOM AssembliesImport-Module C:\Path\PTC.O365.PowerShell.psm1
Get-ClientAssemblies –Version 16 –TargetDirectory C:\assemblies
Add-ClientAssemblies –AssembliesDirectory C:\assemblies
[AppDomain]::CurrentDomain.GetAssemblies() | Where-Object { $_.FullName -like "*SharePoint*” –or $_.FullName –like “*Office*” } | Select FullName
![Page 19: SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in heaven](https://reader034.vdocuments.site/reader034/viewer/2022042906/58a5cd791a28ab6c2a8b5ae3/html5/thumbnails/19.jpg)
Mixing CSOM and SPO Cmdlets⊕ You can easily use CSOM with the SPO Cmdlets⊕ Use the Cmdlets to get to the Site Collection
level⊕ Use CSOM to get into the Webs level
![Page 20: SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in heaven](https://reader034.vdocuments.site/reader034/viewer/2022042906/58a5cd791a28ab6c2a8b5ae3/html5/thumbnails/20.jpg)
Getting all the Sites of every Site Collection
Demo
![Page 21: SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in heaven](https://reader034.vdocuments.site/reader034/viewer/2022042906/58a5cd791a28ab6c2a8b5ae3/html5/thumbnails/21.jpg)
Get all the Sites of every Site Collection
Import-Module C:\Path\PTC.O365.PowerShell.psm1Import-Module Microsoft.Online.SharePoint.PowerShellConnect-SPOService –Url https://tenant-admin.sharepoint.com
$credentials = Get-SharePointOnlineCredentials
Get-SPOSite | Where-Object { $_.Template –notlike “*EHS#0” } | ForEach-Object {
$context = Get-Context –Url $_.Url –Credentials $credentialsGet-Webs –Context $context | Select Url
}
![Page 22: SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in heaven](https://reader034.vdocuments.site/reader034/viewer/2022042906/58a5cd791a28ab6c2a8b5ae3/html5/thumbnails/22.jpg)
Export the content of a SharePoint list
Demo
![Page 23: SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in heaven](https://reader034.vdocuments.site/reader034/viewer/2022042906/58a5cd791a28ab6c2a8b5ae3/html5/thumbnails/23.jpg)
Export the content of a SharePoint list
$credentials = Get-SharePointOnlineCredentials$context = Get-Context –Url “https://tenant.sharepoint.com” –Credentials $credentials
$web = Get-Web -Context $context$list = Get-List –Web $web –Title “Tasks”$items = Get-ListContent –List $list -Fields @(“ID”, “Title”, “DueDate”)
$items | Select @{ Name = “ID”; Expression = { $_[“ID”] } }, @{ Name = “Title”; Expression = { $_[“Title”] } }, @{ Name = “DueDate”; Expression = { $_[“DueDate”] } } |
Export-CSV –Path C:\Tasks.csv –NoTypeInformation –Encoding UTF8
![Page 24: SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in heaven](https://reader034.vdocuments.site/reader034/viewer/2022042906/58a5cd791a28ab6c2a8b5ae3/html5/thumbnails/24.jpg)
Connecting to SharePoint OnlineWith OfficeDev PnP PowerShell Commands
![Page 25: SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in heaven](https://reader034.vdocuments.site/reader034/viewer/2022042906/58a5cd791a28ab6c2a8b5ae3/html5/thumbnails/25.jpg)
Working with PowerShell.Commands⊕ 123 new Cmdlets Delivered by Office Dev
Patterns & Practices⊕ Set of Cmdlets used to execute CSOM against
SharePoint Online & On-Premises⊕ Uses the OfficeDevPnP.Core framework⊕ Needs to be installed on your machine (more
complex than a simple module)⊕ The real power of PowerShell with the PnP
enhanced power of CSOM
![Page 26: SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in heaven](https://reader034.vdocuments.site/reader034/viewer/2022042906/58a5cd791a28ab6c2a8b5ae3/html5/thumbnails/26.jpg)
Adding and setting a new theme to a site
Demo
![Page 27: SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in heaven](https://reader034.vdocuments.site/reader034/viewer/2022042906/58a5cd791a28ab6c2a8b5ae3/html5/thumbnails/27.jpg)
Adding and setting a new theme to a siteConnect-SPOnline –Url https://tenant.sharepoint.comAdd-SPOFile –Path C:\theme.spcolor –Folder “_catalogs/theme/15”Add-SPOFile –Path C:\image.jpg –Folder “SiteAssets”
Set-SPOTheme ` –ColorPaletteUrl “/_catalogs/theme/15/theme.spcolor ”
`-BackgroundImageUrl “/SiteAssets/image.jpg”
![Page 28: SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in heaven](https://reader034.vdocuments.site/reader034/viewer/2022042906/58a5cd791a28ab6c2a8b5ae3/html5/thumbnails/28.jpg)
Connecting to SharePoint OnlineWith SharePoint REST APIs
![Page 29: SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in heaven](https://reader034.vdocuments.site/reader034/viewer/2022042906/58a5cd791a28ab6c2a8b5ae3/html5/thumbnails/29.jpg)
Working with REST and SharePoint Online⊕ Awesome series of articles by Gary Lapointe⊕ Magic Function provided Invoke-
SPORestMethod ⊕ Easily use “typed” objects in your PowerShell
scripts⊕ Remember to escape your $
![Page 30: SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in heaven](https://reader034.vdocuments.site/reader034/viewer/2022042906/58a5cd791a28ab6c2a8b5ae3/html5/thumbnails/30.jpg)
Query list items with OData
Demo
![Page 31: SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in heaven](https://reader034.vdocuments.site/reader034/viewer/2022042906/58a5cd791a28ab6c2a8b5ae3/html5/thumbnails/31.jpg)
Query list items with Odata
$url = “https://tenant.sharepoint.com/_api/lists/GetByTitle('Tasks')/items?`$select=Id,Title,DueDate,PercentComplete&`$filter=PercentComplete gt 0.5”
$items = Invoke-SPORestMethod –Url $url
$items.results | Out-GridView
![Page 32: SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in heaven](https://reader034.vdocuments.site/reader034/viewer/2022042906/58a5cd791a28ab6c2a8b5ae3/html5/thumbnails/32.jpg)
Use the search REST API to query the Graph
Demo
![Page 33: SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in heaven](https://reader034.vdocuments.site/reader034/viewer/2022042906/58a5cd791a28ab6c2a8b5ae3/html5/thumbnails/33.jpg)
Using the REST API to query Office Graph$url = “https://tenant.sharepoint.com/_api/search/query?Querytext=‘*’&Properties=‘GraphQuery:ACTOR(ME)’&RowLimit=100”
$results = Invoke-SPORestMethod –Url $url
$results = Get-RestSearchResults –Results $results | Out-GridView
![Page 34: SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in heaven](https://reader034.vdocuments.site/reader034/viewer/2022042906/58a5cd791a28ab6c2a8b5ae3/html5/thumbnails/34.jpg)
Using PowerShell with the Office 365 APIs
![Page 35: SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in heaven](https://reader034.vdocuments.site/reader034/viewer/2022042906/58a5cd791a28ab6c2a8b5ae3/html5/thumbnails/35.jpg)
Office 365 APIs⊕ Set of APIs delivered to unify the workloads APIs⊕ Built on top of Azure Active Directory
Applications⊕ Uses OAuth and JWT for every API call⊕ Enables delegated permissions & App-Only
permissions⊕ Give permissions on the needed workloads⊕ When the plumbing is done, it becomes very
easy to use
![Page 36: SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in heaven](https://reader034.vdocuments.site/reader034/viewer/2022042906/58a5cd791a28ab6c2a8b5ae3/html5/thumbnails/36.jpg)
Steps to Office 365 API with PowerShell1. Create an Azure Active Directory Application2. Create a local certificate3. Import the certificate data into your Azure AD
Application configuration4. Use the certificate with its password in your
PowerShell code5. Connect to the Office 365 API6. Play with your data!
![Page 37: SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in heaven](https://reader034.vdocuments.site/reader034/viewer/2022042906/58a5cd791a28ab6c2a8b5ae3/html5/thumbnails/37.jpg)
Getting readyDemo
![Page 38: SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in heaven](https://reader034.vdocuments.site/reader034/viewer/2022042906/58a5cd791a28ab6c2a8b5ae3/html5/thumbnails/38.jpg)
Getting ready
makecert -r -pe -n "CN=PowerShell Office 365 API Application" -b 1/01/2015 -e 12/31/2016 -ss my -len 2048
$keyCredentials = Get-KeyCredentialsManifest –Path C:\Certificate.cer
![Page 39: SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in heaven](https://reader034.vdocuments.site/reader034/viewer/2022042906/58a5cd791a28ab6c2a8b5ae3/html5/thumbnails/39.jpg)
Get an Access Token
Demo
![Page 40: SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in heaven](https://reader034.vdocuments.site/reader034/viewer/2022042906/58a5cd791a28ab6c2a8b5ae3/html5/thumbnails/40.jpg)
Get an Access Token
$global:AzureADApplicationTenantId = “TENANTID”$global:AzureADApplicationClientId = “APPLICATIONID”$global:AzureADApplicationCertificatePath = “C:\Certificate.pfx”$global:AzureADApplicationCertificatePassword = “Passw0rd”$exchangeResourceUri = “https://outlook.office365.com/”
$token = Get-AccessToken -ResourceUri $exchangeResourceUri
![Page 41: SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in heaven](https://reader034.vdocuments.site/reader034/viewer/2022042906/58a5cd791a28ab6c2a8b5ae3/html5/thumbnails/41.jpg)
Get the content of your Mailbox
Demo
![Page 42: SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in heaven](https://reader034.vdocuments.site/reader034/viewer/2022042906/58a5cd791a28ab6c2a8b5ae3/html5/thumbnails/42.jpg)
Get the content of your Mailbox
$url = $exchangeResourceUri + “/api/v1.0/users(‘email’)/folders/inbox/messages?$top=50"$response = Invoke-SecuredRestMethod -Method "GET" -AccessToken $token -EndpointUri $url
$hasMore = $true $messages = @() while($hasMore) { $response = Invoke-SecuredRestMethod -Method "GET" -AccessToken $token-EndpointUri $url $response.value | ForEach-Object { $messages += $_ } $hasMore = $response.'@odata.nextLink' -ne $null $url = $response.'@odata.nextLink’ }
$messages | Select Subject | Out-GridView
![Page 43: SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in heaven](https://reader034.vdocuments.site/reader034/viewer/2022042906/58a5cd791a28ab6c2a8b5ae3/html5/thumbnails/43.jpg)
Send an EmailDemo
![Page 44: SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in heaven](https://reader034.vdocuments.site/reader034/viewer/2022042906/58a5cd791a28ab6c2a8b5ae3/html5/thumbnails/44.jpg)
Prepare the body
$body = @{ “Message” = @{ “Subject” = "This is a test email from PowerShell!” “Body” = @{ “ContentType” = “Text”; “Content” = “This email was sent from PowerShell using the Office 365 API.” } “ToRecipients” = @( @{ “EmailAddress” = @{ “Address” = “[email protected]” } } ) } $body.SaveToSentItems = $false }
![Page 45: SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in heaven](https://reader034.vdocuments.site/reader034/viewer/2022042906/58a5cd791a28ab6c2a8b5ae3/html5/thumbnails/45.jpg)
Send an Email
$url = $exchangeResourceUri + “/api/v1.0/users(‘email’)/sendmail”
$response = Invoke-SecuredRestMethod –Method “POST” -AccessToken $token -EndpointUri $url –Body ($body | ConvertTo-Json $body –Depth 4)
![Page 46: SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in heaven](https://reader034.vdocuments.site/reader034/viewer/2022042906/58a5cd791a28ab6c2a8b5ae3/html5/thumbnails/46.jpg)
DevOps with PowerShell in Office 365
![Page 47: SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in heaven](https://reader034.vdocuments.site/reader034/viewer/2022042906/58a5cd791a28ab6c2a8b5ae3/html5/thumbnails/47.jpg)
First… What is DevOps ?⊕ DevOps (a clipped compound of “development”
and “operations”) is a software development method that stresses communication, collaboration, integration, automation and measurement of cooperation between software developers and other information-technology (IT) professionals.
![Page 48: SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in heaven](https://reader034.vdocuments.site/reader034/viewer/2022042906/58a5cd791a28ab6c2a8b5ae3/html5/thumbnails/48.jpg)
What it means to me…⊕ Automate everything you can (developers can
help!)⊕ Ensure that every configuration can be
replicated anywhere at any time⊕ Gain a maximum of control over your
deployments⊕ Are you scared of your users ?
![Page 49: SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in heaven](https://reader034.vdocuments.site/reader034/viewer/2022042906/58a5cd791a28ab6c2a8b5ae3/html5/thumbnails/49.jpg)
In the Office 365 world, it means…⊕ Every artifact that is created needs to be
scripted or automatically provisioned⊕ Users⊕ Mailboxes⊕ SharePoint
⊕ Sites⊕ Columns⊕ Content Types⊕ Lists⊕ …
⊕ …
![Page 50: SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in heaven](https://reader034.vdocuments.site/reader034/viewer/2022042906/58a5cd791a28ab6c2a8b5ae3/html5/thumbnails/50.jpg)
Export SharePoint site configuration
Demo
![Page 51: SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in heaven](https://reader034.vdocuments.site/reader034/viewer/2022042906/58a5cd791a28ab6c2a8b5ae3/html5/thumbnails/51.jpg)
Export SharePoint site configurationConnect-SPOnline –Url https://tenant.sharepoint.com
Get-SPOProvisioningTemplate –Out C:\template.xml -PersistComposedLookFiles
![Page 52: SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in heaven](https://reader034.vdocuments.site/reader034/viewer/2022042906/58a5cd791a28ab6c2a8b5ae3/html5/thumbnails/52.jpg)
Import SharePoint site configuration
Demo
![Page 53: SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in heaven](https://reader034.vdocuments.site/reader034/viewer/2022042906/58a5cd791a28ab6c2a8b5ae3/html5/thumbnails/53.jpg)
Import SharePoint site configurationConnect-SPOnline –Url https://tenant.sharepoint.com
Apply-SPOProvisioningTemplate –Path C:\template.xml
![Page 54: SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in heaven](https://reader034.vdocuments.site/reader034/viewer/2022042906/58a5cd791a28ab6c2a8b5ae3/html5/thumbnails/54.jpg)
PowerShell for Office 365 Resources
![Page 55: SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in heaven](https://reader034.vdocuments.site/reader034/viewer/2022042906/58a5cd791a28ab6c2a8b5ae3/html5/thumbnails/55.jpg)
PowerShell for Office 365 Resources⊕ PowerShell for Office 365
⊕ http://powershell.office.com⊕ Microsoft Online Services Sign-In Assistant for IT
Professionals⊕ http://www.microsoft.com/en-us/download/details.aspx?id=41950
⊕ SharePoint Online Management Shell⊕ http://www.microsoft.com/en-us/download/details.aspx?id=35588
⊕ Windows PowerShell Module for Skype for Business Online
⊕ http://www.microsoft.com/en-us/download/details.aspx?id=39366
![Page 56: SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in heaven](https://reader034.vdocuments.site/reader034/viewer/2022042906/58a5cd791a28ab6c2a8b5ae3/html5/thumbnails/56.jpg)
PowerShell for Office 365 Resources⊕ Azure Active Directory Module for Windows
PowerShell⊕ http://go.microsoft.com/fwlink/p/?linkid=236298 (32-bit Version)⊕ http://go.microsoft.com/fwlink/p/?linkid=236297 (64-bit Version)
⊕ OfficeDevPnP.PowerShell Commands⊕ https://
github.com/OfficeDev/PnP/tree/master/Solutions/PowerShell.Commands
⊕ PimpTheCloud PowerShell Office 365 Modules⊕ https://github.com/PimpTheCloud/PTC.O365.PowerShell
![Page 57: SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in heaven](https://reader034.vdocuments.site/reader034/viewer/2022042906/58a5cd791a28ab6c2a8b5ae3/html5/thumbnails/57.jpg)
PowerShell for Office 365 Resources⊕ Gary Lapointe “PowerShell and SharePoint
Online REST” articles⊕ http://
www.itunity.com/article/sharepoint-rest-service-windows-powershell-1381
⊕ http://www.itunity.com/article/custom-windows-powershell-function-sharepoint-rest-service-calls-1985
⊕ http://www.itunity.com/article/working-lists-list-items-sharepoint-rest-service-windows-powershell-2077
⊕ http://www.itunity.com/article/working-folders-files-sharepoint-rest-service-powershell-2159
![Page 58: SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in heaven](https://reader034.vdocuments.site/reader034/viewer/2022042906/58a5cd791a28ab6c2a8b5ae3/html5/thumbnails/58.jpg)
Conclusion
![Page 59: SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in heaven](https://reader034.vdocuments.site/reader034/viewer/2022042906/58a5cd791a28ab6c2a8b5ae3/html5/thumbnails/59.jpg)
Thanks to all of our Sponsors!
![Page 60: SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in heaven](https://reader034.vdocuments.site/reader034/viewer/2022042906/58a5cd791a28ab6c2a8b5ae3/html5/thumbnails/60.jpg)
SharePint !At the Observatory Student Pub in
Building A
4:10 pm: New! Experts’ Panel Q&A
4:30 pm: Prizes and Giveaways4:45 pm: Wrap-up and SharePint!Parking: No need to move your
car!*If you don’t know where the Observatory is, ask an organizer or a volunteer for directions.*Please drive responsibly! We are happy to call you a cab