Hallo miteinander,
habe ein kleines einfaches Script erstellt, welches ein Browserfenster öffnet und mit bestimmten Anmeldedaten befüllt. Dieses Script darf aber nur von einem bestimmten PC ausgeführt werden. Mir fällt leider nichts kreativeres ein, als die MAC Adresse zur Identifikationsprüfung zu verwenden. Daher würde ich vor dem ausführen des Scripts die MAC-Adresse der Netzwerkkarte des PC´s auslesen und per IF-Abfrage überprüfen.
Zum Auslesen der MAC Adresse gibt es ja einige Beispiele im Netz, aber irgendwie klappt das mit der Prüfung nicht. Ich sehe langsam vor lauter Bäumen den Wald nicht mehr.
Hier mein Script: (hab jetzt schon wieder so viel hin und her verändert - wahrscheinlich stimmt´s jetzt vorn und hinten nicht mehr)
Spoiler anzeigen
;Ip Adresse auslesen
Func _GetMacAddress($_phisycaladdress)
Local $chk_1 = StringReplace($_phisycaladdress, '.', '') / 1
If @extended <> 3 Or $chk_1 < 1 Then Return ''
Local $chk_2 = StringSplit($_phisycaladdress, '.', 1)
For $idx_chk = 1 To $chk_2[0]
If ($chk_2[$idx_chk] / 1) < 0 or ($chk_2[$idx_chk] / 1) > 255 Then Return ''
Next
Local $_buf = ''
Local $_pid = Run('nbtstat -a ' & $_phisycaladdress, '', @SW_HIDE, 2)
Do
$_buf &= StdoutRead($_pid)
Until @error
If StringReplace($_buf, 'MAC Adresse = ', '') <> $_buf Then
$chk_3 = StringSplit($_buf, 'MAC Adresse = ', 1)
Return StringReplace(StringReplace($chk_3[2], @CR, ''), @LF, '')
EndIf
Return ''
EndFunc
;Prüfen
Global $MAC_Vorgabe = 'XX:XX:XX:XX:XX:XX'
Global $MACs = StringSplit($_phisycaladdress, @CRLF)
Global $MAC_OK = False
For $i = 1 To $MACs[0]
If $MACs[$i] = $MAC_Vorgabe Then
$MAC_OK = True
ExitLoop
EndIf
Next
If $MAC_OK = True Then
#include
$oIE = _IECreate ("http://Webadresseblabla.de")
If IsObj($oIE) Then
_IELoadWait($oIE)
$oForm = _IEFormGetObjByName($oIE, "userlogin")
$oUsername = _IEFormElementGetObjByName($oForm, "wpName1")
_IEFormElementSetValue($oUsername, "Karlheinzguschtavrüdiger")
$oPasswd = _IEFormElementGetObjByName($oForm, "wpPassword1")
_IEFormElementSetValue($oPasswd, "XXXXXXX")
_IEFormSubmit($oForm)
EndIf
Else
MsgBox(48,"Tja, wahr wohl nix!","Das Ausführen dieses Vorgangs ist an einen bestimmten Client gebunden!")
EndIf
Bin dankbar für jegliche Hilfe. Grüssle...