← Watts next?
Microsoft Places · 5 min read

Places Toolbox: every Microsoft Places cmdlet, minus the typing

A free, open-source Windows app that puts the Microsoft Places PowerShell module into forms, with dry-runnable recipes for the bulk jobs.

Microsoft Places is brilliant right up to the moment someone says “can you set up 400 desks by Friday?”

The admin centre is fine for a handful of places. At scale it’s PowerShell, and the Places cmdlets have some lovely quirks. Workspaces are called Space in one place and Workspace in another. Desk modes live in a metadata dictionary. Set-PlacesSettings wants scope strings with group object IDs in them. After the third site I’d stopped remembering syntax and started keeping a folder of scripts I was slightly afraid of.

So I turned the folder into an app. It’s called Places Toolbox, it’s free, and it’s on GitHub: robwatts365/PlacesPowerShell-Toolbox.

What it is

Places Toolbox home page: setup on the left, connections on the right, live log underneath

Places Toolbox is a Windows app (an HTA, if you remember those) that sits on top of the Microsoft Places PowerShell module. You pick a cmdlet, fill in a form, check the command preview and choose Run. Everything runs in one signed-in PowerShell 7 session, so you connect once and variables stick around between runs. $Last always holds the previous results.

All 19 documented Places cmdlets have a form, from Connect-MicrosoftPlaces through Get-PlaceV3, New-Place, Push-Dataset, New-Map and the device and sensor cmdlets. The form generator deals with the parameter quirks for you, and the place picker is backed by your live hierarchy, so you’re choosing buildings and floors rather than pasting names and hoping.

The destructive ones (Remove-Place, Remove-Map, Set-PlacesSettings, Set-PlaceDevice and Remove-PlaceDevice) show you the exact command and ask before they do anything.

The recipes are the point

The forms save typing. The recipes save afternoons. These are my field scripts, turned into repeatable jobs that run from a CSV, and every CSV recipe has a dry run. A dry run checks each row against your live buildings, floors and sections and tells you what would happen, without changing a thing. Run it, fix the typos in the CSV, run it again, and only then do it for real.

A few of the ones I reach for most:

Each recipe has an Open CSV template button that drops a starter file into your output folder, so you’re never staring at a blank spreadsheet wondering what the column is called.

Getting going

You need Windows 10 or 11, PowerShell 7.4 or later and the MicrosoftPlaces module (2.0.0 or later is best). The Home page installs or updates the module for you, plus the optional Exchange and Graph modules if you want the calendar and licence recipes.

  1. Download or clone the repo. If you grabbed a zip, unblock it before extracting: right-click, Properties, Unblock.
  2. Double-click PlacesToolbox.hta.
  3. On Home, install anything missing, then choose Connect next to Microsoft Places.
  4. Pick a cmdlet or recipe, fill it in and run it. For recipes, Dry run first. Always.

Roles-wise you need Places Administrator, Exchange Administrator or a custom role with TenantPlacesManagement. Roles assigned through an Entra group aren’t honoured by Places, so assign them directly. Yes, I found that out the long way.

Good to know

The recipe functions also work without the UI. Dot-source engine\PlacesToolbox.Recipes.ps1 after defining a few stub logging functions and you can call them from your own scripts.

Over to you

It’s version 1, and I’m sure there are cmdlets and edge cases I haven’t hit yet. If something breaks, or you’ve got a recipe you wish it had, open an issue on GitHub and tell me. It’s MIT licensed, so fork it, bend it and make it yours.

If it saves you an afternoon, you know where the beer button is. It’s on the About page.

Places Toolbox is an independent community tool. It isn’t made, endorsed or supported by Microsoft. Views are my own.