2017-02-17 4 views
-1

Извините за этот вопрос. Я все еще новичок в REGEX.Powershell и REGEX вытащить информацию из запроса LDAP

Я использую PowerShell для создания сценария, и мне нужно, чтобы создать серию IF THEN отчетности

У меня есть массив, который содержит следующие LDAP запросов:

(&(objectCategory=user)(objectClass=user)(PhysicalDeliveryOfficeName=XXXX, XX)(sAMAccountName=%LogonUser%)) 

(&(objectCategory=user)(objectClass=user)(PhysicalDeliveryOfficeName=XXXX, XX)(sAMAccountName=%LogonUser%)) 

(&(objectCategory=user)(objectClass=user)(PhysicalDeliveryOfficeName=*XXXXXX*)(sAMAccountName=%LogonUser%)) 

(&(objectCategory=user)(objectClass=user)(scriptpath=XXXXX*.XXX)(sAMAccountName=%LogonUser%)) 

Использование для цикла и REGEX, я хочу иметь возможность вытаскивать все упоминания «PhysicalDeliveryOfficeName» и «scriptpath» между (и =

Кроме того, далее в сценарии я хотел бы иметь возможность вытащить все Xs между = и)

Есть ли способ сделать то и другое? Они не должны быть в одном заявлении. Два отдельных заявления в порядке

Xs представляет город, штат, а в случае запроса сценария имя файла. Однако, как вы можете видеть, город и государство не всегда одинаковы.

Заранее за вашу помощь

+1

показать нам ожидаемый результат –

+1

Добро пожаловать в Stackoverflow, люди могут помочь с ошибками или проблемами сценариев, но обратите внимание, что это не служба написания кода. Поделитесь тем, что вы пробовали вместе с сообщениями об ошибках. Включение ожидаемого результата также полезно. – user4317867

+0

Я могу написать сценарий Powershell сам, я просто не так хорош с REGEX. Я просто хотел бы, чтобы регулярное выражение вытащило «PhysicalDeliveryOfficeName», «PhysicalDeliveryOfficeName», «PhysicalDeliveryOfficeName», «scriptpath». – Brian

ответ

0

Это должно работать.

Regex:

(scriptpath|PhysicalDeliveryOfficeName)=(.+?)(?=\)) 

Вход:

(&(objectCategory=user)(objectClass=user)(PhysicalDeliveryOfficeName=XXXX, XX)(sAMAccountName=%LogonUser%)) 

(&(objectCategory=user)(objectClass=user)(PhysicalDeliveryOfficeName=XXXX, XX)(sAMAccountName=%LogonUser%)) 

(&(objectCategory=user)(objectClass=user)(PhysicalDeliveryOfficeName=*XXXXXX*)(sAMAccountName=%LogonUser%)) 

(&(objectCategory=user)(objectClass=user)(scriptpath=XXXXX*.XXX)(sAMAccountName=%LogonUser%)) 

Выходные:

PhysicalDeliveryOfficeName=XXXX, XX 
PhysicalDeliveryOfficeName=XXXX, XX 
PhysicalDeliveryOfficeName=*XXXXXX* 
scriptpath=XXXXX*.XXX 

Группы: (Для первого матча)

$0 = PhysicalDeliveryOfficeName=XXXX, XX => Full Match 
$1 = PhysicalDeliveryOfficeName 
$2 = XXXX, XX 

https://regex101.com/r/thHmlq/3

+0

Спасибо за помощь. Это работало как прелесть! – Brian