Skip to content

opsi.orgheader image

opsi.org
Views
opsi wiki page >>

NetworkAdapterConfiguration (with python & WMI)

Document Actions
last edited 3 years ago by pwpete
Simple Python script for changing several NetworkAdapterConfigurations
on a W2K-Client (such as DefaultIPGateway, Dynamic DHCP, automatic 
DNS-Serveraddress, DNSSuffixSearchOrder). It needs the python sw (see
winst scripts) previously installed.

# Autor: P.L.Wellmann (wp)/ 27.11.2006 (with thanks to UIB)
#--------------------------------------------------------------#
# 1. Loesche DefaultIPGateway (geht aber nur bei               #
#    statischem DHCP, daher die erste Aktion)                  #
# 2. Enable DHCP fuer jedes Interface                          #
# 3. DISABLE LMHOSTS                                           #
# 4. DNS-Domain fuer jedes Interface                           #
# 5. NetbiosOption ="0" f.j. Interface (0=Netbios ueber DHCP)  #
# 6. Enable automatische DNS-Serveradresse                     #
# 7. Changing DNSDomainSuffixSearchOrder                       #
# 8. Ausgabe der Einstellungen (IPConfig-like)                 # 
# 9. OPTIONAL: Dynamische DNSRegistrierung                     #
#---------------------------------------------- wp fecit MMVI -#

import wmi
c = wmi.WMI ()
Standort = "xxx.yy"
DNSSO_SZ = (u'xxx.yy', u'yyy.xx',)
h = ()
f = False

c.Win32_NetworkAdapterConfiguration.EnableWINS(WINSEnableLMHostsLookup=f)

###-------------------Loesche Default Gateway----------------------### 
for interface in c.Win32_NetworkAdapterConfiguration (IPenabled=1):
    if interface.DHCPEnabled is (False):
        if interface.DefaultIPGateway > 0:
            for x in interface.DefaultIPGateway:
                interface.SetGateways(DefaultIPGateway=h)
                
###------------------------- Enable DHCP --------------------------###
    a = interface.DHCPEnabled
    if a is (False):
            print "AKTIVIERE DHCP"
            print (interface.caption)
            interface.EnableDHCP
            b = interface.EnableDHCP()
            c = interface.DHCPEnabled
            if c < 1 :
                print "DHCP AKTIVIERT"
    else:
          print "DHCP BEREITS AKTIVIERT"

###------------------------- Disable LMHOSTS ----------------------###
    if interface.WINSEnableLMHostsLookup is True:
         interface.EnableWINS(SetWINSEnableLMHostsLookup=f)

###-------------- Set DNS Domain und NetbiosOptions ---------------###
    interface.SetDNSDomain(DNSDomain=Standort)
    interface.SetTcpipNetbios(TcpipNetbiosOptions=0)

#--------------------------------------------------------------------#
#                 automatische DNS-Serveradresse                     #
#            durch Loeschen der DNSServerSearchOrder                 #
#--------------------------------------------------------------------#    
    if (interface.DNSServerSearchOrder)>0:
        for x in interface.DNSServerSearchOrder:
           interface.SetDNSServerSearchOrder(DNSServerSearchOrder=h)

#--------------------------------------------------------------------#
# Changing DNSDomainSuffixSearchOrder (Anhaengen der DNS-Suffixe     #
# in Erweiterte TCPIP-Einstellungen)                                 # 
#--------------------------------------------------------------------#
    DNSSO = interface.DNSDomainSuffixSearchOrder
    if DNSSO<>DNSSO_SZ:
        c.Win32_NetworkAdapterConfiguration.SetDNSSuffixSearchOrder(DNSDomainSuffixSearchOrder=DNSSO_SZ)

###-------------- Fuer spaetere Wuensche des Netzadmin ------------###     
#   interface.SetDynamicDNSRegistration(FullDNSRegistrationEnabled=False)
#   interface.SetDynamicDNSRegistration(DomainDNSRegistrationEnabled=False)
###----------------------------------------------------------------###

#--------------------------------------------------------------------#
#                       Ausgabe der Einstellungen                    #
#--------------------------------------------------------------------#
    print "Adapter:",interface.caption
    print "IP-Adresse des Adapters    |               : ",interface.IPAddress
    print "MAC-Adresse des Adapters   |               : ",interface.MACAddress
    print "DHCP aktiviert?            | [TRUE ist gut]: ",interface.DHCPenabled
    print "DNS-Domain-Interface       |               : ",interface.DNSDomain
    print "DNSServerSearchOrder       |    [vom DHCP?]: ",interface.DNSServerSearchOrder
    print "DNS-DomainServerSearchOrder|               : ",interface.DNSDomainSuffixSearchOrder
    print "DefaultIPGateway           |    [vom DHCP?]: ",interface.DefaultIPGateway
    print "TcpipNetbiosOptions        |    [0 ist gut]: ",interface.TcpipNetbiosOptions
    print "WINS/LMHOSTS aktiviert?    |[False ist gut]: ",interface.WINSEnableLMHostsLookup
    print "---------------------------------------------------------------------"
exit