none
IP Adresse des WLAN-Adapters ändern RRS feed

  • Frage

  • Hallo,

    kurze Vorgeschichte: ich benötige für ein paar Laptops ein Script, womit der User, mit anklicken des Scripts, die Netzwerkkonfiguration des WLAN Adapters (!) auf eine gewisse IP statisch konfiguriert, und falls der User sich wieder in einem anderen Netz befindet, das WLAN wieder auf DHCP beziehen konfigurieren kann.

    Ich habe hierzu bereits gegooglet (da ich mit WMI etc. eher weniger Erfahrung habe), und habe bereits ein batch Script gefunden, was auch ganz gut funktioniert, Problem ist nur, dass hier ein fixes Interface des WLAN Adapters angegeben warden muss, welches auf jedem Laptop anders heißen kann, da es unterschiedene Typen sind...

    Gibt es mit Powershell irgendein Property oder ähnliches, mit dem man einen WLAN Adapter identifizieren kann? Ohne dazu auf den Namen zu gehen?

    Liebe Grüße,

    nolayde

    Dienstag, 24. September 2013 19:57

Antworten

  • Ok !

    Du willst also den Namen des WLan Interfaces wissen

    Meinst das SO ungefähr?

    netsh wlan show interfaces

    WMI und CIM ist eine der wichtigsten Techniken der Microsoft immer mehr Aufmerksamkeit schenkt !
    WMI / CIM zu lernen ist eine SEHR gute Investition in deine Zukunft!

    Function Get-WlanInfo {
    # Findet WLan Netzwerk Interfaces mit Hilfe des DOS Befehls NetSh und WMI
     
        # Alle Wlan Interfaces abfragen
        $NetSh = netsh wlan show interfaces
    
        # sucht die GUID(s) der Wlans(s) anhand eines Regular Expression Muster vergleichs
        $GuidMatchInfos = @($NetSh | Select-String -Pattern '[A-Za-z0-9]{8}-[A-Za-z0-9]{4}-[A-Za-z0-9]{4}-[A-Za-z0-9]{4}-[A-Za-z0-9]{12}')
    
    
        # für jedes gefundene WLan ein Objekt erstellen und Daten herausfiltern
        For($i=0; $i -le $GuidMatchInfos.Count -1 ; $i++){
          
            # die GUID aus dem NtSh Ergebnis auslesen
            # das Property im Result Objekt füllen
            $GUID =  $GuidMatchInfos[$i].Matches[0].value
            
            # mit WMI anhand der GUID den richten netzwerk Adapter finden
            # wir benötigen die NetConnectionID von dem Adapter 
            $Adapter = Get-WmiObject Win32_Networkadapter -filter "GUID='{$GUID}'"
            
            # Network Adapter Configuration von dem WLan Adapter auslesen
            $AdapterConfig = Get-WmiObject -Query "ASSOCIATORS OF {Win32_NetworkAdapter.DeviceID=$($Adapter.DeviceID)} WHERE ResultClass=Win32_NetworkAdapterConfiguration"
            
            # Anhängen des NetConnectionID an das Result OBjekt
            Add-Member -InputObject $AdapterConfig -Name 'NetConnectionID' -MemberType NoteProperty -Value $Adapter.NetConnectionID
            
            # Ausgabe des Result Objektes
            $AdapterConfig
    
        }
    }
    
    Get-WlanInfo | select *
    Der Name den du suchst steht dann in dem Property NetConnectionID


    Meine PowerShell Artikel, Buchtipps und kostenlose PowerShell Tutorials + E-Books
    Mein deutscher PowerShell Blog
    Mein 21 Teiliger PowerShell Video Grundlehrgang
    Deutsche PowerShell Videos auf Youtube
    Folge mir auf:
    Twitter | Facebook | Google+ | Deutsches PowerShell Forum (TechNet)


    Freitag, 27. September 2013 07:55

