如何在 Exchange 中使用 Powershell 阻止移动设备



我正在使用以下代码尝试阻止移动设备访问交换。

$deviceID = $mobileDevices[[int]$menuSelect].DeviceID
Set-CASMailbox -Identity $username -ActiveSyncBlockedDeviceIDs @{Add="$deviceID"}
$MobileDevices[[int]$menuSelect].DeviceAccessState = 'Blocked'

但收到此警告:

WARNING: The command completed successfully but no settings of 'chris.domain/Domain Sites/Pre/John Tar' have been modified.

实际上没有什么被阻止。

如果我像下面这样运行代码,那么它确实会阻止该单个设备,但会解锁以前阻止的任何其他设备。

$deviceID = $mobileDevices[[int]$menuSelect].DeviceID
Set-CASMailbox -Identity $username -ActiveSyncBlockedDeviceIDs $deviceID
$MobileDevices[[int]$menuSelect].DeviceAccessState = 'Blocked'

如何在不清除旧设备的情况下添加被阻止的设备? 任何帮助将不胜感激。

那么你的$menuSelect是什么?您是否实际上在某个地方(在屏幕上,在GUI中(获得某种菜单,您正在选择数字?当您运行脚本并进行选择时,$menuselect实际上是否填充了一个数字?如果是,$deviceID是否也在增加?

使用 Powershell IDE 或 VSCode 或其他方法在第一行上创建一个断点,并在调试模式下运行它并检查变量中的值。否则,在脚本中添加一些输出行以查看变量是否被填充。

$deviceID = $mobileDevices[[int]$menuSelect].DeviceID
write-host "selection = $menuselect - DeviceID = $DeviceID - User = $username"
Set-CASMailbox -Identity $username -ActiveSyncBlockedDeviceIDs @{Add="$deviceID"}
$MobileDevices[[int]$menuSelect].DeviceAccessState = 'Blocked'

如果输出看起来正常,则完全按照此处的方式运行Set-CasMailbox命令,但将变量替换为您在write-host或调试输出中看到的实际值。

顺便说一句,我怀疑这是@{Add="$deviceID"}问题所在。如果看起来值没问题,那么如果不带引号运行它会发生什么?

第二个命令删除任何以前阻止的设备的原因ActiveSyncBlockedIds是一个多值属性,第二个命令只是将现有条目吹走,而不是向其附加另一个 ID。这就是为什么它需要使用@{Add=..}方法完成的原因

相关内容

  • 没有找到相关文章

最新更新