【问题标题】:Active Directory Powershell append to existing attribute valueActive Directory Powershell 附加到现有属性值
【发布时间】:2014-05-19 18:18:37
【问题描述】:

我正在寻找一种使用 Set-ADuser 将值附加到现有属性末尾的方法。

到目前为止,我有:(由于敏感而省略了我的过滤器)

Get-ADUser -Filter (<filter>) -Properties Name,DisplayName,EmployeeID,SAMAccountName | ? {$_.Samaccountname.length -eq 5} | Set-ADUser <???>

我一直在寻找一种方法来仅附加到employeeID 属性而不覆盖当前值。如果有其他方法可以做到这一点,我很想知道如何。

【问题讨论】:

    标签: powershell active-directory


    【解决方案1】:

    因此,使用 Set-ADUser 您可以将 -replace 与哈希表一起使用。因此,通过一个循环运行结果,在每个循环上为其 EmployeeID 设置一个哈希表 = 现有一个加上任何新文本,并设置帐户以替换哈希表中的数据。像这样的:

    Get-ADUser -Filter (<Filter>) |?{$_.SAMAccountName.Length -eq 5} | %{$HT = @{};$HT.add("EmployeeID", "$($_.EmployeeID)AdditionalText");Set-ADUser $_.SAMAccountName -Replace $HT}
    

    【讨论】:

    • 很好的代码,但是当我尝试使用单个用户运行时,它只是用应该添加到末尾的文本替换了employeeID。
    • 如果您检查 $HT 的值,它是否只显示附加文本而不是原始员工 ID + 附加文本?
    【解决方案2】:

    这将完成它,我对其进行了测试并完美运行:。只需将 info 替换为您想要的属性或属性:

    Import-Module ActiveDirectory 
    $j=Read-Host "Enter the samaccountname" 
    $i = Get-ADUser $j -Properties info | %{ $_.info}  
    Set-ADUser $j -Replace @{info="$($i) `r`n Account Disabled for O365 Cleanup"} 
    

    来源:https://gallery.technet.microsoft.com/scriptcenter/Powershell-Append-Info-5f613638

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-26
      • 2022-11-30
      • 2015-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多