I am working on a script to remove all EAS devices from our exchange server. (To force use of REST-based only clients)
# Login
$UserCredential = Get-Credential
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -
AllowRedirection
Import-PSSession $Session
#Removing EAS devices
#
$Mailboxes = Get-Mailbox -ResultSize Unlimited
Foreach ($box in $Mailboxes){ $EASDevices = Get-MobileDeviceStatistics -Mailbox $box | Where-Object {$_.ClientType -like "EAS"};
EASDevices | foreach {$Guid = $_.guid.ToString(); Remove-MobileDevice -id $Guid}}
#@TODO add -Confirm:$False when it is working
I get the following error:
Cannot process argument transformation on parameter 'Mailbox'. Cannot convert value "Support Account" to type "Microsoft.Exchange.Configuration.Tasks.MailboxIdParameter". Error: "Cannot convert hashtable to an object of the following type: Microsoft.Exchange.Configuration.Tasks.MailboxIdParameter. Hashtable-to-Object conversion is not supported in restricted language mode or a Data section."
My question is how to get all mailboxes, then iterate through Get-MobildeDeviceStatistics
?
I couldn't get much further even searching online such as :