Public/Kandji-GetDeviceDetails.ps1

function Kandji-GetDeviceDetails {
    <#
    .SYNOPSIS
        Returns an array of all enrolled devices in Kandji

    .DESCRIPTION
        Helper function to return all enrolled devices in Kandji

    .PARAMETER Token
        Kandji API token that can retrieve devices

    .PARAMETER SubDomain
        The SubDomain of your Kandji instance

    .PARAMETER Device ID
        The Device ID of your device

    .EXAMPLE
        Input String: <Token>
        Input String: <SubDomain>
        Input String: <Device ID>
        Return Array: @{Device Details}

    .NOTES
        This returns all devices regardless of status

    .FUNCTIONALITY
        Powershell Language
    #>

    [CmdletBinding()]
    param (
        [Parameter(
            Position = 0
        )][string]$Token,
        [Parameter(
            Position = 1
        )][string]$SubDomain,
        [Parameter(
            Position = 2
        )][string]$DeviceID
    )

    $uri = "https://$SubDomain.api.kandji.io/api/v1/devices/$DeviceID/details"

    $headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
    $headers.Add("Authorization", "Bearer $Token")

    $ProgressPreference = 'SilentlyContinue'
    $device = (Invoke-WebRequest -Uri $uri -Headers $headers -Method Get).Content | ConvertFrom-Json -Depth 100
    $ProgressPreference = 'Continue' 

    return $device
}