Hallo Gemeinde,
ich versuche die nachfolgende Bios-Option mittels StringRegExp zu finden:
# 34|Active: True - CurrentSetting: MinimumPasswordLength,4
Es ist das Ergebnis aus _DebugArrayDisplay($aBiosArray).
Code
Local $wbemFlagReturnImmediately = 0x10
Local $wbemFlagForwardOnly = 0x20
Local $colItems = ""
Local $strComputer = "localhost"
Local $aBiosArray[1]
Local $sindex2 = ""
Local $pattern = ".*MinimumPasswordLength\s*,\s*[1-9][0-9]*.*"
$objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\WMI")
$colItems = $objWMIService.ExecQuery("SELECT * FROM Lenovo_BiosSetting", "WQL", _
$wbemFlagReturnImmediately + $wbemFlagForwardOnly)
If IsObj($colItems) Then
For $objItem In $colItems
ReDim $aBiosArray[UBound($aBiosArray) + 1]
$aBiosArray[UBound($aBiosArray) - 1] = "Active: " & $objItem.Active & " - CurrentSetting: " & $objItem.CurrentSetting
; If MsgBox(1, "WMI-Ausgabe", $Output) = 2 Then ExitLoop
; $Output = ""
Next
_DebugArrayDisplay($aBiosArray)
Else
MsgBox(0, "WMI-Ausgabe", "Keine WMI-Objekte gefunden für Klasse: " & "Lenovo_BiosSetting")
EndIf
For $i = 0 To UBound($aBiosArray) - 1
If StringRegExp($aBiosArray[$i], $pattern) Then
MsgBox(0, "Gefunden", "Passende Zeichenkette für " & $pattern & " gefunden!" & " - " & @error & " - " & $aBiosArray[$i])
Else
MsgBox(0, "Nicht gefunden", "Kein passendes Muster für " & $pattern & " gefunden." & " - " & @error)
ExitLoop
EndIf
Next
Alles anzeigen
Das sich die Zahl hinter MinimumPasswordLength aber durchaus eine andere sein kann, wollte ich mit "$pattern" und StringRegExp nach dem Eintrag suchen.
Leider wird aber der String nicht gefunden.
Suche ich mit <$sindex2 = _ArraySearch($aBiosArray, "MinimumPasswordLength,4", 0, 0, 0, 1) ; Zahl 1 = Teilsuche > wird der Index 34 ausgegeben.
Hat jemand eine Idee warum StringRegExp den String nicht findet?