0

私はpowershellに非常に慣れておらず、理解できない障害物に遭遇しています。samaccount 名の後ろに空白が 1 つある 380 のユーザー アカウントのリストを含む CSV があります。これは、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=ユーザー、DC=ドライバー、DC=...

ADDJ ユーザー CN=ADDJ,CN=Users,DC=DRIVERS,DC=... Set-QADUser : あいまいな ID: ALLMA。

行:3 文字:12

  • Set-QADUser <<<< $_.sAMAccountName.Replace(' ',"").Replace("\t","")
    • CategoryInfo : NotSpecified: (:) [セット-QADUser]、IdentityException
    • FullyQualifiedErrorId : Quest.ActiveRoles.ArsPowerShellSnapIn.BusinessLogic.IdentityException,Quest.ActiveRoles.ArsPowerShellSnapIn.Powershell.Cmdlets
      .SetUserCmdlet

ALLR ユーザー CN=ALLR、CN=ユーザー、DC=ドライバー、DC=...

ALLS ユーザー CN=ALLS,CN=ユーザー,DC=ドライバー,DC=...

Set-QADUser : あいまいな ID: AMAB。

行:3 文字:12

  • Set-QADUser <<<< $_.sAMAccountName.Replace(' ',"").Replace("\t","")
    • CategoryInfo : NotSpecified: (:) [セット-QADUser]、IdentityException
    • FullyQualifiedErrorId : Quest.ActiveRoles.ArsPowerShellSnapIn.BusinessLogic.IdentityException,Quest.ActiveRoles.ArsPowerShellSnapIn.Powershell.Cmdlets
      .SetUserCmdlet
4

2 に答える 2

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
于 2013-11-01T19:58:04.673 に答える
1

置換するのではなく、.Trim() を調べてみてください

例:

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

私はテストしていませんが、一見の価値があります。

于 2013-10-31T20:59:05.833 に答える