Powershell:Where-Object通配符

时间:2014-04-01 19:04:47

标签: powershell active-directory

我想搜索特定电话号码/分机的Active Directory用户的所有属性。

我可以得到所有的属性:

get-aduser joesmith -Properties *

但我想过滤结果,例如扩展名1234(可能在许多地方,例如extensionAttribute1,OfficePhone,HomePhone,Mobile等)。

我试过了:

get-aduser joesmith -Properties * | where-object {$_ -like "*1234*" }

但是where-object想要$ _。value,而我不知道确切的值。

我应该如何搜索多个属性的值?我希望看到以下结果:

mobile        1234
officephone   12345
othermobile   61234

1 个答案:

答案 0 :(得分:4)

要遍历属性的值,您不知道(即OfficePhone,CustomAttribute2,mobile)的名称,您可以使用以下内容:

get-aduser joesmith -Properties * | foreach-object { 
  foreach ($property in $_.PSObject.Properties) {
    if ($property.value -like "*1234*") {
      "$($property.name) $($property.value)"
    }
  }
}