2013-10-31 35 views
0

我是非常新的PowerShell和我碰到一個路障,我無法弄清楚。我有一個包含380個用戶帳戶的CSV列表,其中一個空白字符在samaccount名稱後面。這是一個具有PSV2和Quest.Activeroles.admanagement 在Windows 2003服務器上這是我迄今爲止刪除活動目錄中的空白samaccount名稱使用powershell從csv

`附加pssnapin quest.activeroles.admanagement

GET-PSSnapin Quest.ActiveRoles.ADManagement

Import-Csv「C:\ Documents and Settings \%user%\ Desktop \ withspaces2.csv」| 的ForEach { 套裝,QADUser $ _。sAMAccountName.Replace(」」, 「」),更換( 「\ t」, 「」) }`

它消除了對第一個用戶的空白,但這樣做這裏的其他人沒有什麼是錯誤的樣子。

Name       Type   DN         

---- ---- -
ABPR用戶CN = ABPR,CN =用戶,DC = DRIVERS,DC = ...

用戶ADDJ CN = ADDJ,CN =用戶,DC = DRIVERS,DC = ... Set-QADUser:模糊標識:ALLMA。

在行:3字符:12

  • 設置-QADUser < < < < $ _ sAMAccountName.Replace(」」, 「」)更換。( 「\ t」, 「」)
    • CategoryInfo:NotSpecified:(:) [設置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 =驅動器,DC = ...

Set-QADUser:模糊標識:AMAB。

在行:3字符:12

  • 設置-QADUser < < < < $ _ sAMAccountName.Replace(」」, 「」)更換。( 「\ t」, 「」)
    • CategoryInfo:NotSpecified:(:) [設置QADUser],IdentityException
    • FullyQualifiedErrorId:Quest.ActiveRoles.ArsPowerShellSnapIn.BusinessLogi c.IdentityException,Quest.ActiveRoles.ArsPowerShellSnapIn.Powershell.Cmdlets
      .SetUserCmdlet

回答

1

試着看。TRIM(),而不是更換

例子:

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

我沒有測試過,但它是值得一試。

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 
相關問題