Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  ENOVIA SmarTeam
  Abfrage der IP-Adresse / Zugriff auf WSH

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  Abfrage der IP-Adresse / Zugriff auf WSH (1591 mal gelesen)
cwillmann
Moderator
PLM-Berater


Sehen Sie sich das Profil von cwillmann an!   Senden Sie eine Private Message an cwillmann  Schreiben Sie einen Gästebucheintrag für cwillmann

Beiträge: 1487
Registriert: 17.03.2001

Job: die 'big three' in CAD & PDM - aber nicht (mehr) täglich!

erstellt am: 15. Jun. 2007 11:22    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Moin,

ich versuche gerade, in ein Login-Skript die Abfrage für die IP-Adresse des Rechners einzufügen (geht um das Zuweisen bestimmter User-Verzeichnisse). Auf Windows-Seite ist dies einfach über Scripting Host / WMI lösbar und z.B. per vbs aufrufbar. Leider kennt SmarTeam nicht die vollständige Syntax.

Bisheriger Code:

Set IPConfigSet = GetObject("winmgmts://.").ExecQuery("select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")
For Each IPConfig In IPConfigSet
  strIPAddress = Join(IPConfig.IPAddress)
Next

SmarTeam stört sich an dem "Join". Die Abfrage einer bestimmten LAN-Adapters kann entfallen, da nur einer verfügbar. Eine andere Lösung habe ich bisher nicht gefunden. Der Code funktioniert bislang nur, wenn ich strIPAddress = "...." festsetze.

Hat jemand eine Idee bzw. so etwas in Vergangenheit realisiert?

------------------
Grüße,
Christian Willmann

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

kjs
Mitglied
Dipl.-Ing.


Sehen Sie sich das Profil von kjs an!   Senden Sie eine Private Message an kjs  Schreiben Sie einen Gästebucheintrag für kjs

Beiträge: 95
Registriert: 08.09.2006

erstellt am: 16. Jun. 2007 18:30    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für cwillmann 10 Unities + Antwort hilfreich

Hi,

ja haben wir gemacht, aber allerdings lesen wir direkt die Registry aus.
Der Key ist ..local_machine\system\currentcontrolset\services\tcpip\interfaces
wenn Du wirklich nur eine Karte hast, ist's kein problem

Gruss

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

cwillmann
Moderator
PLM-Berater


Sehen Sie sich das Profil von cwillmann an!   Senden Sie eine Private Message an cwillmann  Schreiben Sie einen Gästebucheintrag für cwillmann

Beiträge: 1487
Registriert: 17.03.2001

Job: die 'big three' in CAD & PDM - aber nicht (mehr) täglich!

erstellt am: 02. Jul. 2007 13:05    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


ipadresse.txt

 
Hallo,

die Abfrage über die Registry hat sich als nicht optimal herausgestellt, da jeder Rechner eine andere NetworkCard-ID hat.
Zumindest habe ich es wie folgt realisiert:

' Servicename = ObjShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards\1\ServiceName")
'  strIPAddress = objShell.RegRead("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\" & Servicename & "\Parameters\Tcpip\DhcpIPAddress")

Dies funktioniert leider nur, wenn alle Rechner die gleiche ID ("1") haben.

Daher ein andere Ansatz über das Erzeugen einer Textdatei;

Set objShell = CreateObject("WScript.Shell")
objShell.Run "cmd /c ipconfig > D:\Programme\SMARTEAM\ipadresse.txt",0,true

Set ts = CreateObject("Scripting.FileSystemObject").OpenTextFile("D:\Programme\SMARTEAM\ipadresse.txt")

Do While Not ts.AtEndOfStream
      strLine = ts.ReadLine

      If Instr(1, strLine, "IP-Ad") <> 0 Then
strIPAddress = Trim(Split(strLine, ":")(1))
          Exit Do
      End If
Loop
ts.Close: Set ts = Nothing

objShell.Run "cmd /c del D:\Programme\SMARTEAM\ipadresse.txt",0,false
Set objShell = Nothing

strNetworkAddress = left(strIPAddress,6)  
.... (Class B-Netzwerk - die ersten sechs Ziffern sind entscheidend)


Ergebnis: Die Textdatei wird problemlos erzeugt, SmarTeam hat Probleme mit dem VB-Code zum "Extrahieren" der eigentlichen IP-Adresse. Fehlermeldung: File "...\Split.bs" cannot be opened.

Umschreiben in "strIPAddress = Trim(left(strLine, ":")(1))" führt zu einem "Type mismatch". jetzt bin ich überfragt.

Wie muss die Zeile
        strIPAddress ...
richtigerweise für SmarTeam lauten?

------------------
Grüße,
Christian Willmann

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

MartinKirchmayer
Mitglied



Sehen Sie sich das Profil von MartinKirchmayer an!   Senden Sie eine Private Message an MartinKirchmayer  Schreiben Sie einen Gästebucheintrag für MartinKirchmayer

Beiträge: 79
Registriert: 14.05.2002

SmarTeam V5R18 SP5
SW2007 SP5.0
Oracle 10g
WinXP

erstellt am: 04. Jul. 2007 07:35    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für cwillmann 10 Unities + Antwort hilfreich

Hi,
jaja, Strings in dem komischen was-auch-immer-basic von SmarTeam-Skripten zerlegen...
Hier mein Vorschlag für strIPAddress:

Code:
strIPAddress = Trim$(Item$(strLine,2,,":"))

Und gleich noch ein Vorschlag für das Netz;

Code:
strNetworkAddress = Item$(strIPAddress,1,,".") + "." + Item$(strIPAddress,2,,".")

Hoffe es hilft!

Gruß,
Martin

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

ChristianS
Moderator
Leiter Kundenbetreuung


Sehen Sie sich das Profil von ChristianS an!   Senden Sie eine Private Message an ChristianS  Schreiben Sie einen Gästebucheintrag für ChristianS

Beiträge: 635
Registriert: 27.09.2000

erstellt am: 04. Jul. 2007 18:54    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für cwillmann 10 Unities + Antwort hilfreich

Hi Christian,

versuchs doch mit einer Schleife, anstatt einem Join.

Hier ein Beispiel

Set IPConfigSet = GetObject("winmgmts://.").ExecQuery("select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")
    For Each IPConfig In IPConfigSet
            If Not IsNull(IPConfig.IPAddress) Then
                    For i=LBound(IPConfig.IPAddress) To UBound(IPConfig.IPAddress)
                    WScript.Echo "IPAddress: " & IPConfig.IPAddress(i) 
                    WScript.Echo "Subnet: " & IPConfig.IPSubnet(i) 
                    WScript.Echo "MAC Address " & IPConfig.MACAddress
                    Next
            End If
    Next

kommt von http://www.admins-tipps.de/Microsoft/Windows_Scripting_Host_%28WSH%29/IP-Adresse_mit_VBScript_und_WMI_ermitteln.htmhttp://ww3.cad.de/cgi-bin/ubb/forumdisplay.cgi?action=topics&foru  m=SmarTeam&number=126

Gruß
Christian

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

cwillmann
Moderator
PLM-Berater


Sehen Sie sich das Profil von cwillmann an!   Senden Sie eine Private Message an cwillmann  Schreiben Sie einen Gästebucheintrag für cwillmann

Beiträge: 1487
Registriert: 17.03.2001

Job: die 'big three' in CAD & PDM - aber nicht (mehr) täglich!

erstellt am: 05. Jul. 2007 16:26    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,

besten Dank Euch beiden - hat geklappt!

------------------
Grüße,
Christian Willmann

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz