首页 > 解决方案 > 在 Powershell 中更改 AD 属性时出错

问题描述

尝试从 Powershell 更改特定用户帐户的msexchhidefromaddresslists属性。我进行了搜索并找到了一个基本脚本,但出现了错误。我已经直接从我的系统和服务器尝试过。有任何想法吗?

set-aduser ldap -replace @{msexchhidefromaddresslists="$true"}


set-aduser : The parameter is incorrect
At line:1 char:1
+ set-aduser ldap -replace @{msexchhidefromaddresslists="$true"}
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (ldap:ADUser) [Set-ADUser], ADInvalidOperationException
    + FullyQualifiedErrorId : ActiveDirectoryServer:87,Microsoft.ActiveDirectory.Management.Commands.SetADUser

标签: powershell

解决方案


msExchHideFromAddressLists属性的架构指定oMSyntax: 1Boolean

LDAP 允许布尔值的几种不同表示形式,包括整数值(0对于false,对于 的非零值true),或者更常见的是小写字符串表示形式truefalse.

"$true",另一方面,会产生一个带有值的字符串True(注意它是标题大小写的,而不是小写的)。

使用以下之一:

  • @{msExchHideFromAddressLists = 1}
  • @{msExchHideFromAddressLists = "true"}或者
  • @{msExchHideFromAddressLists = $True}

在最后一种情况下,$true值将(正确)由 ADWS 翻译,而不是(不正确)由 PowerShell 的字符串转换逻辑


推荐阅读