You could do it via API and a simple script. 1. Fetch a list of devices. 2. Filter out iPads/iPhones that don't have a tag you want. 3. Assign tag(s). Something like below. It's written in powershell but requires curl to make API calls. One of my early scripts, still works so I never bothered rewriting in pure powershell. # Curl $curl = "c:\curl\bin\curl.exe" # Meraki API headers $api_key = 'X-Cisco-Meraki-API-KEY: XXXXXXXXXXXXXXXX' $content_type = 'Content-Type: application/json' # MDM network id $network_id = 'XXXXXXXXXXXXXX' # Log file $log = 'C:\Scripts\Scheduled Tasks\Tag_assignment_log.csv' ###### Fetch the list of devicess ######## $uri = "https://dashboard.meraki.com/api/v0/networks/$network_id/sm/devices?fields=ip,systemType,lastConnected,diskEncryptionEnabled,hardwareEncryptionCaps,notes,ownerEmail,ownerUsername" $list = (@((& $curl -L -H $api_key -X GET -H $content_type $uri) | ConvertFrom-Json)).devices # Filter iPhones without my_iPhone_tag tag $iphones = @($list | where {$_.systemModel -match "iPhone" -and $_.tags -notcontains "my_iPhone_tag"}) # Add missing my_iPhone_tag tag foreach ($iphone in $iphones) { $binary = '{"ids":"' + $iphone.id + '", "updateAction":"add", "tags":"my_iPhone_tag"}' | ConvertTo-Json $uri = "https://api.meraki.com/api/v0/networks/$network_id/sm/devices/tags" & $curl -L -H $api_key -X PUT -H $content_type --data-binary $binary $uri >> $log }
... View more