Powershell:Where对象通配符

Powershell:Where对象通配符,powershell,active-directory,Powershell,Active Directory,我想在Active Directory用户的所有属性中搜索特定电话号码/分机 我可以得到如下所有属性: get-aduser joesmith -Properties * 但是我想过滤结果,比如说分机1234(可能在很多地方,比如分机Attribute1、OfficePhone、HomePhone、Mobile等) 我试过: get-aduser joesmith -Properties * | where-object {$_ -like "*1234*" } 但是object想要$的位置

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

我可以得到如下所有属性:

get-aduser joesmith -Properties *
但是我想过滤结果,比如说分机1234(可能在很多地方,比如分机Attribute1、OfficePhone、HomePhone、Mobile等)

我试过:

get-aduser joesmith -Properties * | where-object {$_ -like "*1234*" }
但是object想要$的位置,我不知道精确的值

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

mobile        1234
officephone   12345
othermobile   61234

要遍历不知道其名称的属性(即OfficePhone、CustomAttribute2、mobile)的值,可以使用以下命令:

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

或者,您可以使用Get-Member,例如:
Get-aduser-joesmith-prop*| gm-MemberType-Property | select-ExpandProperty-name |%{if($test.$|-match“@philips”){[pscustomobject]@{name=$\uuu;Value=$test.$\u}}
,这可能也会让您更容易使用。