Set-PlaceV3
Use the Set-PlaceV3 cmdlet to update metadata about your rooms, workspaces, floors, or buildings within your Places directory.
Note
- Updates to conference rooms & workspaces can take up to 24 hours to reflect. If you need to onboard multiple rooms and workspaces, we recommend using
Initialize-Places
, which is able to force the changes to reflect immediately. - The Set-UserPhoto was deprecated in April 2024. We're working on adding a parameter to this cmdlet to set a photo on rooms and workspaces when using Set-PlaceV3. In the meantime, follow these instructions to set the photo on a room or workspace.
Syntax
Building
Set-PlaceV3
[-Identity]
[-DisplayName]
[-Label]
[-IsWheelChairAccessible]
[-GeoCoordinates]
[-Phone]
[-Street]
[-City]
[-State]
[-PostalCode]
[-CountryOrRegion]
[-ResourceLinks]
[-Tags]
Floor
Set-PlaceV3
[-Identity]
[-DisplayName]
[-ParentId]
[-Label]
[-SortOrder]
[-Tags]
Section
A section is a grouping of spaces within a floor, for example, a neighborhood. Desks and workspaces are required to be parented to a section. Rooms can also optionally be parented to a section or they can be directly parented to a floor.
Set-PlaceV3
[-Identity]
[-DisplayName]
[-ParentId]
[-Label]
[-Tags]
Desk
Desks are a new entity type in Places, which represent individual desks. These objects can be either bookable or non-bookable (default).
To make a desk bookable, you are required to create a Desk mailbox and associate it with the desk object by passing the mailbox Alias
to the Mailbox
parameter of Set-PlaceV3
. Please note that unlike the Room/Workspace types, desks are not implicitly provisioned by creating the mailbox alone. Also, the metadata (such as the Capacity
or DisplayName
fields) is not kept in sync with mailbox metadata. Mailbox is primarily required for the reservation engine only and metadata will be read from Places Directory.
Set-PlaceV3
[-Identity]
[-DisplayName]
[-ParentId]
[-Label]
[-IsWheelChairAccessible]
[-AudioDeviceName]
[-DisplayDeviceName]
[-VideoDeviceName]
[-MTREnabled]
[-Name]
[-Tags]
[-Mailbox]
Room or Workspace
Set-PlaceV3 supports legacy location parameters already exposed in Exchange Set-Place cmdlet. However, once a room is linked to a floor/building using the -ParentId
parameter, location information (Street
, City
, etc.) should be managed on the Building rather than on the room or workspace.
Set-PlaceV3
[-Identity]
[-DisplayName]
[-ParentId]
[-Label]
[-Capacity]
[-IsWheelChairAccessible]
[-AudioDeviceName]
[-DisplayDeviceName]
[-VideoDeviceName]
[-MTREnabled]
[-GeoCoordinates]
[-Phone]
[-Street]
[-City]
[-State]
[-PostalCode]
[-CountryOrRegion]
[-Building]
[-Floor]
[-FloorLabel]
[-Tags]
Description
Places depends on a fully set up hierarchy among your rooms/workspaces, floors, and buildings. Once buildings and floors are created, you can link them using parentId. A room should have a parent floor or section. A workspace or desk should have a parent section. A section should have a parent floor. A floor should have a parent building.
You need to be assigned permissions before you can run this cmdlet. You must have either the Exchange Admin role or the Places TenantPlacesManagement role.
Caution
You might find additional parameters in the PowerShell cmdlet, but those are not currently supported. It is not recommended to use any parameter that is not documented on this page.
Examples
Example 1
This example sets up the directory hierarchy for a room, floor, and building.
In this example, the floor's PlaceId is f12172b6-195d-4e6e-8f4f-eb72e41de99a, and the building's PlaceId is daa2f89b-75c4-4eb7-adcc-ff249233338d.
Set-PlaceV3 -Identity 'room@contoso.com' -ParentId f12172b6-195d-4e6e-8f4f-eb72e41de99a
Set-PlaceV3 -Identity f12172b6-195d-4e6e-8f4f-eb72e41de99a -ParentId daa2f89b-75c4-4eb7-adcc-ff249233338d
Example 2
This example updates a building's address.
Set-PlaceV3 -Identity f12172b6-195d-4e6e-8f4f-eb72e41de99a -CountryOrRegion US -State WA -City Redmond -Street 'Street 3' -PostalCode 98052
Example 3
This example updates a building's geocoordinates.
Set-PlaceV3 -Identity f12172b6-195d-4e6e-8f4f-eb72e41de99a -GeoCoordinates "47.644125;-122.122411"
Example 4
This example updates the resource links for a building with resource links. The entire set is replaced on update. To add or remove a value, be sure to include previous values that should be persisted.
Set-PlaceV3 -Identity f12172b6-195d-4e6e-8f4f-eb72e41de99a -ResourceLinks @{name="TestLink";value="https://contoso.com/";type="Url"}
Example 5
This example creates a desk mailbox and assigns it to an existing desk entity. Please note that you need to have installed ExchangeOnlineManagement
module and ran the Connect-ExchangeOnline
cmdlet before running the following:
$mbx = New-Mailbox -Room <DeskMailboxName>
Set-Mailbox $mbx.Identity -Type Desk -HiddenFromAddressListsEnabled $true
Set-PlaceV3 {DeskId} -Mailbox $mbx.Alias
Parameters
-Identity
The identity parameter specifies the place that you want to update. You can use any value that uniquely identifies a place.
For example, for places based on a mailbox (conference rooms and workspaces):
- Name
- Alias
- Distinguished name (DN)
- Canonical DN
- Email address
- GUID
For example, for places that aren't based on a mailbox (buildings, floors, sections and desks):
- Name
- GUID
Attribute | Description |
---|---|
Type: | RecipientIdParameter |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-AudioDeviceName, -DisplayDeviceName, and VideoDeviceName
These parameters specify the name of the audio, display and video devices in the room. If the value contains spaces, enclose the value in quotation marks (").
The default value is blank ($null). To indicate that this room has no audio, display or video device, use the value $null for the parameter.
Attribute | Description |
---|---|
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Building
Important
Building parameter is deprecated and provided here for backward compatibility only. Building information will be read from the Building entity that's on the parent chain of the room or workspace.
The Building parameter specifies the building name or building number that the room is in. If the value contains spaces, enclose the value in quotation marks (").
Attribute | Description |
---|---|
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Capacity
The Capacity parameter specifies the capacity of the room. A valid value is an integer.
Attribute | Description |
---|---|
Type: | System.Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-City
The City parameter specifies the building's city. If the value contains spaces, enclose the value in quotation marks ("). The maximum length is 200 characters.
We recommend managing the location data on the Building rather than the Room/Workspace. There's a hierarchy between rooms -> floors -> buildings, and rooms inherit the location attributes of their Building.
Attribute | Description |
---|---|
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-CountryOrRegion
The CountryOrRegion parameter specifies the building's country or region. A valid value is a valid ISO 3166-1 two-letter country code (for example, AU for Australia) or the corresponding friendly name for the country (which might be different from the official ISO 3166 Maintenance Agency short name).
A reference for two-letter country codes is available at Country Codes List.
We recommend managing the location data on the Building rather than the Room/Workspace. There's a hierarchy between rooms -> floors -> buildings, and rooms inherit the location attributes of their Building.
Attribute | Description |
---|---|
Type: | CountryInfo |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Label
The Label parameter specifies a descriptive label for the place. If the value contains spaces, enclose the value in quotation marks ("). The maximum length is 200 characters.
For rooms and workspaces, the command updates the value named -Label in Exchange Set-Place.
Attribute | Description |
---|---|
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-DisplayDeviceName
The DisplayDeviceName parameter specifies the name of the display device in the room. If the value contains spaces, enclose the value in quotation marks (").
The default value is blank ($null). To indicate that this room has no display device, use the value $null for this parameter.
Attribute | Description |
---|---|
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-FloorLabel
The FloorLabel parameter specifies a descriptive label for the floor. If the value contains spaces, enclose the value in quotation marks (").
Attribute | Description |
---|---|
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Floor
The Floor parameter specifies the sort order of the floor within a particular building.
Attribute | Description |
---|---|
Type: | System.Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-GeoCoordinates
The GeoCoordinates parameter specifies the building's location in latitude, longitude, and (optionally) altitude coordinates. A valid value for this parameter uses one of the following formats:
- Latitude and longitude: For example, "47.644125;-122.122411"
- Latitude, longitude, and altitude: For example, "47.644125;-122.122411;161.432"
If period separators don't work for you, use commas instead.
We recommend managing the location data on the Building rather than the Room/Workspace. There's a hierarchy between rooms -> floors -> buildings, and room's will inherit the location attributes of their Building.
Attribute | Description |
---|---|
Type: | GeoCoordinates |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-IsWheelChairAccessible
The IsWheelChairAccessible parameter specifies whether the place is wheelchair accessible. Valid values are:
- $true: The place is wheelchair accessible.
- $false: The place isn't wheelchair accessible. This is the default value.
Attribute | Description |
---|---|
Type: | Boolean |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-MTREnabled
Note
Currently, this parameter is informational only and results in no additional functionality.
The MTREnabled parameter identifies the room as configured with a Microsoft Teams room system. You can add Teams room systems as audio sources in Teams meetings that involve the room. Valid values are:
- $true: The room has a Teams room system. You can add the Teams room system to Microsoft Teams meetings when selecting to join a meeting with room audio.
- $false: The room doesn't have a Teams room system. Users can join Teams meetings using their PC or mobile device audio instead of using room audio. This is the default value.
For more information about Microsoft Teams Rooms, see Microsoft Teams Rooms.
Attribute | Description |
---|---|
Type: | Boolean |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DisplayName
The DisplayName parameter specifies the display name of the place. The maximum length is 200 characters. Set-PlaceV3 can only update the name of places that don't have an associated SMTP address, such as buildings and floors. To update the display name of a place that has an associated SMTP address such as conference rooms and workspaces, use the Exchange Set-Mailbox cmdlet.
Attribute | Description |
---|---|
Type: | String |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ParentId
The ParentId parameter specifies the ID of a Place in the parent location hierarchy in Microsoft Places. A room should have a parent floor or section. A workspace or desk should have a parent section. A section should have a parent floor. A floor should have a parent building.
Note
If you need backward compatibility with Outlook Roomfinder, please make sure to also update the "Floor"/"FloorLabel" properties, in parallel with parenting the room to the floor entity. Places Finder will use the new hierarchy while Outlook Roomfinder will cotinue to use the legacy "Floor" and "FloorLabel" objects. You will also need to make sure the room is associated with a Roomlist, as documented here Configure rooms and workspaces for Room Finder in Outlook.
Attribute | Description |
---|---|
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-PostalCode
The PostalCode parameter specifies the building's postal code.
Attribute | Description |
---|---|
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ResourceLinks
The ResourceLinks parameter specifies external links or Teams app IDs that should be associated to this building, such as a dining menu, a link to services or a Teams app for visitor management. For more information on how to set up services in Places, see Services in Places.
The value must be provided as an array of links, as shown in Example 4. Each link should contain the following properties: Name, Value, and Type. For example, a link would be written as @{name="TestLink"; value="https://contoso.com/"; type="Url"}.
Name
This string is used to show how your link or app name is displayed in the Places app.
The maximum length is 200 characters.
Value
This value should be either a url link or a Teams app ID. Teams app IDs can be found in the App Details page of the app in the Manage apps page in Teams admin center.
The maximum length is 1,000 characters.
Type must be one of the supported types:
Url - indicates that this is a url link.
MetaOsApp - indicates that this link is a Teams app.
Note
The entire set will be replaced on update. To add or remove a value, be sure to include previous values that should be persisted.
Attribute | Description |
---|---|
Type: | Link[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SortOrder
The SortOrder parameter specifies the sort order of the floor. For example, a floor might be named "Lobby" with a sort order of 0 to show this floor first in ordered lists.
Attribute | Description |
---|---|
Type: | System.Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-State
The State parameter specifies the building's state or province. The maximum length is 200 characters.
We recommend managing the location data on the Building rather than the Room/Workspace. There's a hierarchy between rooms -> floors -> buildings, and room inherits the location attributes of their Building.
Attribute | Description |
---|---|
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Street
The Street parameter specifies the building's physical address. The maximum length is 200 characters.
We recommend managing the location data on the Building rather than the Room/Workspace. There's a hierarchy between rooms -> floors -> buildings, and rooms inherit the location attributes of their Building.
Attribute | Description |
---|---|
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Tags
The Tags parameter specifies additional features of the room (for example, details like the type of view or furniture type). There's no maximum length currently.
You can specify multiple labels separated by commas. If the labels contains spaces, enclose the values in quotation marks: "Label 1","Label 2",..."Label N"
.
Note
The entire set will be replaced on update. To add or remove a value, be sure to include previous values that should be persisted.
Attribute | Description |
---|---|
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Troubleshooting
I am receiving a permissions denied error.
Set-PlaceV3 requires one of the following roles: TenantPlacesManagement, GlobalAdmin, or MailRecepients. Because roles can be assigned in different ways, the following are the supported ways to assign role permissions:
- If the permission is assigned through Exchange Admin Center (which only supports permanent permissions), you should have no issues with using the Places cmdlets. It would not be expected for you to see a Permission Denied error.
- If the permission is assigned through Entra directly to the user (as a permanent or a temporary role), you should have no issues with using the Places cmdlets. It would not be expected for you to see a Permission Denied error. However, there might be some delay in the sync between Entra and Exchange.
- If the permission is assigned through Entra to a group in Entra, which the user is a part of, this is not supported by Exchange and the role-through-group will not be respected. Exchange cmdlets and Places cmdlets will both fail with permission denied. This expected behavior is described here.
I assigned a ParentId to a resource, but I do not see it yet in Places Finder.
It can take up to 24 hours for the correlation between the resource and its parent Floor to appear in Places experiences. We're working on eliminating this delay.
How do I set a photo on a resource?
The Set-UserPhoto was deprecated in April 2024. We are working on adding a parameter to this cmdlet to set a photo on rooms and workspaces when using Set-PlaceV3. In the meantime, please follow these instructions set the photo on a room or workspace.
It is not currently possible to set photos on a building or on a floor.