【问题标题】:Trying to get -Identity value from Variable试图从变量中获取 -Identity 值
【发布时间】:2016-03-10 14:14:03
【问题描述】:

我知道最佳做法是使用属性值,例如 NameDistinguishedname 等。但是,我正在使用两个系统,而 Active Directory 中唯一在两个系统中相同的字段是 extensionAttribute1 .下面是代码。错误在于foreach 循环并且不接受-Identity 的变量。

Function ArchiveLeavers
{
Write-Host "Archiving leavers. Details below..."

$csvLeavers = Import-Csv -Path $fileLeavers      

    foreach ($user in $csvLeavers)
    {

    $csvID = $user.ExtensionAttribute1

    if (Get-ADUser -filter {extensionAttribute1 -eq $csvID} -SearchBase $LeaverOU)
    {
        Write-Host ($user.GivenName + ' ' + $user.LastName) " is already in leavers"
    }

    else
    {
        ForEach-Object  
        {
        $identity = Get-ADUser -filter {extensionAttribute1 -eq $csvID} | select distinguishedName | Format-Table -HideTableHeaders

        write-host ($user.GivenName + ' ' + $user.LastName) " needs moving"
        Move-ADObject -Identity $identity -TargetPath $LeaverOU;
        Set-ADUser    -Add @{extensionAttribute7=$user.ExtensionAttribute7}
        Write-Host ($user.GivenName + ' ' + $user.LastName) " has been moved"
        }

    }
  }
}

这是错误:

Move-ADObject : 无法将 'System.Object[]' 转换为类型
    参数“Identity”需要“Microsoft.ActiveDirectory.Management.ADObject”。指定的
    方法不受支持。
    在行:21 字符:57
    +Move-ADObject -Identity $identity -TargetPath $F ...
    +~~~~~~~~~
    + CategoryInfo : InvalidArgument: (:) [Move-ADObject], ParameterBindingException
    + FullyQualifiedErrorId : CannotConvertArgument,Microsoft.ActiveDirectory.Management.Commands.MoveADObject

【问题讨论】:

  • 不要将 Format-list/-table 与变量赋值一起使用。它们仅用于格式化输出。

标签: powershell active-directory


【解决方案1】:

您正在使用 Format-Table 将您的 $Identity 变量转换为 Move-ADObject 不知道的对象,它只获得输入类型的 SAM、Guid、SID 等。

从管道中删除格式表,更改此:

$identity = Get-ADUser -filter {extensionAttribute1 -eq $csvID} | select distinguishedName | Format-Table -HideTableHeaders

到这里:

$identity = Get-ADUser -filter {extensionAttribute1 -eq $csvID} 

【讨论】:

  • 谢谢!那是我把事情复杂化的错……现在工作得很好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-28
  • 1970-01-01
  • 2021-10-12
  • 1970-01-01
  • 1970-01-01
  • 2021-03-05
相关资源
最近更新 更多