office365 - Exchange 从 .csv 文件批量导入以从允许列表中删除,然后从允许列表中删除
问题描述
想也许我可以在这里寻求帮助!有谁知道我可以在我们的 Exchange 服务器上运行的 Powershell 脚本来执行以下操作:
- 我们最初希望从所有用户中清除所有或当前的移动设备
- 然后将我们从他们那里收到的特定移动设备 ID 重新添加到允许列表中
我可以创建某种 .csv 和脚本来加快这个过程吗?我们发现以下脚本可以从 ALLOW 中删除所有内容并添加到 ALLOW
清除所有 Allow Set-CASMailbox -Identity username -ActiveSyncAllowedDeviceIDs $null
添加到允许 Set-CASMailbox -Identity 用户名 -ActiveSyncAllowedDeviceIDs @{add='DeviceId'}
也许在运行这个脚本之后,如果还有一个批量的 .csv 快速方法来显示对帐户的结果?使用这个命令?Get-CASMailbox -Identity 用户名 | fl 主动同步*
解决方案
所以要彻底,如果你要这样做,有多个地方可以清除移动设备。合作伙伴关系在 Active Directory 中建立。
Get-MobileDevice -Mailbox UserID | ft FriendlyName,DeviceAccessState,DeviceAccessStateReason,DeviceId
您可以将其通过管道传输到 FL 以获取更多详细信息,但这是一个好的开始。注意设备状态和设备状态原因:
Blocked - Individual
= 设备 ID 已放置在用户的 ActiveSyncBlockedDeviceID 上(通过 PowerShell 或使用 PowerShell 的 MDM)Allowed - Individual
= 设备 ID 已放置在用户的 ActiveSyncAllowedDeviceIDs 上
还有其他组合,但这两种很常见。
您还应该检查您的全局配置。
Get-ActiveSyncOrganizationSettings
与此对话有关的一些设置是DefaultAccessLevel
和DeviceFiltering
。
现在,如果您要清除 ActiveSyncAllowedDeviceIDs,清除 ActiveSyncBlockedDeviceIDs 也可能很有用。如果您在执行导入后在两个属性中都有设备 ID,则会导致冲突并可能生成调用。
要清除环境中的所有设备 ID(这意味着全部),您无需指定邮箱:
get-casmailbox | set-casmailbox -ActiveSyncAllowedDeviceIDs $null -ActiveSyncBlockedDeviceIDs $null
但是,您可能需要在个人阻止列表中保留一些 ID,例如被盗电话或类似的东西。你的来电。
您问题的下一部分需要一个源文件。
获取您的用户列表并将其PrimarySMTPAddress
和设备 ID 放入文件中。我没有对此进行测试,但我假设,如果用户有多个设备,则此逻辑中的每个配对都需要单独的一行。可能还有其他方法可以做到这一点。
- 文件名 = 用户.CSV
- 标题行 = 电子邮件、设备
- 数据格式 = user@domain.com,deviceID
将其保存到已知位置(例如 C:\temp\Users.CSV)并将其导入脚本中的变量中。
$users = Import-Csv -Path .\Users.csv
验证变量中的日期(我这样做是为了一直避免语法错误);您想要进行 3 次快速检查:一项针对所有对象,一项仅针对电子邮件地址,一项仅针对设备。
$users
$users.email
$users.Device
接下来,我们循环浏览列表以将设备 ID 添加到AllowedDeviceIDs
属性中。
Foreach ($User in $Users) {Set-CASMailbox -Identity $User.Email -activeSyncAllowedDeviceIDs @{add=$user.Device}}
最后一点建议,首先用一小部分试点用户进行测试。
推荐阅读
- c# - “重置连接”是什么意思?System.Data.SqlClient.SqlException (0x80131904)
- deep-learning - 网络值通过线性层变为 0
- azure-devops - 如何在 Visual Studio-Test Explorer 中拥有机器人框架测试用例
- c - 如何在 OS161 中添加 open syscall 的两种变体?
- android - Android设置layout_weight,但跳过最后一个填充?
- python - django 中 request.method 的问题,它无法识别 POST,而是将 GET 显示为请求方法
- sdn - 如何使带有 RYU SDN 的 mininet 在 iperf 流量下正常工作?
- android - 通过 Instagram 相机在 Spark AR 中的 Android 上水平居中 2d 元素的问题
- c# - 如何从 C# 中列出使用/未使用的本机库?
- asp.net-core - Asp.Net Core 3.1 Web 应用程序,找不到 Api 页面问题