Jump to content

anspruchsvolles Login Skript


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hi,

 

falls es auch VBS sein kann. :)

 

Option Explicit

 

const C_Computer = "."

const C_IP = "10.49.248.20"

const C_Range = "10.49.250"

DIM G_IP

 

call S_ScanIP

call S_CheckIP

 

sub S_ScanIP

DIM O_WMI

DIM O_IPSet

DIM O_IP

DIM i

 

Set O_WMI = GetObject("winmgmts:\\" & C_Computer & "\root\cimv2")

Set O_IPSet = O_WMI.ExecQuery ("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")

 

For Each O_IP in O_IPSet

If Not IsNull(O_IP.IPAddress) Then

For i=LBound(O_IP.IPAddress) to UBound(O_IP.IPAddress)

G_IP = O_IP.IPAddress(i)

exit for

Next

End If

Next

end sub

 

sub S_CheckIP

if G_IP = C_IP then

wscript.echo "gleiche IP-Adresse: " & C_IP

else

wscript.echo "gefunden: " & G_IP & vbcrlf & "gesucht: " & C_IP

end if

if instr(C_IP,C_Range) > 0 then

wscript.echo "gleiche Subnetz"

else

wscript.echo "anderes Subnetz"

end if

end sub

 

Ausgabe:

Gleiche IP-Adresse oder unterschiedliche IP-Adresse, gleiches Subnetz oder anderes Subnetz.

Einfach mal die entsprechenden Konstanten anpassen.

Wenn "." bei C_Computer gesetzt ist, wird der lokale Computer genommen, ansonsten einfach den Computernamen anpassen.

 

Für ein Login-Script muss natürlich zuvor noch der Computername ausgelesen werden.

Aber das möchte ich jetzt nicht alles in ein Script packen, da sonst die Übersichtlichkeit für nicht VB-Scripte verloren geht.

 

Das Script habe ich angehängt, bitte das TXT entfernen

IP-Adresse bestimmen.vbs.txt

Link zu diesem Kommentar

An der eingabeaufforderung wird mit ipconfig auch die IP ausgegeben. Packen wir das mal in eine For-Schleife zur Textiteration.

 

for /f  %%e  in ('ipconfig.exe') do echo %%e
pause

 

Der Wildcard für Tokens bewirkt jeweils die Ausgabe der ganzen Zeile als Block.

 

for /f "tokens=*" %%e  in ('ipconfig.exe') do echo %%e
pause

 

Mit Skip werden Zeilen übersprungen.

 

for /f "tokens=* skip=6" %%e  in ('ipconfig.exe') do echo %%e
pause

Link zu diesem Kommentar

Mit set wird der Schleifeninhalt in eine Variable gschrieben, mit & das goto angehängt und damit die Schleife vorzeitig beendet.

 

for /f "tokens=* skip=6" %%e  in ('ipconfig.exe') do set ipadr=%%e & goto end
:end
echo %ipadr%
pause

 

Mit Tokens=14 wird nur der die IP enthaltende Block verarbeitet.

for /f "tokens=14 skip=6" %%e  in ('ipconfig.exe') do set ipadr=%%e & goto end
:end
echo %ipadr%
pause

 

Mit set lassen sich auch Teile einer Zeichenkette extrahieren.

for /f "tokens=14 skip=6" %%e  in ('ipconfig.exe') do set ipadr=%%e & goto end
:end
echo %ipadr%
set ipadr=%ipadr:~0,8%
echo %ipadr%
pause

Ich hoffe, das hilft erstmal weiter.

 

Gruß

 

Edgar

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...