0

我正在尝试使用我们的一个面向客户端的系统生成的 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 脚本非常陌生,所以请善待。

4

1 回答 1

0

但是我使用 Get-ADUser 提取的 $Current ID 返回一整块属性

这很正常。Get-ADUser返回具有所有属性的对象。要仅比较一个属性,请使用$CurrentID.whatever. 例如:

if ($CurrentID.facsimileTelephoneNumber -eq $ID) {Execute this code}

如果$ID也是具有属性的对象,那么您可能需要为此执行相同的操作:

if ($CurrentID.facsimileTelephoneNumber -eq $ID.facsimileTelephoneNumber) {Execute this code}

但是在不知道变量是什么类型的情况下,我不能肯定地告诉你$ID

于 2022-02-22T19:22:14.950 回答