我正在尝试使用我们的一个面向客户端的系统生成的 csv 文件中的信息来更新 Active Directory。我将信息(ID#)存储在 facsimileTelephoneNumber AD 属性中(不要问为什么)。这就是它变得棘手的地方。如果该属性中已经有一个值与存储在 csv 文件中的值不同,我不想更改它。我将 csv 文件中的值设置为变量 $ID,并尝试将 AD 中的值设置为变量 $CurrentID。从那里,我正在比较两者,看看它们是否相等。从 csv 导入 $ID 工作正常,没有问题。但是使用 Get-ADuser 设置 $CurrentID 并没有达到我的预期。
$CurrentID = Get-ADUser -Identity $Username -Properties facsimileTelephoneNumber
是我用来尝试设置的。但是当我使用以下方法比较这两个变量时:
if ($CurrentID -eq $ID) {Execute this code}
它总是测试为假,所以什么也没有发生。当我调用变量以查看其中的内容时,我从 $ID 中获取了正确的数据,但是 $Current ID(我使用 Get-ADUser 提取的那个)返回了一整块属性,DistinguishedName、Enabled、facsimileTelephoneNumber(这是我想要的)、GivenName、Name、ObjectClass、ObjectGUID、SAMAccountName、SID、Surname 和 UserPrincipalName。我认为这就是平等测试失败的原因,但我不知道如何解决它。我对 Powershell 脚本非常陌生,所以请善待。