Zarządzanie urządzeniami mobilnymi w Exchange

W miarę upływu czasu działania systemu Exchange przybywa w nim urządzeń mobilnych. Użytkownicy zmieniają urządzenia, zaprzestają korzystać ze starszych urządzeń. Wszystkie te urządzenia pozostają jednak w Exchange. Administrator może trochę „posprzątać”. Aby wyświetlić wszystkie urządzenia mobilne jakie są zarejestrowane w Exchange można skorzystać z polecenia:

Get-MobileDevice -ResultSize Unlimited

Jeśli mamy sporo urządzeń lista może być dość długa. Aby policzyć ilość urządzęń należy skorzystać z polecenia

Get-MobileDevice|Measure-Object

Listę urządzeń możemy wyeksportować do pliku tekstowego

Get-MobileDevice -ResultSize Unlimited|ft -auto|Out-File 'c:\temp\urzadzenia.txt'

Polecenie Get-MobileDevice nie zwraca nam jednak informacji odnośnie ostatniego połączenia. Aby sprawdzić czas ostatniej synchronizacji nalezy posłużyć się poleceniem Get-MobileDeviceStatistics podając identyfikator urządzenia np.

Get-MobileDeviceStatistics daa39d02-b304-4c59-8b14-97d527fb50ec

lub

Get-MobileDevice daa39d02-b304-4c59-8b14-97d527fb50ec | Get-MobileDeviceStatistics

Aby wyświetlić urządzenia konkretnego użytkownika

Get-MobileDevice -ResultSize Unlimited|where {$_.identity -like "domna.local/domena/*Nazwa uzytkownika*"} |Select DeviceModel,whenchanged,DeviceAccessState,guid | ft -auto

Wykonywanie powyższych poleceń dla wielu urządzeń jest bardzo uciążliwe. Możemy jednak wykonać zestawienie dla wszystkich urządzeń.

$mdevices = Get-MobileDevice -ResultSize Unlimited
foreach ($d in $mdevices){Get-MobileDeviceStatistics $d.DistinguishedName|select lastSuccessSync,DeviceModel,guid,Identity|ft -auto|Out-File 'c:\temp\urzadzenia.txt'-Append}

Powyższe polecenie wyeksportuje nam wszystkie urządzenia wraz z czasem ostatniej pozytywnej synchronizacji (LastSuccessSync). Urządzenia, które nie synchronizowały się już dłuższy czas np. przez rok możemy usunąć z systemu Exchange. Usuniecie urządzenia wykonujemy poleceniem

Get-MobileDevice daa39d02-b304-4c59-8b14-97d527fb50ec | Remove-MobileDevice

lub bezpośrednio

Remove-MobileDevice daa39d02-b304-4c59-8b14-97d527fb50ec

Usuwanie w ten sposób większej ilości urządzeń jest bardzo czasochłonne. Lepszym rozwiązaniem jest przygotowanie pliku z identyfikatorami urządzeń do usunięcia. Tworzymy plik csv zawierający identyfikatory urządzeń do usunięcia. Ważne aby pierwsza linia zawierała wpis „identity” np.:

identity
e9605088-bd82-4ce2-a65e-230954513cd6
98ac1f8a-9ba1-45ed-917d-9246f40200cb

Następnie tak przygotowany plik wykorzystujemy do usunięcia wszystkich urządzeń:

Import-Csv C:\Temp\dev.csv |ForEach-Object {remove-MobileDevice $_.identity -Confirm:$false}

W przypadku gdy dostęp urządzeń systemu Exchange musi być wcześniej zaakceptowany przez administratora wszystkie urządzenia po skonfigurowaniu poczty przez użytkownika wpadają do kwarantanny. Aby wyświetlić wszystkie urządzenia w kwarantannie należy wydać polecenie

Get-MobileDevice |Where {$_.DeviceAccessState -eq „Quarantined”}|Select DeviceModel,FirstSyncTime,whenchanged,DeviceAccessState | ft -auto

Aby wyodrębnić urządzenia, które są w kwarantannie np. ponad rok możemy skorzystać z polecenia

Get-MobileDevice |Where {$_.DeviceAccessState -eq „Quarantined”-and $_.FirstSyncTime -lt (Get-Date).AddMonths(-12)}|Select DeviceModel,FirstSyncTime,whenchanged,DeviceAccessState | ft -auto

Zapytanie możemy ograniczyć np. tylko do aplikacji Outook na urządzeniu mobilnym

Get-MobileDevice |Where {$_.DeviceAccessState -eq „Quarantined”-and $_.FirstSyncTime -lt (Get-Date).AddMonths(-12) -and $_.devicemodel -eq 'Outlook for iOS and Android’}|Select DeviceModel,whenchanged,DeviceAccessState,guid | ft -auto

Takie urządzenia można śmiało usunąć z systemu Exchange skoro nikt przez rok nie upomniał się o odblokowanie (zezwolenie na dostęp) urządzenia

Get-MobileDevice |Where {$_.DeviceAccessState -eq „Quarantined”-and $_.FirstSyncTime -lt (Get-Date).AddMonths(-12)} | Remove-MobileDevice -Confirm:$false