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

问题描述 投票:0回答:1

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

$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'

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

powershell mobile exchange-server
1个回答
0
投票

那么您的$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=..}方法完成的原因>

© www.soinside.com 2019 - 2024. All rights reserved.