Alle Antworten

  • Hallo Nolayde!

    Ich habe für dich mal im Internet gesucht! ;-)

    http://lmgtfy.com/?q=powershell+identify+wlan

    Der DOS Befehl "netsh" kann das:

    netsh wlan sh net mode=bssid

    netsh wlan sh net mode=bssid

    hier ist eine Umsetzung zu PowerShell:

    http://poshcode.org/2945

    mit WMI geht das so:

    http://www.powershellmagazine.com/2013/04/04/pstip-detecting-wi-fi-adapters/

    In Windows 8 (PowerShell 3.0) gibt es dafür einen eigenes Cmdlet "Get-NetAdapter".

    Siehe weiter unten im Artikel:

    http://www.powershellmagazine.com/2013/04/04/pstip-detecting-wi-fi-adapters/



    Meine PowerShell Artikel, Buchtipps und kostenlose PowerShell Tutorials + E-Books
    Mein deutscher PowerShell Blog
    Mein 21 Teiliger PowerShell Video Grundlehrgang
    Deutsche PowerShell Videos auf Youtube
    Folge mir auf:
    Twitter | Facebook | Google+ | Deutsches PowerShell Forum (TechNet)


    Mittwoch, 25. September 2013 05:49
  • Für solche Zwecke würde ich eher Tools wie z.B. IP Changer einsetzen.
    http://ipchange.net/

    Das ist für den User auch einfacher zu bedienen, falls die Werte irgendwann mal editiert werden müssen.


    Donnerstag, 26. September 2013 10:13
  • Hallo Peter,

    ich glaube du hast mich falsch verstanden, mein Problem ist, den Interface Namen eines WLANs ausfindig zu machen, den man braucht um die IP am WLAN Adapter zu ändern, ich hätte hierzu Beispielbefehle:

    netsh interface ipv4 set address "WiFi" static 192.168.0.209 255.255.255.0 192.168.0.1 1
    netsh interface ipv4 set dns "WiFi" static 192.168.0.111

    hierzu muss ich jedoch den Namen wissen, in meinem Fall "WiFi".
    Ich denke nicht, dass dieser bei jedem Laptop gleich heißt, daher meine Bedenken...

    Oder hab ich dich jetzt falsch verstanden?

    Donnerstag, 26. September 2013 21:15
  • Ok !

    Du willst also den Namen des WLan Interfaces wissen

    Meinst das SO ungefähr?

    netsh wlan show interfaces

    WMI und CIM ist eine der wichtigsten Techniken der Microsoft immer mehr Aufmerksamkeit schenkt !
    WMI / CIM zu lernen ist eine SEHR gute Investition in deine Zukunft!

    Function Get-WlanInfo {
    # Findet WLan Netzwerk Interfaces mit Hilfe des DOS Befehls NetSh und WMI
     
        # Alle Wlan Interfaces abfragen
        $NetSh = netsh wlan show interfaces
    
        # sucht die GUID(s) der Wlans(s) anhand eines Regular Expression Muster vergleichs
        $GuidMatchInfos = @($NetSh | Select-String -Pattern '[A-Za-z0-9]{8}-[A-Za-z0-9]{4}-[A-Za-z0-9]{4}-[A-Za-z0-9]{4}-[A-Za-z0-9]{12}')
    
    
        # für jedes gefundene WLan ein Objekt erstellen und Daten herausfiltern
        For($i=0; $i -le $GuidMatchInfos.Count -1 ; $i++){
          
            # die GUID aus dem NtSh Ergebnis auslesen
            # das Property im Result Objekt füllen
            $GUID =  $GuidMatchInfos[$i].Matches[0].value
            
            # mit WMI anhand der GUID den richten netzwerk Adapter finden
            # wir benötigen die NetConnectionID von dem Adapter 
            $Adapter = Get-WmiObject Win32_Networkadapter -filter "GUID='{$GUID}'"
            
            # Network Adapter Configuration von dem WLan Adapter auslesen
            $AdapterConfig = Get-WmiObject -Query "ASSOCIATORS OF {Win32_NetworkAdapter.DeviceID=$($Adapter.DeviceID)} WHERE ResultClass=Win32_NetworkAdapterConfiguration"
            
            # Anhängen des NetConnectionID an das Result OBjekt
            Add-Member -InputObject $AdapterConfig -Name 'NetConnectionID' -MemberType NoteProperty -Value $Adapter.NetConnectionID
            
            # Ausgabe des Result Objektes
            $AdapterConfig
    
        }
    }
    
    Get-WlanInfo | select *
    Der Name den du suchst steht dann in dem Property NetConnectionID


    Meine PowerShell Artikel, Buchtipps und kostenlose PowerShell Tutorials + E-Books
    Mein deutscher PowerShell Blog
    Mein 21 Teiliger PowerShell Video Grundlehrgang
    Deutsche PowerShell Videos auf Youtube
    Folge mir auf:
    Twitter | Facebook | Google+ | Deutsches PowerShell Forum (TechNet)


    Freitag, 27. September 2013 07:55
  • Ist das Problem gelöst?

    Grüße, Denniver


    Blog: http://bytecookie.wordpress.com
    Powershell Codesnippet Manager: Link

    Hilf mit und markiere hilfreiche Beiträge mit dem "Abstimmen"-Button (links) und Beiträge die eine Frage von dir beantwortet haben, als "Antwort" (unten).
    Warum das Ganze? Hier gibts die Antwort.

    Freitag, 27. September 2013 12:43
    Moderator
  • Wahnsinn... Ich bewundere deine Beiträge immer wieder von neu...
    Hast mir sehr weitergeholfen!

    Du hast jedoch recht, WMI ist sehr mächtig, welches ich auch gerne näher kennenlernen würde, da ich mich aber derzeit eher auf AD + Exchange in der Powershell festgelegt habe, hättest du evtl. Tipps wo/wie man am besten WMI lernt bzw. ob es hier interessante Bücher gibt?

    Freitag, 27. September 2013 20:55
  • Danke für das Lob, geht runter wie Öl ;-) !

    In deutsch gibt es keine expliziten PowerShell WMI Bücher.

    Hier Empfehle ich dir das Buch

    Windows PowerShell 3.0: Das Praxisbuch
    Autoren: Holger Schwichtenberg, Peter Monadjemi
    Verlag: Addison-Wesley Verlag; Auflage: 3. aktualisierte Auflage (26. April 2013)
    Sprache: Deutsch
    ISBN-10: 3827331757
    ISBN-13: 978-3827331755

    Das Buch von Holger Schwichtenberg und Peter Monadjemi ist für mich zur Zeit das Beste deutsche PowerShell Buch. Es hat eine sehr gutes WMI Kapitel du bekommst es gebraucht schon für 19.- bei Amazon.

    Wenn du Englisch liest kann ich dir das einzige PowerShell WMI Buch empfehlen:

    Powershell and WMI
    Autor: Richard Siddaway
    Verlag: Manning (23. August 2012)
    Sprache: Englisch
    ISBN-10: 1617290114
    ISBN-13: 978-1617290114


    Meine PowerShell Artikel, Buchtipps und kostenlose PowerShell Tutorials + E-Books
    Mein deutscher PowerShell Blog
    Mein 21 Teiliger PowerShell Video Grundlehrgang
    Deutsche PowerShell Videos auf Youtube
    Folge mir auf:
    Twitter | Facebook | Google+ | Deutsches PowerShell Forum (TechNet)

    Montag, 30. September 2013 06:08