Getting away from filter *

Welcome Forums General PowerShell Q&A Getting away from filter *

This topic contains 4 replies, has 3 voices, and was last updated by

 
Participant
2 years, 9 months ago.

  • Author
    Posts
  • #37738

    Participant
    Points: 1
    Rank: Member

    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

    Participant
    Points: 26
    Rank: Member

    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

    Participant
    Points: 1
    Rank: Member

    Thanks Richard!

  • #37749

    Participant
    Points: 0
    Rank: Member

    This works for me

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

  • #37751

    Participant
    Points: 26
    Rank: Member

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

The topic ‘Getting away from filter *’ is closed to new replies.