A quick [re]post to share how to work with the Universal Printing cmdlets:
Unfortunately, the Universal Print Connector doesn’t upload fields from the on-premises object, such as location and comments. Likely this is because “location” is now represented as over a dozen attributes in Azure.
At some point, someone should walk around to each printer and collect the info to populate the attributes properly, but it won’t be me and it won’t be today. 😊 For now, I chose to map the fields as follows, but you can obviously adjust this as necessary:
- On-premises “Location” = cloud “Site”
- On-premises “Comment” = cloud “Room Description”
There are innumerable ways to do this, but I like the join-object cmdlet, so be sure to install that first.
Install-Module UniversalPrintManagement
Install-Module join-object
#Run from the print server:
$OnPremPrinters = Get-Printer
Connect-UPService
$CloudPrinters = Get-UPPrinter
$Merge = Join-Object -Left $OnPremPrinters -LeftJoinProperty Name -Right $CloudPrinters -RightJoinProperty name -Prefix Cloud_
foreach ($printer in $Merge) {
Set-UPPrinterProperty -PrinterId $printer.Cloud_PrinterId -Site $printer.Location -RoomDescription $printer.Comment
}

That’s a really nice solution Mike – well done.