使用来自csv的powershell删除活动目录samaccount名称中的空白区域

时间:2013-10-31 20:53:52

标签: powershell active-directory

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

`add-pssnapin quest.activeroles.admanagement

get-PSSnapin Quest.ActiveRoles.ADManagement

Import-Csv“C:\ Documents and Settings \%user%\ Desktop \ withspaces2.csv”| {的ForEach 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。

在行:3字符:12

  • Set-QADUser<<<< $ _。sAMAccountName.Replace('',“”)。替换(“\ t”,“”)
    • CategoryInfo:NotSpecified:(:) [Set-QADUser],IdentityException
    • FullyQualifiedErrorId:Quest.ActiveRoles.ArsPowerShellSnapIn.BusinessLogi c.IdentityException,Quest.ActiveRoles.ArsPowerShellSnapIn.Powershell.Cmdlets
      .SetUserCmdlet

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

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

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

在行:3字符:12

  • Set-QADUser<<<< $ _。sAMAccountName.Replace('',“”)。替换(“\ t”,“”)
    • CategoryInfo:NotSpecified:(:) [Set-QADUser],IdentityException
    • FullyQualifiedErrorId:Quest.ActiveRoles.ArsPowerShellSnapIn.BusinessLogi c.IdentityException,Quest.ActiveRoles.ArsPowerShellSnapIn.Powershell.Cmdlets
      .SetUserCmdlet

2 个答案:

答案 0 :(得分:1)

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

示例:

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

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

答案 1 :(得分:1)

忽略格式化,这只是为了演示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
相关问题