Select-换行后的字符串

Select-String after line break

我想从此命令中提取 ID:

    manage-bde -protectors c: -get
    

这条命令的结果是:

Volume C: [Windows]
Tous les protecteurs de clés

    Mot de passe numérique :
      ID : {XXXXXXX-A315-42C6-9754-XXXXXXXXXX}
      Mot de passe :
        XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX

    TPM :
      ID : {XXXXXX-99B3-481B-B3FA-XXXXXXXXXXX}
      Profil de validation PCR :
        7, 11
        (Utilise le démarrage sécurisé pour la validation d’intégrité.)

我只想要来自“Mot de passe numérique”(第一个,但在某些 PC 上是第二个)的 ID,而不是“TPM”

我试图用 select-string 来做到这一点,但它 return 都 :/

有没有办法“告诉”select-string 仅打印“mot de passe numérique”表达式后的 ID?

谢谢:)

使用Select-String-Context参数表明您对周围匹配的行感兴趣:

$mbdeOutput = manage-bde -protectors c: -get

$mbdeOutput |Select-String 'Mot de passe numérique :' -Context 0,1 |ForEach-Object { $_.Context.PostContext[0] }

这应该输出紧跟在Mot de passe numérique :

之后的行