【发布时间】:2015-07-17 04:05:00
【问题描述】:
为什么每次循环只显示最后一个对象而不是所有对象?
$str = @"
First1 Last1
First2 Last2
First3 Last3
First4 Last4
"@
foreach ($line in $str.Split("`n")) {
$userOBJ = Get-ADUser -Filter {Name -like $line}
$userOBJ
}
输出只有一条记录。
DistinguishedName : CN=First Last,OU=BLAH and BLAH,OU=BLAH BLAH,DC=corp,DC=domain,DC=com
Enabled : True
GivenName : First
Name : First Last
ObjectClass : user
ObjectGUID : XXXXXX-XXXXXXXXX
SamAccountName : useranme
SID : XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Surname : Last
UserPrincipalName : username@comain.com
【问题讨论】:
-
Windows 行尾,可能。试试
Get-ADUser -Filter {Name -like $line.Trim() }或者,试试$str.Split("`r`n")。 -
Get-ADUser:属性:在类型对象中找不到“Trim”:“System.String”。
-
只是事后的评论,
.Trim()方法如果你子表达它就可以正常工作,例如:Get-ADUser -Filter {Name -like $($line.Trim()) }
标签: string powershell foreach split line