UI/modules/deviceInventoryHandler.psm1
|
<#
.SYNOPSIS Hadeling IDI .DESCRIPTION Handling of IDI .NOTES Author: Jannik Reinhard #> function Get-IDIAuthenticated{ $IntuneDeviceInventory = Get-InstalledModule -Name "IntuneDeviceInventory" -ErrorAction SilentlyContinue try{ if(-not ($IntuneDeviceInventory)){ Install-Module -Name IntuneDeviceInventory -Scope CurrentUser -Confirm:$false -Force } }catch{ Write-Error "Failed to install Intune Device Inventory from Powershell gallery: $_" return $false } try { Connect-IDI } catch { Write-Error "Failed to authenticate on Graph: $_" return $false } return $true } function Get-AllDevices{ try{ return Get-IDIDevice -All }catch{ Write-Error "Failed to get all devices: $_" return $false } } function Get-RefresDevices{ $global:allDevices = Get-AllDevices $allDevicesGrid = Add-DevicesToGridObject -devices $global:allDevices Add-DevicesToGrid -devices $allDevicesGrid } function Add-DevicesToGridObject { param ( [Parameter(Mandatory = $true)] $devices ) $managedDevicesGridObjects = @() $referenceObject = (Get-noneIDIReference).PSObject.Properties.Name $devices | ForEach-Object { try{ $customInventory = @(($_ | Select-Object -Property * -ExcludeProperty $referenceObject).PSObject.Properties | Select-Object -Property Value, Name) foreach($item in $customInventory){ $item | Add-Member -MemberType NoteProperty -Name "Changed" -Value $null $item | Add-Member -MemberType NoteProperty -Name "UpdateAttribute" -Value $false $item | Add-Member -MemberType NoteProperty -Name "InitValue" -Value $item.Value $item | Add-Member -MemberType NoteProperty -Name "InitName" -Value $item.Name if($item.Name -eq '*'){ $item.Name = 'New Attribute' $item.InitName = $item.Name $item.Value = 'Add a value' $item.InitValue = $item.Value $item.Changed = '(*)' } } }catch{} $param = [PSCustomObject]@{ Id = $_.id AzureAdId = $_.azureActiveDirectoryDeviceId DeviceName = $_.deviceName DeviceManagedBy = if($_.managementAgent -eq 'MDM'){'Intune'}else{$_.managementType} DeviceOwnership = switch ($_.ownerType) {company {'Corporate'} personal{'Personal'} Default {$_.ownerType}} DeviceCompliance = if($_.complianceState -eq 'noncompliant'){'Not Compliant'}else{'Compliant'} DeviceOS = switch ($_.deviceType) {windowsRT {'Windows'} macMDM{'macOS'} Default {$_.deviceType}} DeviceOSVersion = $_.osVersion DeviceLastCheckin = $_.lastSyncDateTime DevicePrimaryUser = $_.userPrincipalName CustomInventory = $customInventory Details = ($_ | Select-Object -Property $referenceObject) } $managedDevicesGridObjects += $param } return $managedDevicesGridObjects } |