我正在嘗試執行 Powershell 腳本,該腳本將清理至少 110 天內未與 Exchange 2013 Server 同步的所有手機。
我的程式碼將提取資料並將其匯出到 CSV,但是當我嘗試透過管道輸入“Remove-MobileDevice”命令來刪除裝置時,腳本無法執行此操作。到目前為止,我在網路上發現的任何內容都沒有多大幫助。大多數都使用過時的 ActiveSyncDevice cmdlet。
這是我的程式碼,我是 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)
答案1
我可以提供 Exchange 中內建的更好(自動)解決方案嗎?自 Exchange 2013/2016 起,Microsoft 將 EasMaxInactivityForDeviceCleanup 值新增至限制策略並對其進行了描述這裡作為:
EasMaxInactivityForDeviceCleanup 參數指定使用者的設備夥伴關係保持活動狀態的時間長度。預設情況下,使用者的裝置合作夥伴關係保持活動狀態的天數沒有限制。如果您希望最大限度地減少組織中不活動設備合作夥伴的數量,請使用此值。若要使用此設置,請指定自使用者上次同步時間以來的天數,以刪除裝置合作夥伴關係。
因此,如果我是你,我會建立一個新的限制策略,如下所述這裡並將其分配給您的用戶。完成此操作後,如果使用者新增設備,Exchange 伺服器將檢查已配置的設備,並在從新設備新增期間自動刪除未使用的設備。然後您不需要運行腳本,伺服器將自動處理它們。
答案2
取得設備清單(包括 Guid)後,您可以執行此命令來刪除該 .csv 檔案中的所有裝置。
導入 CSV (your_path_and_file_name.csv) | foreach{刪除-MobileDevice-Identity $_.Guid}