【问题标题】:remove white space in active directory samaccount name with powershell from csv使用 csv 中的 powershell 删除活动目录 samaccount 名称中的空格
【发布时间】:2013-10-31 20:53:52
【问题描述】:

我对 powershell 很陌生,遇到了一个我无法弄清楚的路障。我有一个 CSV,其中包含 380 个用户帐户的列表,他们的 samaccount 名称后面有一个空格。这是在具有 PSv2 和 Quest.Activeroles.admanagement 的 Windows 2003 服务器上 这就是我目前所拥有的

`add-pssnapin quest.activeroles.admanagement

获取-PSSnapin Quest.ActiveRoles.ADManagement

导入-Csv "C:\Documents and Settings\%user%\Desktop\withspaces2.csv" | 对于每个{ Set-QADUser $_.sAMAccountName.Replace(' ',"").Replace("\t","") }`

它正在删除第一个用户的空白,但对其他用户什么都不做,这就是错误的样子。

Name                           Type            DN                                

---- ---- --
ABPR 用户 CN=ABPR,CN=Users,DC=DRIVERS,DC=...

ADDJ 用户 CN=ADDJ,CN=Users,DC=DRIVERS,DC=... Set-QADUser:不明确的身份:ALLMA。

在 line:3 char:12

  • Set-QADUser
  • CategoryInfo : NotSpecified: (:) [Set-QADUser], IdentityException
  • FullyQualifiedErrorId:Quest.ActiveRoles.ArsPowerShellSnapIn.BusinessLogi c.IdentityException,Quest.ActiveRoles.ArsPowerShellSnapIn.Powershell.Cmdlets
    .SetUserCmdlet

ALLR 用户 CN=ALLR,CN=Users,DC=DRIVERS,DC=...

ALLS 用户 CN=ALLS,CN=Users,DC=DRIVERS,DC=...

Set-QADUser:不明确的身份:AMAB。

在 line:3 char:12

  • Set-QADUser
  • CategoryInfo : NotSpecified: (:) [Set-QADUser], IdentityException
  • FullyQualifiedErrorId:Quest.ActiveRoles.ArsPowerShellSnapIn.BusinessLogi c.IdentityException,Quest.ActiveRoles.ArsPowerShellSnapIn.Powershell.Cmdlets
    .SetUserCmdlet

【问题讨论】:

    标签: powershell active-directory


    【解决方案1】:

    尝试查看 .Trim() 而不是替换

    例子:

    import-csv "mycsv" | foreach-object {get-qaduser -sAMAccountName $_.sAMAccountName | set qaduser -sAMAccountName $_.sAMAccountName.Trim()}
    

    我没有测试,但值得一看。

    【讨论】:

      【解决方案2】:

      忽略格式,这只是为了证明 String.Trim() 从您的字符串中删除最后一个空格并将其导出到另一个 CSV 以进行验证。

      $array = @()
      Foreach ($item in Import-Csv 'C:\CSVFileName')
      {
          $obj = New-Object PsObject
          $obj | Add-Member -Name samAccountName -MemberType NoteProperty -Value $item.samAccountName.Trim() #Value is the name of the column with your samAccountNames
          $array += $obj
      }
      $array | Export-Csv C:\NewCSVFile.Csv -NoTypeInformation
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-08-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-04-10
        相关资源
        最近更新 更多