我正在尝试运行一个 Powershell 脚本,它将清理至少 110 天内未与 Exchange 2013 服务器同步的所有电话。
我的代码将提取数据并将其导出到 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{Remove-MobileDevice -Identity $_.Guid}