代码之家  ›  专栏  ›  技术社区  ›  Gaterde

无法将参数Replace绑定到目标

  •  0
  • Gaterde  · 技术社区  · 7 年前

    我尝试使用以下命令复制特定OU中每个用户的广告属性:

    Get-ADUser -SearchBase "OU=My,OU=OUnit,DC=Domain,DC=local" -Filter * -Properties extensionAttribute14, physicalDeliveryOfficeName |
        Set-ADUser -Replace @{street=$($_.extensionAttribute14);l=$($_.physicalDeliveryOfficeName -replace '^\d+\s+');postalCode=$($_.physicalDeliveryOfficeName -replace '[a-zA-Z\s]+')}
    

    但是我得到了一条错误信息:

    Set ADUser:无法将参数“Replace”绑定到目标。异常设置“Replace”:“对象引用未设置为 对象的实例。”

    我还试着用管道连接到:

    ForEach-Object {Set-ADObject -Identity $_.DistinguishedName -Replace @{...}}
    

    但我也收到了同样的错误信息。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Paul    7 年前

    在看到你的评论后,我自己尝试了一下,并且能够复制这个问题。(但除了您描述的,它也不适用于单个用户)。

    这是我为一个和多个用户设计的:

    Get-ADUser -SearchBase "OU=My,OU=OUnit,DC=Domain,DC=local" -Filter * -Properties extensionAttribute14, physicalDeliveryOfficeName | % {
    Set-ADUser $_ -Replace @{street=$($_.extensionAttribute14);l=$($_.physicalDeliveryOfficeName -replace '^\d+\s+');postalCode=$($_.physicalDeliveryOfficeName -replace '[a-zA-Z\s]+')} }
    
    推荐文章