Donnerstag, Februar 27, 2020

Wie kann ich ausschließen, insbesondere Namen von Get-ADComputer-Ergebnisse?

Möchte ich, um alle Rechner in meiner domain, die aktiviert sind, und haben 2003 Betriebssystem und die Namen der Computer, die Nicht enthalten „ping -, pict -, pire‘
Hier ist, was ich habe, aber Total Versagen:

Get-ADComputer -filter {(Enabled -eq $True) -and (OperatingSystem -like "*2003*")} -properties OperatingSystem | where {($_.Name -notlike 'PING*') -or ($_.Name -notlike 'PICT*') -or ($_.Name -notlike 'PIRE*')} | Select Name
  • Was bekommen Sie, wenn Sie ändern -or zu -and (beide)?
  • Definiere „scheitern“. Was für ein Ergebnis kommst du, und wie lässt sich das Verschieden von dem Ergebnis, das Sie erwartet?
  • Ihre Voraussetzungen sollten sein -and seit PICT001 würde mit der Bedingung ($_.Name -notlike 'PING*') machen, dass ein Teil der Bedingung Wahr, das die Anforderungen an die -or. Auch könnte man vereinfachen Sie diese mit ein wenig regex: Where-Object { $_.Name -notmatch "^(PING|PICT|PIRE)"} oder -notmatch "^PI(NG|CT|RE)"}
InformationsquelleAutor Bill | 2014-12-15

1 Kommentar

  1. 4

    Können Sie die -notlike Bediener im inneren des filters, so gibt es keine Notwendigkeit für die where – Anweisung. Finden Sie die Get-ADComputer-Referenz auf der technet-Website.

    Sowie ändern Sie Ihre -or Betreiber -and wie ich bereits erwähnte, habe ich alle Bedingungen in den filter, endend mit diesem:

    Get-ADComputer -filter {
       Enabled -eq $True -and
       OperatingSystem -like '*2003*' -and
       Name -notlike 'PING*' -and
       Name -notlike 'PICT*' -and
       Name -notlike 'PIRE*'
    } | Select Name

Kostenlose Online-Tests