145963
Goto Top

Powershell Regulärer Ausdruck

Hallo Admin's,


das erste Bild ist mein Befehl mit dem ich nach den Computernamen in Bild 2 suchen will.
Bisher filtere ich ja nach Namen die ein "e" gefolgt von einer "1" im Namen haben.
Ich möchte aber dieses Muster durch einen Regex austauschen, der mir wie in Bild 2

entweder so ein Muster
1309-002
oder so ein Muster
E126-003
oder so ein Muster
lehrsaal-1

suchen kann. Ich weiß das man Zahlen mit "\d" sucht, und Wörter mit "\w".

Nur versteh ich den richtigen Aufbau nicht. Mein bisheriger Versuch sah so aus:

PS Y:\> Get-ADcomputer -Filter{(name -like "*\w*|*\d*") -and (operatingsystem -like 'Windows 7*')} -Properties * | sort name | Format-Table name,operatingsystem,DistinguishedName

Aber er findet da bei mir nichts. Hab ich zusätzliche Klammern vergessen, zusätzliche Trennzeichen um "\d" und "\w" zu trennen?

Jetzt hab ich folgendes versucht:

PS Y:\> Get-ADcomputer -Filter{(name -like "*[a-zA-Z][1-9]*") -and (operatingsystem -like 'Windows 7*')} -Properties * | sort name | Format-Table name,operatingsystem,DistinguishedName

Aber auch da kein Ergebnis.

Gruß fe-mi-fi
computernamen
computernamenbefehlps

Content-Key: 605415

Url: https://administrator.de/contentid/605415

Printed on: April 25, 2024 at 12:04 o'clock

Mitglied: 145916
Solution 145916 Sep 17, 2020 updated at 15:09:25 (UTC)
Goto Top
Moinsens,
der -Like Operator unterstützt nur simple Wildcards keine Regular Expressions! Liest du hier nach:
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell. ...
Da der ActiveDirectory-Filter keinen -match Vergleichs-Operator besitzt der RegularExpressions-Vergleiche macht kannst du es einfach mit einem nachgeschalteten Where-Object abfackeln:
Get-ADcomputer -Filter {operatingsystem -like 'Windows 7*'} -Properties * | ?{$_.Name -match '^(\d{4}-\d{3}|E\d{3}-\d{3}|\w+-\d+)$'} | sort name | Format-Table name,operatingsystem,DistinguishedName
Noch ein Tipp, das -properties * solltest du besser immer nur auf die Properties einschränken die du wirklich benötigst sonst dauert das ganze länger weil die PS sonst sämtliche Eigenschaften jedes zutreffenden Objektes aus dem AD abfragen muss.

G. eagle
Mitglied: 145963
145963 Sep 17, 2020 at 15:08:15 (UTC)
Goto Top
Danke, hab ich gleich ausprobiert und hat viel gefunden. Mit dem werd ich weiterarbeiten. Danke Dir.
Schönen Feierabend!