Ptám se spíše ze zvědavosti, problém jako takový mám už vyřešený . . .
Exchange 2016 CU12, on-premise. Potřeboval jsem promazat neaktivní ActiveSync zařízení (30 a více dnů bez synchronizace).
Pro vyhledání zařízení, která se nesynchronizovala stanovenou dobu, jsem chtěl použít tohle:
Get-MobileDevice -result 0|
Get-MobileDeviceStatistics| where {$_.LastSuccessSync
-le (Get-Date).AddDays("-30")}
Nicméně to nefungovalo, respektive to fungovalo tak, že to vylistovalo zařízení jen jednoho uživatele (v čase různého). Při ladění jsem vyzkoušel:
1. Get-MobileDevice - OK, našlo všechna zařízení
2. Get-MobileDevice | Get-MobileDeviceStatistics - NOT OK, našlo vždy všechna zařízení, ale jen jednoho uživatele
3. Get-MobileDeviceStatistics s ručním zadáním Identity - OK, vždy našlo zařízení
4. Get-MobileDevice | Measure-Object - OK, vypsalo 222, což je reálný stav
5. Get-MobileDevice | Get-MobileDeviceStatistics | Measure-Object - NOT OK, vypsalo 15, což je počet zařízení jednoho uživatele (zrovna našel testovacího, proto tolik zařízení).
Nakonec jsem to vyřešil uložením výstupu Get-MobileDevice do proměnné a cyklem ForEach, ve kterém jsem volal Get-MobileDeviceStatistics s podmínkou.
Ale zajímá mě, jestli v původním příkazu mám něco špatně nebo je chyba na straně Exchange? Podle dokumentace i diskuzí (a že jsem jich pročetl fakt hodně) by "pajpnutí" výstupu Get-MobileDevice do Get-MobileDeviceStatistics prostě mělo fungovat.
BB