Public/Get-MerakiOrganizationClientsSearch.ps1
function Get-MerakiOrganizationClientsSearch { <# .SYNOPSIS Searches for clients in a Meraki organization based on MAC address. .DESCRIPTION The Get-MerakiOrganizationClientsSearch function searches for clients in a specified Meraki organization based on MAC address. You must provide a Meraki API key using the AuthToken parameter, and the MAC address of the client to search for using the mac parameter. .PARAMETER AuthToken The Meraki API key to use for authentication. .PARAMETER mac The MAC address of the client to search for. .PARAMETER OrgId The ID of the Meraki organization to search for the client in. If not specified, the function will use the ID of the first organization returned by the Get-MerakiOrganizations function. .PARAMETER perPage The number of search results to return per page. If not specified, the API will return a maximum of 1000 results. .PARAMETER startingAfter A token representing the client to start the search after. Only results after this client will be returned. .PARAMETER endingBefore A token representing the client to end the search before. Only results before this client will be returned. .EXAMPLE PS C:\> Get-MerakiOrganizationClientsSearch -AuthToken "12345" -mac "00:11:22:33:44:55" -OrgId "67890" Searches for a client with the MAC address "00:11:22:33:44:55" in the Meraki organization with ID 67890 using the API key "12345". .NOTES For more information about the Meraki API, see https://developer.cisco.com/meraki/api/. #> [CmdletBinding()] param ( [Parameter(Mandatory=$true)] [string]$AuthToken, [Parameter(Mandatory=$true)] [string]$mac, [Parameter(Mandatory=$false)] [string]$OrganizationID = (Get-OrgID -AuthToken $AuthToken), [Parameter(Mandatory=$false)] [string]$perPage, [Parameter(Mandatory=$false)] [string]$startingAfter, [Parameter(Mandatory=$false)] [string]$endingBefore ) If($OrganizationID -eq "Multiple organizations found. Please specify an organization ID.") { Return "Multiple organizations found. Please specify an organization ID." } else { try { $header = @{ 'X-Cisco-Meraki-API-Key' = $AuthToken } $queryParams = @{} $queryParams['mac'] = $mac if ($perPage) { $queryParams['perPage'] = $perPage } if ($startingAfter) { $queryParams['startingAfter'] = $startingAfter } if ($endingBefore) { $queryParams['endingBefore'] = $endingBefore } $queryString = New-MerakiQueryString -queryParams $queryParams $URL = "https://api.meraki.com/api/v1/organizations/$OrganizationID/clients/search?$queryString" $URI = [uri]::EscapeUriString($URL) $response = Invoke-RestMethod -Method Get -Uri $URI -Header $header -UserAgent "MerakiPowerShellModule/1.0.2 DocNougat" return $response } catch { Write-Error $_ } } } |