Microsoft Places will be rolled out soon
Hi All,
In the M365 Message Center is the annoucement that in December Microsoft Places will be rolled out in early December.
I’ve already blogged about Microsoft Places Preview a few months ago.
In the past Weeks the Microsoft Places Licencse has been rolled out to all Tenants
List Service Plans of an SKU with Microsoft.Graph PowerShell
Connect-MgGraph -Scopes Directory.Read.All -NoWelcome
Get-MgSubscribedSku | ft SkuId, SkuPartNumber, ServicePlans
Get-MgSubscribedSku | where {$_.SkuPartNumber -eq "ENTERPRISEPACK"} | select -ExpandProperty ServicePlans
PowerShell Module
Today the MicrosoftPlaces PowerShell Module was released in the Version 1.0.0. It requires PowerShell 7.4
- PowerShell Gallery MicrosoftPlaces
Release Notes:
Version 1.0.0
- Official release of Microsoft Places module.
Version 0.46.0
- Add Support for Section for Initialize-Places Import/Export/Script generation.
Version 0.45.0
- Add Get-Help documentation for PlacesDirectory cmdlets.
- Set EnableBuildings setting to true at Initialize-Places Import.
Version 0.44.0
- Set-PlacesSettings: Deprecate the EnablePlacesMobileApp parameter
Version 0.42.0
- [Directory] Support for individual desks.
Version 0.41.0
- [Maps] Better error handling and reliability improvements for maps cmdlets.
Version 0.40.0
- Add support for WorkplaceWifiNetworkSSIDList setting in Get-PlacesSettings and Set-PlacesSettings
- Add support for pipe operations for New-Place, Get-PlaceV3, Set-PlaceV3, Remove-Place
Version 0.39.0
- Address the conflict with ExchangeOnline module.
Version 0.38.0
- Fix in Set-Placev3 to allow ParentId property to be cleared when parameter is null
Version 0.37.0
- Added supported PSEditions and Minimum version of the PowerShell engine
Version 0.36.0
- New-Place: Block attempts to create a room or workspace using New-Place
- Set-Placev3: Improved error messages to be more specific to the issue
- [Maps] Remove-map cmdlet
- Get-PlacesSetting: GetSettings output remove descriptor field
Version 0.35.0
- Initialize-Places: Added new bootstrap scenarios for Room with multiple Roomlists and Building label
- New-Place: Allow setting SortOrder on a floor when setting up via New-Place
- Remove-Place: Update to use -Identity as the parameter name rather than -Id
- Deprecate the PostOfficeBox parameter on buildings
- Deprecate the ParentType parameter, so that only ParentId parameter is required
Version 0.34.0
- Fix Import-MapCorrelations cmdlet to ingore manifest.json in imdf.zip file
- Fix a null reference error and malformed output path prompt in Import-MapCorrelations cmdlet
Version 0.33.0
- Add support for SpaceAnalyticsBuildingsList setting in Get-PlacesSettings and Set-PlacesSettings
Version 0.32.0
- Update Get-PlaceV3 & Set-PlaceV3 to support Identity format as Name_GUID for v3 entities
I am using the new PSResourceGet here instead of the PowerShellGet commands.
Show installed Versions and what’s available in PowerShell Gallery
Get-InstalledPSResource MicrosoftPlaces
Find-PSResource MicrosoftPlaces
Uninstall the old Modules and install the current Module
Uninstall-PSResource MicrosoftPlaces -Scope CurrentUser
Install-PSResource MicrosoftPlaces -Scope CurrentUser
Get-InstalledPSResource MicrosoftPlaces
List the commands of the Module
Get-Command -Module MicrosoftPlaces
You need the “Exchange Administrator” Role or an Exchange Online RBAC Role with the TenantPlacesManagement Role
Import-Module MicrosoftPlaces
Connect-MicrosoftPlaces
Get-PlacesSettings -ReadFromPrimary
The Microsoft Places Web App with the Property “Places.EnablePlacesWebApp” is currently disabled and will be enabled in December.
Enable PlacesWebApp by default
#Enable PlacesWebApp
Set-PlacesSettings -EnablePlacesWebApp "Default:true"
Get-PlacesSettings -ReadFromPrimary
#Enable Buildings
Set-PlacesSettings -EnableBuildings 'Default:true'
#Enable Finder
Set-PlacesSettings -PlacesFinderEnabled 'Default:true'
Enable PlacesWebApp for a specific group (Distribution Group or Mail enabled Security Group)
Format:
Default:True|False,OID:MailEnabledSecurityGroupGuid@TenantID:True|False,OID:2ndGroupGuid@TenantID:True|False
Set-PlacesSettings -PlacesEnabled "Default:false,OID:41efed8d-b0d1-450b-9fe9-da949207992f@46bbad84-29f0-4e03-8d34-f6841a5071ad:true"
Get-PlacesSettings -ReadFromPrimary
$Places = Get-PlacesSettings -ReadFromPrimary
$Places | where {$_.Name -eq "Places.EnablePlacesWebApp"} | select -ExpandProperty ScopedValues | fl
Paces Web App
It took quite a while until the Places WebApp was available. Would say about 4 Hours or so.
You can add Poeople you work with
Looks like this
There is also a Teams App called “Places”
Configure Buildings, Floors, Sections, Desks
Let’s list what’s configured
Get-PlaceV3 | ft
Let me create a Desk Mailbox. You can change an Exchange Online Mailbox to type “Desk” but sadly it’s not represented ind RecipientTypeDetails.
Connect-ExchangeOnline -ShowBanner:$false
$DeskMailbox = New-Mailbox -DisplayName "Desk01" -Alias "Desk01" -Name "Desk01" -PrimarySmtpAddress "Desk01@icewolf.ch" -Room
Set-Mailbox -Identity $DeskMailbox -Type Desk
Get-Mailbox -Identity $DeskMailbox | ft DisplayName, Alias, PrimarySMTPAddress, RecipientTypeDetails
You can also create an Exchange Online Mailbox of type Workspace
$WorkspaceMailbox = New-Mailbox -DisplayName "Workspace01" -Alias "Workspace01" -Name "Workspace01" -PrimarySmtpAddress "Workspace01@icewolf.ch" -Room
Set-Mailbox -Identity $WorkspaceMailbox -Type Workspace
Get-Mailbox -Identity $WorkspaceMailbox | ft DisplayName, Alias, PrimarySMTPAddress, RecipientTypeDetails
Let’s create Building, Floor, Section and Desk. You need to add the PlaceID to ParentID to create a hierarchy.
$Building = New-Place -Type "Building" -Name "Building HQ" -Description 'Icewolf HQ Building' -CountryOrRegion "CH" -State "BE" -City "Bern" -Street "Robinsonweg 50" -PostalCode "3006"
$Floor = New-Place -Type "Floor" -Name '3' -ParentId $Building.PlaceID
$Section = New-Place -Type "Section" -Name "Main Section" -ParentId $Floor.PlaceID
$Desk = New-Place -Type "Desk" -Name "Desk01" -ParentId $Section.PlaceId -Mailbox $DeskMailbox.Alias
Let’s look at the configuration now. When Removing a Place you need to start at the bottom of your hierarchy and need to use the PlacesID. Piping from Get-Place does not work. Anyway it’s a little bit disturbing that the command is not named Remove-PlaceV3.
Get-PlaceV3 | ft
#Removing a Place
Remove-Place -Identity <PlaceID>
You can Filter the Places by diffrent types
Get-PlaceV3 -Type Building | ft
Get-PlaceV3 -Type Floor | ft
Get-PlaceV3 -Type Section | ft
Get-PlaceV3 -Type Desk | ft
Get-PlaceV3 -Type RoomList | ft
Get-PlaceV3 -Type Room | ft
Get-PlaceV3 -Type Space | ft
The old Exchange Commandlet “Get-Place” does not show Buildings, Floors and Section. I guess it will soon disappear.
Connect-ExchangeOnline -ShowBanner:$false
Get-Place
There is also another way of Configure buildings and floors
Initialize-Places
That’s how the CSV looks like
InferredBuildingName,InferredFloorName,InferredSectionName,CurrentBuildingLabel,CurrentFloorNumber,CurrentFloorLabel,PrimarySmtpAddress,Name,RoomList,ResourceType,StreetAddress,City,StateOrProvince,CountryOrRegion,Confidence
,,,,,,RoomOnPrem@icewolf.ch,SitzungszimmerOnPrem,"Roomlist BE,Roomlist BE OnPrem",Room,The Circle 38,Zürich,ZH,CH,
,,,,,,SitzungszimmerMoench@icewolf.ch,SitzungszimmerMoench,"Roomlist BE,Roomlist BE OnPrem",Room,Robinsonweg 50,Bern,BE,CH,
Building HQ,Unknown,,,,,SitzungszimmerJungfrau@icewolf.ch,SitzungszimmerJungfrau,Roomlist BE,Room,Robinsonweg 50,Bern,BE,CH,High
Building HQ,1,,,1,,SitzungszimmerCloudOnly@icewolf.ch,SitzungszimmerCloudOnly,Roomlist BE Cloud,Room,Robinsonweg 50,Bern,BE,CH,High
Roomlist ZH,Unknown,,,,,sitzungszimmer@icewolf.ch,Sitzungszimmer,Roomlist ZH,Room,Hofwiesenstrasse 369,Zürich,ZH,CH,High
Building HQ,2,,,2,,SitzungszimmerEiger@icewolf.ch,SitzungszimmerEiger,Roomlist BE,Room,Robinsonweg 52,Bern,BE,CH,High
Regards
Andres Bohren