问题描述
我想从这个命令中提取 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”的 ID(第一个,但在某些 PC 上,它是第二个)而不是“TPM”
我试图用选择字符串来做到这一点,但它同时返回:/
有没有办法“告诉”选择字符串只打印“mot de passe numérique”表达式之后的 ID?
谢谢:)
解决方法
使用 Sub Main()
Static size As Long
Static c As Variant
Static arr As Variant
Static n As Long
size = 3
c = Array(1,2,3,4,5,6)
n = UBound(c) + 1
ReDim arr(size - 1)
EmbeddedLoops 0,size,c,n,arr
End Sub
Function EmbeddedLoops(index,k,arr)
Dim i As Variant
If index >= k Then
PrintArrayOnSingleLine arr
Else
For Each i In c
arr(index) = i
EmbeddedLoops index + 1,arr
Next i
End If
End Function
Public Sub PrintArrayOnSingleLine(myArray As Variant)
Dim counter As Integer
Dim textArray As String
For counter = LBound(myArray) To UBound(myArray)
textArray = textArray & myArray(counter)
Next counter
Debug.Print textArray
End Sub
的 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] }
之后的行