Getting away from filter *

This topic contains 4 replies, has 3 voices, and was last updated by  Richard Diphoorn 2 years, 2 months ago.

  • Author
  • #37738

    Wei-Yen Tan

    I know the need to filter but this has always stumped me with a query like this where the properties does not exist in the default view. ie:

    Get-Adcomputer -filter {$_.operatingsystem -like "*2012 R2*"} -properties operatingsystem 

    This gives an error and I can understand why because properties is outside the filter scriptblock.

    If I try :

    Get-Adcomputer -filter {$_.operatingsystem -like "*2012 R2*"  -properties operatingsystem }

    So now i can only resort to putting that in where-object.

    Can I do this better and then comply with best practices?

  • #37741

    Richard Diphoorn

    These AD filters are always a challenge to get right. You are using the filter in the same way as with Where-Object. This doesn't work, because the AD Cmdlets take in a other filter format. Try this:

    Get-ADComputer -Filter "OperatingSystem -like '*2012 R2*'" -Properties OperatingSystem
  • #37746

    Wei-Yen Tan

    Thanks Richard!

  • #37749

    Richard Siddaway

    This works for me

    Get-ADComputer -Filter {OperatingSystem -eq 'Windows Server 2012 R2 Standard' } -Properties OperatingSystem | select Name, OperatingSystem

  • #37751

    Richard Diphoorn

    @Richard: What is the reason you use a scriptblock instead of a string for the filter parameter?

You must be logged in to reply to this topic.