none
DNS Adresse: Dynamisch oder nicht? Einstellung abfragen RRS feed

  • Frage

  • Moin,

    Es gelingt mir, über

    Dim objMC As ManagementClass = New ManagementClass("Win32_NetworkAdapterConfiguration")
          Dim objMOC As ManagementObjectCollection = objMC.GetInstances
          
          For Each objMO As ManagementObject In objMOC

    alles mögliche abzufragen, einschließlich der DNS-Adresse(n). Allerdings kann ich ums Verrecken nicht entdecken, wie ich rauskriege, ob 'DNS-Adresse automatisch beziehen' oder 'Folgende DNS-ServerAdressen verwenden' in den IPv4-Einstellungen festgelegt ist, denn DNS-Adressen werden so oder so zurückgegeben.
    (die Eigenschaften 'DomainDNSRegistrationEnabled' und 'FullDNSRegistrationEnabled' verändern sich hier nicht.
    Hab das auch so probiert:

     Dim adapters() As NetworkInterface = NetworkInterface.GetAllNetworkInterfaces()
          For Each adap As NetworkInterface In adapters
             If adap.Description = Korrekteradapter Then
                Dim props As IPInterfaceProperties = adap.GetIPProperties
                'Return props.IsDnsEnabled 'geht nicht
                Return props.IsDynamicDnsEnabled 'geht auch nicht
             End If

    M.E. gibt das die beiden gleichen Werte zurück wie mein Managementobjekt)

    Ach: Und dann müsste ich noch wissen, wie man das 'DNS-Adresse automatisch beziehen' per code setzt. ('Folgende DNS-ServerAdressen verwenden' wird automatisch gesetzt, wenn man eine DNS-Adresse setzt per code)

    Kann mir hier jemand helfen?

    Montag, 11. Januar 2016 16:35

Antworten

Alle Antworten

  • Hallo Migration Sucks,

    Sieh Dir folgenden Thread an:
    Set DNS to 'Obtain automatically' programmatically

    Wenn Du den DNSServerSearchOrder-Parameter des von GetMethodParameters zurückgegebenen BaseManagementObjects auf null setzt, werden die Adressen automatisch bezogen, andernfalls werden die als String-Array zugewiesenen Adressen verwendet. Der Code lässt sich mit einem Konverter nach VB.NET konvertieren.

    Gruß,
    Dimitar


    Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.

    Dienstag, 12. Januar 2016 14:49
    Administrator
  • Sieh Dir folgenden Thread an:
    Set DNS to 'Obtain automatically' programmatically

    Wenn Du den DNSServerSearchOrder-Parameter des von GetMethodParameters zurückgegebenen BaseManagementObjects auf null setzt, werden die Adressen automatisch bezogen, andernfalls werden die als String-Array zugewiesenen Adressen verwendet.

    Vielen Dank Dimitar, das sieht vielversprechend aus und klingt logisch.

    nur noch schnell zur Sicherheit (denn so lese und setze ich bis jetzt schon die Parameter): Null in C ist NOTHING in VB, gelle?

    ManagementBaseObject mboDNS = mObj.GetMethodParameters("SetDNSServerSearchOrder");
         if (mboDNS != null)
         {
            mboDNS["DNSServerSearchOrder"] = null;
            mObj.InvokeMethod("SetDNSServerSearchOrder", mboDNS, null);
         }

    Dienstag, 12. Januar 2016 16:55
  • Hi,

    nur noch schnell zur Sicherheit (denn so lese und setze ich bis jetzt schon die Parameter): Null in C ist NOTHING in VB, gelle?

    In der Regel ja. Ob das nun immer und überall gilt, weiß ich nicht, dafür kenne ich mich in C, C++, ... nicht genug aus. Aber für alle Fälle, in denen mir das bislang untergekommen ist, ist deine Annahme korrekt.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Dienstag, 12. Januar 2016 17:05
    Moderator
  • Sieh Dir folgenden Thread an:
    Set DNS to 'Obtain automatically' programmatically

    Nochmal an Alle die mitlesen:

    Die Frage: wie setze ich DNS auf 'automatisch beziehen' ist durch Dimitar beantwortet.

    Ich kann das nun setzen. Der Umkehrschluss gilt allerdings nicht: auch bei 'automatisch beziehen' wird eine DNS-Adresse bei der Abfrage zurückgegeben. Das eignet sich also nicht als Lösung für meine Eingangsfrage.

    Daher nochmal:

    Wie kann ich abfragen ob 'DNS automatisch beziehen' gesetzt ist oder nicht?

    Vielen Dank an Euch für die Hilfe bis hierhin!
    Thomas

    Dienstag, 12. Januar 2016 23:29
  • Hallo Thomas,

    wenn ich das richtig sehe, kannst Du diese Einstellung nicht in der Form abfragen, dass Du das über eine Eigenschaft ermitteln könntest. Siehe dazu:

      http://serverfault.com/questions/582199/can-you-use-wmi-to-determine-if-a-connection-gets-its-dns-servers-from-dhcp

    Das einzige, was Du hier machen kannst, dürfte das abfragen von DHCPEnabled sein.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community


    Dienstag, 12. Januar 2016 23:53
    Moderator
  •   http://serverfault.com/questions/582199/can-you-use-wmi-to-determine-if-a-connection-gets-its-dns-servers-from-dhcp

    Das einzige, was Du hier machen kannst, dürfte das abfragen von DHCPEnabled sein.

    Danke Stefan, ein interessanter Link. Schlecht nachvollziehbar, dass man diese Info tatsächlich offenbar nirgends mit Bordmitteln bekommen kann, wo doch netsh diese Information abrufen kann.
    Mittwoch, 13. Januar 2016 16:52