IntuneManagement.psm1
function Restart-IntuneDevice { [CmdletBinding()] param ( [Parameter(Mandatory=$true, ValueFromPipeline=$true)] [string]$DeviceName ) begin { Connect-MgGraph -Scopes DeviceManagementManagedDevices.PrivilegedOperations.All -NoWelcome $managedDeviceId = (Get-MgDeviceManagementManagedDevice -Filter "DeviceName eq '$DeviceName'").Id } process { Write-Host "Sending restart command..." -ForegroundColor Yellow Start-Sleep -Seconds 5 Restart-MgDeviceManagementManagedDeviceNow -ManagedDeviceId $managedDeviceId } } function Sync-IntuneDevice { [CmdletBinding()] param ( [Parameter(Mandatory=$true, ValueFromPipeline=$true)] [string]$DeviceName ) begin { Connect-MgGraph -Scopes DeviceManagementManagedDevices.PrivilegedOperations.All -NoWelcome $managedDeviceId = (Get-MgDeviceManagementManagedDevice -Filter "DeviceName eq '$DeviceName'").Id } process { Write-Host "Sending Sync command..." -ForegroundColor Yellow Start-Sleep -Seconds 5 Sync-MgDeviceManagementManagedDeviceNow -ManagedDeviceId $managedDeviceId } } function Clear-IntuneDevice { [CmdletBinding()] param ( [Parameter(Mandatory=$true, ValueFromPipeline=$true)] [string]$DeviceName ) begin { Connect-MgGraph -Scopes DeviceManagementManagedDevices.PrivilegedOperations.All -NoWelcome $managedDeviceId = (Get-MgDeviceManagementManagedDevice -Filter "DeviceName eq '$DeviceName'").Id $params = @{ keepEnrollmentData = $false keepUserData = $false } $wipedDevices = New-Object System.Collections.ArrayList } process { try { Write-Host "Sending Sync command..." -ForegroundColor Yellow Start-Sleep -Seconds 5 Clear-MgDeviceManagementManagedDevice -ManagedDeviceId $managedDeviceId -ErrorAction Stop -BodyParameter @params } catch { $notAuthorizedMsg = "Application is not authorized to perform this operation. Application must have one of the following scopes: DeviceManagementManagedDevices.PrivilegedOperations.All" if ($_.ErrorDetails.Message -match $notAuthorizedMsg) { Write-Error -Message "Please connect to Graph again and specify 'DeviceManagementManagedDevices.PrivilegedOperations.All' as a scope." } else { # Nested try/catch to double check that device was deleted try { Clear-MgDeviceManagementManagedDevice -ManagedDeviceId $managedDeviceId -BodyParameter $params -ErrorAction Stop } catch { Write-Host $DeviceName" has been removed from Intune mobile device management" [void]$wipedDevices.Add($DeviceName) } } } } } |