Hallo Profis,
mit der folgenden Schleife frage ich die Bios-Settings eines Lenovorechners ab
Code
Func LEN_BiosSettings()
Local $wbemFlagReturnImmediately = 0x10
Local $wbemFlagForwardOnly = 0x20
Local $colItems = ""
Local $strComputer = "localhost"
Local $aBiosArray[1]
Local $a_String
$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] = $objItem.CurrentSetting
$a_String = StringSplit($aBiosArray[UBound($aBiosArray) - 1], ",")
If $objItem.CurrentSetting = "" Then ; hier werden leere Einträge gelöscht
ReDim $aBiosArray[UBound($aBiosArray) - 1]
EndIf
Next
Else
MsgBox(0, "WMI-Ausgabe", "Keine WMI-Objekte gefunden für Klasse: " & "Lenovo_BiosSetting")
EndIf
MsgBox($MB_SYSTEMMODAL, "aBiosArray", _ArrayToString($aBiosArray, @CRLF))
EndFunc ;==>LEN_BiosSettings
Alles anzeigen
Die Ausgabe für $aBiosArray[UBound($aBiosArray) - 1] =$objitem.CurrentSetting wäre z.B.
Row|Col 0
[1]|WakeOnLAN,ACOnly
.
.
.
[n] laber,bla
Um die Ausgabe "lesefreundlich" zu machen hätte ich gerne den Wert des jeweiligen Index in 2 Werte aufgeteilt, nämlich
"AttributeName: WakeOnLan " -- CurrentSetting: " ACOnly.
Die Zeile $a_String = StringSplit($aBiosArray[UBound($aBiosArray) - 1], ",") erzeugt zwar ein Array mit den beiden Strings als jeweiligem Index
aber es scheint so als ob $a_String immer wieder überschrieben wird.
Hat jemand eine Idee wie ich die beiden Beispiel-Strings WakeOnLan und ACOnly als zwei Werte gespeichert bekomme?