locked
Exchange 2016 a Powershell RRS feed

  • Dotaz

  • 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


    pondělí 17. června 2019 15:15

Všechny reakce

  • Co to -Result 0? Nepomohl by parametr -ResultSize Unlimited? Jinak pozor, že pokud spouštíte takový příkaz, je to vždy živé volání do DB, což může být časově náročné (připojíte si přímo konzoli). Což nemusí udržet ono PowerShell spojení, vždy je lepší Remoting, ať si to spočítá přímo server a pak jen vrátí výsledky.
    neděle 30. června 2019 19:29