Private/Get-DeviceInfo.ps1
|
function Get-DeviceInfo { param ( [Parameter(Mandatory = $true)] [string]$DeviceName ) $selectProps = "id,displayName,operatingSystem,operatingSystemVersion,managementType,deviceOwnership,trustType,isCompliant,isManaged,approximateLastSignInDateTime,manufacturer,model,enrollmentProfileName" $escapedName = $DeviceName -replace "'", "''" $deviceUri = "$GraphEndpoint/beta/devices?`$filter=displayName eq '$escapedName'&`$select=$selectProps" try { $deviceResponse = Invoke-MgGraphRequest -Uri $deviceUri -Method Get } catch { return @{ Id = $null DisplayName = $DeviceName OperatingSystem = $null Success = $false MultipleFound = $false AllDevices = $null } } if ($deviceResponse.value.Count -gt 1) { return @{ Id = $null DisplayName = $DeviceName OperatingSystem = $null Success = $false MultipleFound = $true AllDevices = $deviceResponse.value } } if ($deviceResponse.value.Count -eq 1) { return @{ Id = $deviceResponse.value[0].id DisplayName = $deviceResponse.value[0].displayName OperatingSystem = $deviceResponse.value[0].operatingSystem Success = $true MultipleFound = $false AllDevices = $null } } return @{ Id = $null DisplayName = $DeviceName OperatingSystem = $null Success = $false MultipleFound = $false AllDevices = $null } } |