Powershell Exchange 古い電話同期デバイスを削除する

Powershell Exchange 古い電話同期デバイスを削除する

Exchange 2013 サーバーと少なくとも 110 日間同期されていない電話をクリーンアップする Powershell スクリプトを実行しようとしています。

私のコードはデータを取得して 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)

答え1

Exchangeに組み込まれている、より優れた(自動的な)ソリューションを提供できますか?Exchange 2013/2016以降、MicrosoftはEasMaxInactivityForDeviceCleanup値をスロットルポリシーに追加し、次のように説明しました。こことして:

EasMaxInactivityForDeviceCleanup パラメーターは、ユーザーのデバイス パートナーシップがアクティブのままである期間を指定します。既定では、ユーザーのデバイス パートナーシップがアクティブのままである日数に制限はありません。組織内の非アクティブなデバイス パートナーシップの数を最小限に抑える場合は、この値を使用します。この設定を使用するには、ユーザーの最後の同期時間からの日数を指定して、デバイス パートナーシップを削除します。

もし私があなたなら、説明したように新しいスロットリングポリシーを作成しますここそしてそれをユーザーに割り当てます。その後、ユーザーが新しいデバイスを追加すると、Exchange サーバーは構成されたデバイスを確認し、新しいデバイスからの追加中に未使用のデバイスを自動的に削除します。その後はスクリプトを実行する必要はなく、サーバーがほとんど自動的に処理します。

答え2

GUID を含むデバイスのリストを取得したら、これを実行して、その .csv ファイル内のすべてのデバイスを削除できます。

Import-CSV (your_path_and_file_name.csv) | foreach{Remove-MobileDevice -Identity $_.Guid}

関連情報