Я пытаюсь запустить сценарий Powershell, который очистит все телефоны, которые не синхронизировались с Exchange 2013 Server в течение как минимум 110 дней. .
Мой код извлекает данные и экспортирует их в CSV, но когда я пытаюсь передать команду Remove-MobileDevice для удаления устройств, скрипт этого не сделает. Ничего из того, что я нашел в Интернете, пока не помогло. Большинство из них используют устаревшие командлеты ActiveSyncDevice.
Вот мой код, я новичок в PowerShell и ценю любую помощь:
Get-MobileDevice -result unlimited | Get-MobileDeviceStatistics | where {$_.LastSuccessSync -le (Get-Date).AddDays(“-110”)} | select devicetype, deviceidentity, deviceos, deviceuseragent, identity | Export-csv C:\PhoneSync\Logs\Stale_Devices_110days_$((Get-Date).ToString('MM-dd-yyyy_hh-mm-ss')).csv | foreach (Remove-MobileDevice -Identity DeviceUserAgent -confirm:$false)
Могу ли я предоставить лучшее (автоматически) решение, встроенное в Exchange? Начиная с Exchange 2013/2016, Microsoft добавила значение EasMaxInactivityForDeviceCleanup в политику регулирования и описала его здесь как:
Параметр EasMaxInactivityForDeviceCleanup указывает длину время, в течение которого партнерские отношения устройства пользователя будут оставаться активными. По умолчанию, нет ограничений на количество дней, в течение которых устройство пользователя партнерские отношения останутся активными. Используйте это значение, если хотите свести к минимуму количество неактивных устройств в вашем организация. Чтобы использовать этот параметр, укажите значение в днях с момента время последней синхронизации пользователя для удаления связи устройства.
Так что, если бы я был вами, я бы создал новую политику регулирования, как описано здесь , и назначил бы ее вашим пользователям. После этого, и если пользователь добавляет новое устройство, сервер Exchange проверит настроенные устройства и автоматически удалит неиспользуемое во время добавления с нового устройства. Тогда вам не нужно запускать скрипт, сервер в основном позаботится о них автоматически.