我对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
ALLR用户CN = ALLR,CN =用户,DC = DRIVERS,DC = ...
ALLS用户CN = ALLS,CN =用户,DC = DRIVERS,DC = ...
Set-QADUser:不明确的身份:AMAB。
在行:3字符:12
答案 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