我创build了一个小的powershell脚本,用于在用户不是特定AD组的成员时禁用邮箱的活动同步。 当从Exchange命令行pipe理程序从我的Windows 7工作站运行此脚本时,此脚本完美工作。 但它不在CAS服务器的EMS上工作。
$groupname = "ActiveSync Users" $groupidentity = $(Get-Group $groupname).Identity.DistinguishedName Get-Mailbox -ResultSize unlimited |Set-CASMailbox -ActiveSyncEnabled $false -ErrorAction SilentlyContinue -WarningAction SilentlyContinue $users = Get-ADGroupMember $groupname | select -ExpandProperty name foreach ($user in $users) { Get-Mailbox $user | Set-CASMailbox -ActiveSyncEnabled $true }
Get-Mailbox | Set-CASMailbox 在Exchange CAS服务器上, Get-Mailbox | Set-CASMailbox和Get-ADGroupMember代码部分失败。 Get-Mailbox | Set-CASMailbox Get-Mailbox | Set-CASMailbox列出警告:没有为每个用户帐户修改设置。 Get-ADGroupMember作为不可识别的cmdlet发生错误。
它看起来像是一个权限错误或一些依赖从Exchange服务器丢失,但我不确定在哪里看看什么是缺less的。
你遇到的问题是Get-ADGroupMember 。 您需要使用命令import-module ActiveDirectory加载Active Directorypipe理单元。 您需要在Exchange服务器上安装“适用于Windows PowerShell的Active Directory模块”function才能正常工作。
获取/设置命令给你的警告,因为你的脚本这样做:
既然你已经运行脚本,第一步已经完成。 再次运行会给你“不变”的警告。 修复第2步,你的脚本将工作。 请注意,对于已closuresActiveSync的邮箱,您仍然会收到此警告,但至less您不会像现在这样为每个邮箱都收到这个警告。