I have a python script that pulls all the switch / port / client data for our org. You can see AP's by name in the lldp field, and the switch port settings (access, trunk, and associated vlans,. It's a down and dirty script, but will output a csv file and you can just filter on the APs. You can use a similar API to go correct them once you have a list. Not sure how this will come across but shoot me a note if you have a question.
# Start of python file -------
import meraki
import json
import csv
import os
from datetime import datetime
API_KEY = os.environ.get('MERAKI_API')
organization_id = os.environ.get('MERAKI_ORG')
dashboard = meraki.DashboardAPI(API_KEY, output_log=False, print_console=False)
now = datetime.now()
dt_string = now.strftime("%m/%d/%Y %H:%M:%S %Z")
dtFilename = now.strftime("%m-%d-%Y_")
print(dt_string)
print(dtFilename)
clientDatafile = dtFilename+'ClientData.csv'
try:
datafile = open(clientDatafile, 'w', newline='')
csv_writer = csv.writer(datafile)
except Exception as error:
print("Error: ", error )
exit(error)
count = 0
networks = dashboard.organizations.getOrganizationNetworks(
organization_id, total_pages='all'
)
print('Client Listing : ', clientDatafile )
for network in networks:
print('Network ID: ' + network['id'] + ' Name: ' + network['name'])
try:
clients = dashboard.networks.getNetworkClients(
network['id'], timespan=2592000, total_pages='all', perPage='1000'
)
except:
print('opps')
for client in clients:
if count == 0:
header = client.keys()
csv_writer.writerow(header)
count += 1
csv_writer.writerow(client.values())
# End of python file.