Ich habe das mal separiert, da meine "Nebenfrage" doch etwas umfangreicher zu sein scheint als gedacht.
Ich hab meinen Denkfehler beim auslesen der Information zwar gefunden, es ist ja eine tabelle bzw. 2D Array, aber nach dem ersten PC (Abfrage erfolgreich) bekomme ich folgende Fehlermeldung:
Code
Global $g_sUserName = '...', $g_sPassword = '...'
..
$IP wird festgelegt
Lizenz($IP)
$IP wird neu festgelegt //nächster PC
Lizenz($IP)
..
Func Lizenz($IP) //Prüfung ob IP erreichbar ist, wenn ja folgende Abfrage starten
$g_aLizenzstatus = _Get_Lizenzstatus($IP, $g_sUserName, $g_sPassword)
if $g_aLizenzstatus[3][1] = "Lizenziert" Then
logging("IP: " & $IP & " - ok " & $g_aLizenzstatus[3][1], 1) //Ausgabe in die GUI und log
Else
logging("IP: " & $IP & " - bad " & $g_aLizenzstatus[3][1], 1) //Ausgabe in die GUI und log
EndIf
EndFunc
Func _Get_Lizenzstatus($sComputerName = '', $sUser = '', $sPassword = '')
Local $sCMD, $iPID, $sText, $aText, $aSplit
$sCMD = 'cscript.exe //Nologo //E:vbs C:\Windows\System32\slmgr.vbs ' & $sComputerName & ' ' & $sUser & ' ' & $sPassword & ' /dli'
$iPID = Run($sCMD, '', @SW_HIDE, $STDOUT_CHILD) If Not $iPID Then Return SetError(1, 0, False)
ProcessWaitClose($iPID)
$sText = StdoutRead($iPID)
If $sText Then
$aText = StringSplit($sText, @CRLF, 3)
_ArrayColInsert($aText, 1)
For $i = UBound($aText) -1 To 0 Step -1
$aSplit = StringSplit($aText[$i][0], ': ', 3)
If UBound($aSplit) <> 2 Then
_ArrayDelete($aText, $i)
ContinueLoop
EndIf
$aText[$i][0] = $aSplit[0]
$aText[$i][1] = $aSplit[1]
Next
Return $aText
EndIf
Return SetError(2, 0, False)
EndFunc
Alles anzeigen
Ich erhalte auch keinen Error zurück.