Jump to content
Sign in to follow this  
Dwalfware

WMI and IPV6

Recommended Posts

HI

Another head scratched

Anyone solve how to get the IPV6 from WMI?

I followed the usual SELECT * FROM Win32_NetworkAdapter WHERE NetConnectionID='" & GUICtrlRead($cboAdapters) & "'

get the index 

port it to 

Local $query = $objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE Index = " & _GetSelectedNIC(), "WQL", 0x30 )

All i can see is IPv4 addresses

My question is is there another place the IPv6 information is hiding? I configured my LAN with IPV6 and my wireless with IPv4 so I can see what shows.

Thanks in Advance.

PS. I did try google :(

 

Share this post


Link to post
Share on other sites

3270 lines of code .... lol   :D

I would need to do a bit more work before I can reveal all that code.

 

 

 

Edited by Dwalfware

Share this post


Link to post
Share on other sites
29 minutes ago, Dwalfware said:

3270 lines of code .... lol

The idea behind asking for help is to create a runable example of what it is not working.  And it is not asking us to work for you until you get the right solution...

Share this post


Link to post
Share on other sites

Hello, thank you and I found IPv6 in WMI

It seems you have to have an enabled and connected network card to see the interface. Now all what is missing is the DNS for IPv6 

below is the script and sorry for any inconvenience

 

#include <Array.au3>
Global $SelectedAdapters[1][37], $AdaptorInfo[1][21]
$SelectedAdapters[0][0] = 0
$AdaptorInfo[0][0] = 0

; USE Local Area Connection or Wireless Network Connection  @ _GetSelectedNIC()

_GETcurrentNICinfo()

;------------------------------------------------------------------------------------------------------------
; ------------------------
; GET THE NIC INFO
; ------------------------
Func _GETcurrentNICinfo()
$AdaptorInfo[0][0]
Local $objWMIService = ObjGet( "winmgmts:\\" & @ComputerName & "\root\CIMV2" )
Local $query = $objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE Index = " & _GetSelectedNIC(), "WQL", 0x30 )
; ..................................................
If @error Then
ConsoleWrite("" & @CRLF)
ConsoleWrite("************************************************************" & @CRLF)
ConsoleWrite(" " & @CRLF)
ConsoleWrite("WARNING:NIC get Error" & @CRLF)
ConsoleWrite( "Not completed error" & @CRLF)
ConsoleWrite( " " & @CRLF)
ConsoleWrite("************************************************************" & @CRLF)
Return
EndIf
; ..................................................
If IsObj($query) Then
For $objItem In $query
; ...........................................
$AdaptorInfo[0][0] = $objItem.DHCPEnabled
$AdaptorInfo[0][13] = $objItem.DHCPLeaseExpires
$AdaptorInfo[0][1] = $objItem.DHCPServer
; ...........................................
If UBound($objItem.IPAddress) = 0 then
$AdaptorInfo[0][2] = ""
$AdaptorInfo[0][3] = ""
$AdaptorInfo[0][19] = ""
Endif
If UBound($objItem.IPAddress) = 1 then                    ; If only IPv4
$String0 = UBound($objItem.IPAddress) -1
$AdaptorInfo[0][2] = $objItem.IPAddress[$String0]
$AdaptorInfo[0][3] = ""
Endif
If UBound($objItem.IPAddress) = 2 then                    ; If Both IPV4 and IPV6
$String0 = UBound($objItem.IPAddress) -2
$AdaptorInfo[0][2] = $objItem.IPAddress[$String0]
$String1 = UBound($objItem.IPAddress) -1
$AdaptorInfo[0][3] = $objItem.IPAddress[$String1]
Endif
If UBound($objItem.IPAddress) = 3 then                    ; If Both IPV4 and IPV6
$String00 = UBound($objItem.IPAddress) -3
$AdaptorInfo[0][2] = $objItem.IPAddress[$String00]
$String0 = UBound($objItem.IPAddress) -2
$AdaptorInfo[0][3] = $objItem.IPAddress[$String0]
$String1 = UBound($objItem.IPAddress) -1
$AdaptorInfo[0][19] = $objItem.IPAddress[$String1]
Endif
; ...........................................
; ...........................................
If UBound($objItem.IPSubnet) = 0 then
$AdaptorInfo[0][4] = ""
$AdaptorInfo[0][5] = ""
Endif
If UBound($objItem.IPSubnet) = 1 then                    ; If Subnet
$String0 = UBound($objItem.IPSubnet) -1
$AdaptorInfo[0][4] = $objItem.IPSubnet[$String0]
$AdaptorInfo[0][5] = ""
Endif
If UBound($objItem.IPSubnet) = 2 then                    ; If more than one Subnet
$String0 = UBound($objItem.IPSubnet) -2
$AdaptorInfo[0][4] = $objItem.IPSubnet[$String0]
$String1 = UBound($objItem.IPSubnet) -1
$AdaptorInfo[0][5] = $objItem.IPSubnet[$String1]
Endif
If UBound($objItem.IPSubnet) = 3 then                    ; If more than one Subnet
$String00 = UBound($objItem.IPSubnet) -3
$AdaptorInfo[0][4] = $objItem.IPSubnet[$String00]
$String0 = UBound($objItem.IPSubnet) -2
$AdaptorInfo[0][5] = $objItem.IPSubnet[$String0]
$String1 = UBound($objItem.IPSubnet) -1
$AdaptorInfo[0][20] = $objItem.IPSubnet[$String1]
Endif
;$AdaptorInfo[0][4] = $objItem.IPSubnet[0]
;$AdaptorInfo[0][5] = $objItem.IPSubnet[1]
; ...........................................
; ...........................................
If UBound($objItem.DefaultIPGateway) = 0 then
$AdaptorInfo[0][6] = ""
$AdaptorInfo[0][16] = ""
Endif
If UBound($objItem.DefaultIPGateway) = 1 then                    ; Get the Default Gateway
$String0 = UBound($objItem.DefaultIPGateway) - 1
$AdaptorInfo[0][6] = $objItem.DefaultIPGateway[$String0]
$AdaptorInfo[0][16] = ""
Endif
If UBound($objItem.DefaultIPGateway) = 2 then                     ; If more than one Gateway
$String0 = UBound($objItem.DefaultIPGateway) -2
$AdaptorInfo[0][6] = $objItem.DefaultIPGateway[$String0]
$String1 = UBound($objItem.DefaultIPGateway) -1
$AdaptorInfo[0][16] = $objItem.DefaultIPGateway[$String1]
Endif
;$AdaptorInfo[0][6] = $objItem.DefaultIPGateway[0]
;$AdaptorInfo[0][16] = $objItem.DefaultIPGateway[1]
; ...........................................
; ...........................................

If UBound($objItem.DNSServerSearchOrder) = 0 then
$AdaptorInfo[0][7] = ""
$AdaptorInfo[0][8] = ""
$AdaptorInfo[0][17] = ""
$AdaptorInfo[0][18] = ""
Endif
If UBound($objItem.DNSServerSearchOrder) = 1 then                    ; If one DNS
$String0 = UBound($objItem.DNSServerSearchOrder) -1
$AdaptorInfo[0][7] = $objItem.DNSServerSearchOrder[$String0]
$AdaptorInfo[0][8] = ""
$AdaptorInfo[0][17] = ""
$AdaptorInfo[0][18] = ""
Endif
If UBound($objItem.DNSServerSearchOrder) = 2 then                    ; If more than one DNS
$String0 = UBound($objItem.DNSServerSearchOrder) -2
$AdaptorInfo[0][7] = $objItem.DNSServerSearchOrder[$String0]
$String1 = UBound($objItem.DNSServerSearchOrder) -1
$AdaptorInfo[0][8] = $objItem.DNSServerSearchOrder[$String1]
$AdaptorInfo[0][17] = ""
$AdaptorInfo[0][18] = ""
Endif
If UBound($objItem.DNSServerSearchOrder) = 3 then                    ; If more than one DNS
$String00 = UBound($objItem.DNSServerSearchOrder) -3
$AdaptorInfo[0][7] = $objItem.DNSServerSearchOrder[$String00]
$String0 = UBound($objItem.DNSServerSearchOrder) -2
$AdaptorInfo[0][8] = $objItem.DNSServerSearchOrder[$String0]
$String1 = UBound($objItem.DNSServerSearchOrder) -1
$AdaptorInfo[0][17] = $objItem.DNSServerSearchOrder[$String1]
$AdaptorInfo[0][18] = ""
Endif
If UBound($objItem.DNSServerSearchOrder) = 4 then                    ; If more than one DNS
$String000 = UBound($objItem.DNSServerSearchOrder) -4
$AdaptorInfo[0][7] = $objItem.DNSServerSearchOrder[$String000]
$String00 = UBound($objItem.DNSServerSearchOrder) -3
$AdaptorInfo[0][8] = $objItem.DNSServerSearchOrder[$String00]
$String0 = UBound($objItem.DNSServerSearchOrder) -2
$AdaptorInfo[0][17] = $objItem.DNSServerSearchOrder[$String0]
$String1 = UBound($objItem.DNSServerSearchOrder) -1
$AdaptorInfo[0][18] = $objItem.DNSServerSearchOrder[$String1]
Endif
;$AdaptorInfo[0][7] = $objItem.DNSServerSearchOrder[0]
;$AdaptorInfo[0][8] = $objItem.DNSServerSearchOrder[1]
; ...........................................
; ...........................................
$AdaptorInfo[0][9] = $objItem.MACAddress
$AdaptorInfo[0][13] = $objItem.DHCPLeaseExpires
; ...........................................
Next
Else
ConsoleWrite("" & @CRLF)
ConsoleWrite( "************************************************************" & @CRLF)
ConsoleWrite(" " & @CRLF)
ConsoleWrite( "WARNING:WINDOWS NIC INFO NOT FOUND" & @CRLF)
ConsoleWrite("Not completed error or not true" & @CRLF)
ConsoleWrite(" " & @CRLF)
ConsoleWrite("************************************************************" & @CRLF)
Return
EndIf

; .................................................. ADD ON INFO
$AdaptorInfo[0][10] = @LogonDomain
$AdaptorInfo[0][11] = @LogonServer
$AdaptorInfo[0][14] = @LogonDNSDomain
$AdaptorInfo[0][15] = @ComputerName
; ..................................................
; ---------------------------------------------
;  DISPLAY THE NIC INFO
; ---------------------------------------------
ConsoleWrite("NETWORK ADAPTOR INFORMATION" & @CRLF)
ConsoleWrite( "************************************************************" & @CRLF)
ConsoleWrite( $SelectedAdapters[0][7] & @CRLF)
If $SelectedAdapters[0][23] = 0 then
ConsoleWrite("NIC Status: Disabled" & @CRLF)
Endif
If $SelectedAdapters[0][23] = 7 then
ConsoleWrite("NIC Status: Enabled no Connection" & @CRLF)
Endif
If $SelectedAdapters[0][23] = 2 then
ConsoleWrite("NIC Status: Connected ok" & @CRLF)
Endif
ConsoleWrite("NIC Connected: " & $SelectedAdapters[0][24] & @CRLF)
ConsoleWrite("DHCP Enabled: " & $AdaptorInfo[0][0] & @CRLF)
ConsoleWrite("DHCP Lease Ex: " & $AdaptorInfo[0][13] & @CRLF)
ConsoleWrite("DHCP Server: " & $AdaptorInfo[0][1] & @CRLF)
ConsoleWrite("IPV4 Address1: " & $AdaptorInfo[0][2] & @CRLF)
ConsoleWrite("IPV6 Address1: " & $AdaptorInfo[0][3] & @CRLF)
ConsoleWrite("IPV6 Address2: " & $AdaptorInfo[0][19] & @CRLF)
ConsoleWrite("Subnet IPv4: " & $AdaptorInfo[0][4] & @CRLF)
ConsoleWrite("Subnet Prefix IPv4: " & $AdaptorInfo[0][5] & @CRLF)
ConsoleWrite("Subnet Prefix IPv6: " & $AdaptorInfo[0][5] & @CRLF)
ConsoleWrite("Gateway IPv4: " & $AdaptorInfo[0][6] & @CRLF)
ConsoleWrite("Gateway IPv6: " & $AdaptorInfo[0][16] & @CRLF)
ConsoleWrite("DNS Primary IPv4: " & $AdaptorInfo[0][7] & @CRLF)
ConsoleWrite("DNS Secondry IPv4: " & $AdaptorInfo[0][8] & @CRLF)
ConsoleWrite("DNS Primary IPv6: " & $AdaptorInfo[0][17] & @CRLF)
ConsoleWrite("DNS Secondry IPv6: " & $AdaptorInfo[0][18] & @CRLF)
ConsoleWrite("MAC Address: " & $AdaptorInfo[0][9] & @CRLF)
ConsoleWrite("Logon Domain: " & $AdaptorInfo[0][10] & @CRLF)
ConsoleWrite("Logon Server: " & $AdaptorInfo[0][11] & @CRLF)
ConsoleWrite("DNS Server: " & $AdaptorInfo[0][14] & @CRLF)
ConsoleWrite("Computer Name: " & $AdaptorInfo[0][15] & @CRLF)
ConsoleWrite( "************************************************************" & @CRLF)
return
; ..................................................
; AVALIBLE MS INFO
;  string   Caption;
;  string   Description;
;  string   SettingID;
;  boolean  ArpAlwaysSourceRoute;
;  boolean  ArpUseEtherSNAP;
;  string   DatabasePath;
;  boolean  DeadGWDetectEnabled;
;  string   DefaultIPGateway[];
;  uint8    DefaultTOS;
;  uint8    DefaultTTL;
;  boolean  DHCPEnabled;
;  datetime DHCPLeaseExpires;
;  datetime DHCPLeaseObtained;
;  string   DHCPServer;
;  string   DNSDomain;
;  string   DNSDomainSuffixSearchOrder[];
;  boolean  DNSEnabledForWINSResolution;
;  string   DNSHostName;
;  string   DNSServerSearchOrder[];
;  boolean  DomainDNSRegistrationEnabled;
;  uint32   ForwardBufferMemory;
;  boolean  FullDNSRegistrationEnabled;
;  uint16   GatewayCostMetric[];
;  uint8    IGMPLevel;
;  uint32   Index;
;  uint32   InterfaceIndex;
;  string   IPAddress[];
;  uint32   IPConnectionMetric;
;  boolean  IPEnabled;
;  boolean  IPFilterSecurityEnabled;
;  boolean  IPPortSecurityEnabled;
;  string   IPSecPermitIPProtocols[];
;  string   IPSecPermitTCPPorts[];
;  string   IPSecPermitUDPPorts[];
;  string   IPSubnet[];
;  boolean  IPUseZeroBroadcast;
;  string   IPXAddress;
;  boolean  IPXEnabled;
;  uint32   IPXFrameType[];
;  uint32   IPXMediaType;
;  string   IPXNetworkNumber[];
;  string   IPXVirtualNetNumber;
;  uint32   KeepAliveInterval;
;  uint32   KeepAliveTime;
;  string   MACAddress;
;  uint32   MTU;
;  uint32   NumForwardPackets;
;  boolean  PMTUBHDetectEnabled;
;  boolean  PMTUDiscoveryEnabled;
;  string   ServiceName;
;  uint32   TcpipNetbiosOptions;
;  uint32   TcpMaxConnectRetransmissions;
;  uint32   TcpMaxDataRetransmissions;
;  uint32   TcpNumConnections;
;  boolean  TcpUseRFC1122UrgentPointer;
;  uint16   TcpWindowSize;
;  boolean  WINSEnableLMHostsLookup;
;  string   WINSHostLookupFile;
;  string   WINSPrimaryServer;
;  string   WINSScopeID;
;  string   WINSSecondaryServer;
; ..................................................
EndFunc

;------------------------------------------------------------------------------------------------------------
; --------------------------
; GET THE WMI SELECT ADDAPTORS INFO
; --------------------------
Func _GetSelectedNIC()
Local $o_WMIService = ObjGet( "winmgmts:\\" & @ComputerName & "\root\CIMV2" )
Local $query = $o_WMIService.ExecQuery( "SELECT * FROM Win32_NetworkAdapter WHERE NetConnectionID='Local Area Connection'", "WQL", 0x30 )
; ..................................................
If @error Then
ConsoleWrite("" & @CRLF)
ConsoleWrite( "************************************************************" & @CRLF)
ConsoleWrite(" " & @CRLF)
ConsoleWrite("WARNING:SELECTED NIC get Error" & @CRLF)
ConsoleWrite("Not completed error" & @CRLF)
ConsoleWrite(" " & @CRLF)
ConsoleWrite( "************************************************************" & @CRLF)
Return
EndIf
; ..................................................
For $objItem In $query
If IsObj($query) Then
;$SelectedAdapters[0][0] = $objItem.AdapterTypeID
;$SelectedAdapters[0][1] = $objItem.AutoSense
$SelectedAdapters[0][2] = $objItem.Availability
;$SelectedAdapters[0][3] = $objItem.Caption
;$SelectedAdapters[0][4] = $objItem.ConfigManagerErrorCode
;$SelectedAdapters[0][5] = $objItem.ConfigManagerUserConfig
;;;$SelectedAdapters[0][6] = $objItem.reationClassName
$SelectedAdapters[0][7] = $objItem.Description
;$SelectedAdapters[0][8] = $objItem.ErrorCleared
;$SelectedAdapters[0][9] = $objItem.ErrorDescription
;$SelectedAdapters[0][10] = $objItem.GUID
$SelectedAdapters[0][11] = $objItem.Index
;$SelectedAdapters[0][12] = $objItem.InstallDate
;$SelectedAdapters[0][13] = $objItem.Installed
;$SelectedAdapters[0][14] = $objItem.InterfaceIndex
;$SelectedAdapters[0][15] = $objItem.LastErrorCode
;$SelectedAdapters[0][16] = $objItem.MACAddress
;$SelectedAdapters[0][17] = $objItem.Manufacturer
;$SelectedAdapters[0][18] = $objItem.MaxNumberControlled
;$SelectedAdapters[0][19] = $objItem.MaxSpeed
;$SelectedAdapters[0][21] = $objItem.Name
$SelectedAdapters[0][22] = $objItem.NetConnectionID
$SelectedAdapters[0][23] = $objItem.NetConnectionStatus
$SelectedAdapters[0][24] = $objItem.NetEnabled
;;;$SelectedAdapters[0][25] = $objItem.NetworkAddresses[0]
;$SelectedAdapters[0][26] = $objItem.PermanentAddress
;$SelectedAdapters[0][27] = $objItem.PhysicalAdapter
;$SelectedAdapters[0][28] = $objItem.PNPDeviceID
;;;$SelectedAdapters[0][29] = $objItem.PowerManagementCapabilities[0]
;$SelectedAdapters[0][30] = $objItem.PowerManagementSupported
;$SelectedAdapters[0][31] = $objItem.ProductName
;$SelectedAdapters[0][32] = $objItem.ServiceName
;$SelectedAdapters[0][33] = $objItem.Speed
;$SelectedAdapters[0][34] = $objItem.Status
;$SelectedAdapters[0][35] = $objItem.StatusInfo
;$SelectedAdapters[0][36] = $objItem.SystemCreationClassName
;;;$SelectedAdapters[0][37] = $objItem.SystemName
;;;$SelectedAdapters[0][38] = $objItem.TimeOfLastReset
;ConsoleWrite("DEBUG2: " & ubound($objItem.NetworkAddresses) & @CRLF)
;_ArrayDisplay($aArrayExploded2, "DEBUG:")
; ..................................................
Else
ConsoleWrite("" & @CRLF)
ConsoleWrite("************************************************************" & @CRLF)
ConsoleWrite(" " & @CRLF)
ConsoleWrite("WARNING:SELECTED NIC NOT FOUND" & @CRLF)
ConsoleWrite("Not completed error" & @CRLF)
ConsoleWrite(" " & @CRLF)
ConsoleWrite("************************************************************" & @CRLF)
Return
Endif
; ..................................................
Next
$Exitloop1 = 0
; RETURN JUST THE INDEX OF THE SELECTED ADAPTOR USED TO SEARCH THE INFO OF CARD
Return $SelectedAdapters[0][11]
; ..................................................
EndFunc

 

Edited by Dwalfware

Share this post


Link to post
Share on other sites

I am missing these , i setup google IPv6 DNS on the NIC and cant find it "2001:4860:4860::8888"

All the other IP and Gateway show for IPv6? Lost. 

ConsoleWrite("DNS Primary IPv6: " & $AdaptorInfo[0][17] & @CRLF)
ConsoleWrite("DNS Secondry IPv6: " & $AdaptorInfo[0][18] & @CRLF)
Edited by Dwalfware

Share this post


Link to post
Share on other sites

My Output / I changed some info but as you can see no DNS IPv6 :(

 

Realtek Wi-Fi Adapter
NIC Status: Connected ok
NIC Connected: True
DHCP Enabled: True
DHCP Lease Ex: 20180222025612.000000-480
DHCP Server: 192.168.10.1
IPV4 Address1: 192.168.10.100
IPV6 Address1: fe80::
IPV6 Address2: fda8:6c3:ce53:a890::2
Subnet IPv4: 255.255.255.0
Subnet Prefix IPv4: 64
Subnet Prefix IPv6: 64
Gateway IPv4: 192.168.10.1
Gateway IPv6: fda8:6c3:ce53:a890::5
DNS Primary IPv4: 8.8.8.8
DNS Secondry IPv4: 8.8.4.4
DNS Primary IPv6: 
DNS Secondry IPv6: 

MAC Address: 74:00:00:00:00
Logon Domain: PC
Logon Server: \\PC
DNS Server: 
Computer Name: PC

Share this post


Link to post
Share on other sites
9 hours ago, Dwalfware said:

I configured my LAN with IPV6 and my wireless with IPv4

 

5 hours ago, Dwalfware said:

Realtek Wi-Fi Adapter

So, what you're getting is the Wi-Fi Network Adapter, which should not be confifured with IPV6 IP, isn't it? :)


Click here to see my signature:

Spoiler

ALWAYS GOOD TO READ:

 

Share this post


Link to post
Share on other sites
9 hours ago, FrancescoDiMuro said:

 

So, what you're getting is the Wi-Fi Network Adapter, which should not be confifured with IPV6 IP, isn't it? :)

ahhaha You're right :lol:

That is some crazy setup,  So I see on wifi NIC you see everything and of course does not work,

Then when I plugged the LAN in it retuns only one gateway IPv6 and skips the Ipv4 gateway.

But still no DNS entry. Do you think they hide it under some other setting?

 

Great now I need to filter lol

 

My result does not show "2001:4860:4860::8888" for Primary DNS

 

NETWORK ADAPTOR INFORMATION
************************************************************
Realtek PCIe FE Family Controller
NIC Status: Connected ok
NIC Connected: True
DHCP Enabled: False
DHCP Lease Ex: 
DHCP Server: 
IPV4 Address1: 192.168.10.10
IPV6 Address1: fe80::5445:3a3b:48bb:f246
IPV6 Address2: fda8:6c3:ce53:a890::3
Subnet IPv4: 255.255.255.0
Subnet Prefix IPv4: 64
Subnet Prefix IPv6: 64
Gateway IPv4: fda8:6c3:ce53:a890::5
Gateway IPv6: 
DNS Primary IPv4: 
DNS Secondry IPv4: 
DNS Primary IPv6: 
DNS Secondry IPv6: 
MAC Address: EC:00:00:00:00
Logon Domain: PC
Logon Server: \\PC
DNS Server: 
Computer Name: PC
************************************************************

 

Edited by Dwalfware

Share this post


Link to post
Share on other sites

I filtered the gateway, doing more searches for the DNS next

New Code below.

 

#include <Array.au3>
Global $SelectedAdapters[1][37], $AdaptorInfo[1][21]
$SelectedAdapters[0][0] = 0
$AdaptorInfo[0][0] = 0

; USE Local Area Connection or Wireless Network Connection  @ _GetSelectedNIC()

_GETcurrentNICinfo()

;------------------------------------------------------------------------------------------------------------
; ------------------------
; GET THE NIC INFO
; ------------------------
Func _GETcurrentNICinfo()
$AdaptorInfo[0][0]
Local $objWMIService = ObjGet( "winmgmts:\\" & @ComputerName & "\root\CIMV2" )
Local $query = $objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE Index = " & _GetSelectedNIC(), "WQL", 0x30 )
; ..................................................
If @error Then
ConsoleWrite("" & @CRLF)
ConsoleWrite("************************************************************" & @CRLF)
ConsoleWrite(" " & @CRLF)
ConsoleWrite("WARNING:NIC get Error" & @CRLF)
ConsoleWrite( "Not completed error" & @CRLF)
ConsoleWrite( " " & @CRLF)
ConsoleWrite("************************************************************" & @CRLF)
Return
EndIf
; ..................................................
If IsObj($query) Then
For $objItem In $query
; ...........................................
$AdaptorInfo[0][0] = $objItem.DHCPEnabled
$AdaptorInfo[0][13] = $objItem.DHCPLeaseExpires
$AdaptorInfo[0][1] = $objItem.DHCPServer
; ...........................................
If UBound($objItem.IPAddress) = 0 then
$AdaptorInfo[0][2] = ""
$AdaptorInfo[0][3] = ""
$AdaptorInfo[0][19] = ""
Endif
If UBound($objItem.IPAddress) = 1 then                    ; If only IPv4
$String0 = UBound($objItem.IPAddress) -1
$AdaptorInfo[0][2] = $objItem.IPAddress[$String0]
$AdaptorInfo[0][3] = ""
Endif
If UBound($objItem.IPAddress) = 2 then                    ; If Both IPV4 and IPV6
$String0 = UBound($objItem.IPAddress) -2
$AdaptorInfo[0][2] = $objItem.IPAddress[$String0]
$String1 = UBound($objItem.IPAddress) -1
$AdaptorInfo[0][3] = $objItem.IPAddress[$String1]
Endif
If UBound($objItem.IPAddress) = 3 then                    ; If Both IPV4 and IPV6
$String00 = UBound($objItem.IPAddress) -3
$AdaptorInfo[0][2] = $objItem.IPAddress[$String00]
$String0 = UBound($objItem.IPAddress) -2
$AdaptorInfo[0][3] = $objItem.IPAddress[$String0]
$String1 = UBound($objItem.IPAddress) -1
$AdaptorInfo[0][19] = $objItem.IPAddress[$String1]
Endif
; ...........................................
; ...........................................
If UBound($objItem.IPSubnet) = 0 then
$AdaptorInfo[0][4] = ""
$AdaptorInfo[0][5] = ""
Endif
If UBound($objItem.IPSubnet) = 1 then                    ; If Subnet
$String0 = UBound($objItem.IPSubnet) -1
$AdaptorInfo[0][4] = $objItem.IPSubnet[$String0]
$AdaptorInfo[0][5] = ""
Endif
If UBound($objItem.IPSubnet) = 2 then                    ; If more than one Subnet
$String0 = UBound($objItem.IPSubnet) -2
$AdaptorInfo[0][4] = $objItem.IPSubnet[$String0]
$String1 = UBound($objItem.IPSubnet) -1
$AdaptorInfo[0][5] = $objItem.IPSubnet[$String1]
Endif
If UBound($objItem.IPSubnet) = 3 then                    ; If more than one Subnet
$String00 = UBound($objItem.IPSubnet) -3
$AdaptorInfo[0][4] = $objItem.IPSubnet[$String00]
$String0 = UBound($objItem.IPSubnet) -2
$AdaptorInfo[0][5] = $objItem.IPSubnet[$String0]
$String1 = UBound($objItem.IPSubnet) -1
$AdaptorInfo[0][20] = $objItem.IPSubnet[$String1]
Endif
;$AdaptorInfo[0][4] = $objItem.IPSubnet[0]
;$AdaptorInfo[0][5] = $objItem.IPSubnet[1]
; ...........................................
; ...........................................
If UBound($objItem.DefaultIPGateway) = 0 then
$AdaptorInfo[0][6] = ""
$AdaptorInfo[0][16] = ""
Endif
If UBound($objItem.DefaultIPGateway) = 1 then                    ; Get the Default Gateway
$String0 = UBound($objItem.DefaultIPGateway) - 1
$AdaptorInfo[0][6] = $objItem.DefaultIPGateway[$String0]
$AdaptorInfo[0][16] = ""
Endif
If UBound($objItem.DefaultIPGateway) = 2 then                     ; If more than one Gateway
$String0 = UBound($objItem.DefaultIPGateway) -2
$AdaptorInfo[0][6] = $objItem.DefaultIPGateway[$String0]
$String1 = UBound($objItem.DefaultIPGateway) -1
$AdaptorInfo[0][16] = $objItem.DefaultIPGateway[$String1]
Endif
;$AdaptorInfo[0][6] = $objItem.DefaultIPGateway[0]
;$AdaptorInfo[0][16] = $objItem.DefaultIPGateway[1]
; ...........................................
; ...........................................
ConsoleWrite("DEBUG: " & UBound($objItem.IPAddress) & @CRLF)
If UBound($objItem.DNSServerSearchOrder) = 0 then
$AdaptorInfo[0][7] = ""
$AdaptorInfo[0][8] = ""
$AdaptorInfo[0][17] = ""
$AdaptorInfo[0][18] = ""
Endif
If UBound($objItem.DNSServerSearchOrder) = 1 then                    ; If one DNS
$String0 = UBound($objItem.DNSServerSearchOrder) -1
$AdaptorInfo[0][7] = $objItem.DNSServerSearchOrder[$String0]
$AdaptorInfo[0][8] = ""
$AdaptorInfo[0][17] = ""
$AdaptorInfo[0][18] = ""
Endif
If UBound($objItem.DNSServerSearchOrder) = 2 then                    ; If more than one DNS
$String0 = UBound($objItem.DNSServerSearchOrder) -2
$AdaptorInfo[0][7] = $objItem.DNSServerSearchOrder[$String0]
$String1 = UBound($objItem.DNSServerSearchOrder) -1
$AdaptorInfo[0][8] = $objItem.DNSServerSearchOrder[$String1]
$AdaptorInfo[0][17] = ""
$AdaptorInfo[0][18] = ""
Endif
If UBound($objItem.DNSServerSearchOrder) = 3 then                    ; If more than one DNS
$String00 = UBound($objItem.DNSServerSearchOrder) -3
$AdaptorInfo[0][7] = $objItem.DNSServerSearchOrder[$String00]
$String0 = UBound($objItem.DNSServerSearchOrder) -2
$AdaptorInfo[0][8] = $objItem.DNSServerSearchOrder[$String0]
$String1 = UBound($objItem.DNSServerSearchOrder) -1
$AdaptorInfo[0][17] = $objItem.DNSServerSearchOrder[$String1]
$AdaptorInfo[0][18] = ""
Endif
If UBound($objItem.DNSServerSearchOrder) = 4 then                    ; If more than one DNS
$String000 = UBound($objItem.DNSServerSearchOrder) -4
$AdaptorInfo[0][7] = $objItem.DNSServerSearchOrder[$String000]
$String00 = UBound($objItem.DNSServerSearchOrder) -3
$AdaptorInfo[0][8] = $objItem.DNSServerSearchOrder[$String00]
$String0 = UBound($objItem.DNSServerSearchOrder) -2
$AdaptorInfo[0][17] = $objItem.DNSServerSearchOrder[$String0]
$String1 = UBound($objItem.DNSServerSearchOrder) -1
$AdaptorInfo[0][18] = $objItem.DNSServerSearchOrder[$String1]
Endif
;$AdaptorInfo[0][7] = $objItem.DNSServerSearchOrder[0]
;$AdaptorInfo[0][8] = $objItem.DNSServerSearchOrder[1]
; ...........................................
; ...........................................
$AdaptorInfo[0][9] = $objItem.MACAddress
$AdaptorInfo[0][13] = $objItem.DHCPLeaseExpires
; ...........................................
Next
Else
ConsoleWrite("" & @CRLF)
ConsoleWrite( "************************************************************" & @CRLF)
ConsoleWrite(" " & @CRLF)
ConsoleWrite( "WARNING:WINDOWS NIC INFO NOT FOUND" & @CRLF)
ConsoleWrite("Not completed error or not true" & @CRLF)
ConsoleWrite(" " & @CRLF)
ConsoleWrite("************************************************************" & @CRLF)
Return
EndIf

; .................................................. ADD ON INFO
$AdaptorInfo[0][10] = @LogonDomain
$AdaptorInfo[0][11] = @LogonServer
$AdaptorInfo[0][14] = @LogonDNSDomain
$AdaptorInfo[0][15] = @ComputerName
; ..................................................
; ---------------------------------------------
;  DISPLAY THE NIC INFO
; ---------------------------------------------
ConsoleWrite("NETWORK ADAPTOR INFORMATION" & @CRLF)
ConsoleWrite( "************************************************************" & @CRLF)
ConsoleWrite( $SelectedAdapters[0][7] & @CRLF)
If $SelectedAdapters[0][23] = 0 then
ConsoleWrite("NIC Status: Disabled" & @CRLF)
Endif
If $SelectedAdapters[0][23] = 7 then
ConsoleWrite("NIC Status: Enabled no Connection" & @CRLF)
Endif
If $SelectedAdapters[0][23] = 2 then
ConsoleWrite("NIC Status: Connected ok" & @CRLF)
Endif
ConsoleWrite("NIC Connected: " & $SelectedAdapters[0][24] & @CRLF)
ConsoleWrite("DHCP Enabled: " & $AdaptorInfo[0][0] & @CRLF)
ConsoleWrite("DHCP Lease Ex: " & $AdaptorInfo[0][13] & @CRLF)
ConsoleWrite("DHCP Server: " & $AdaptorInfo[0][1] & @CRLF)
ConsoleWrite("IPV4 Address1: " & $AdaptorInfo[0][2] & @CRLF)
ConsoleWrite("IPV6 Address1: " & $AdaptorInfo[0][3] & @CRLF)
ConsoleWrite("IPV6 Address2: " & $AdaptorInfo[0][19] & @CRLF)
ConsoleWrite("Subnet IPv4: " & $AdaptorInfo[0][4] & @CRLF)
ConsoleWrite("Subnet Prefix IPv4: " & $AdaptorInfo[0][5] & @CRLF)
ConsoleWrite("Subnet Prefix IPv6: " & $AdaptorInfo[0][5] & @CRLF)
Local $aTestedDNSIpv4 = StringRegExp($AdaptorInfo[0][6], "[0-9]{1,3}+\.[0-9]{1,3}+\.[0-9]{1,3}+\.[0-9]{1,3}", 0)
If $aTestedDNSIpv4 = 1 Then
ConsoleWrite("Gateway IPv4: " & $AdaptorInfo[0][6] & @CRLF)
Else
ConsoleWrite("Gateway IPv6: " & $AdaptorInfo[0][6] & @CRLF)
Endif
Local $aTestedDNSIpv6 = StringRegExp($AdaptorInfo[0][16], "[0-9]{1,3}+\.[0-9]{1,3}+\.[0-9]{1,3}+\.[0-9]{1,3}", 0)
If $aTestedDNSIpv6 = 0 and NOT $AdaptorInfo[0][16] = "" Then
ConsoleWrite("Gateway IPv6: " & $AdaptorInfo[0][16] & @CRLF)
Endif
ConsoleWrite("DNS Primary IPv4: " & $AdaptorInfo[0][7] & @CRLF)
ConsoleWrite("DNS Secondry IPv4: " & $AdaptorInfo[0][8] & @CRLF)
ConsoleWrite("DNS Primary IPv6: " & $AdaptorInfo[0][17] & @CRLF)
ConsoleWrite("DNS Secondry IPv6: " & $AdaptorInfo[0][18] & @CRLF)
ConsoleWrite("MAC Address: " & $AdaptorInfo[0][9] & @CRLF)
ConsoleWrite("Logon Domain: " & $AdaptorInfo[0][10] & @CRLF)
ConsoleWrite("Logon Server: " & $AdaptorInfo[0][11] & @CRLF)
ConsoleWrite("DNS Server: " & $AdaptorInfo[0][14] & @CRLF)
ConsoleWrite("Computer Name: " & $AdaptorInfo[0][15] & @CRLF)
ConsoleWrite( "************************************************************" & @CRLF)
return
; ..................................................
; AVALIBLE MS INFO
;  string   Caption;
;  string   Description;
;  string   SettingID;
;  boolean  ArpAlwaysSourceRoute;
;  boolean  ArpUseEtherSNAP;
;  string   DatabasePath;
;  boolean  DeadGWDetectEnabled;
;  string   DefaultIPGateway[];
;  uint8    DefaultTOS;
;  uint8    DefaultTTL;
;  boolean  DHCPEnabled;
;  datetime DHCPLeaseExpires;
;  datetime DHCPLeaseObtained;
;  string   DHCPServer;
;  string   DNSDomain;
;  string   DNSDomainSuffixSearchOrder[];
;  boolean  DNSEnabledForWINSResolution;
;  string   DNSHostName;
;  string   DNSServerSearchOrder[];
;  boolean  DomainDNSRegistrationEnabled;
;  uint32   ForwardBufferMemory;
;  boolean  FullDNSRegistrationEnabled;
;  uint16   GatewayCostMetric[];
;  uint8    IGMPLevel;
;  uint32   Index;
;  uint32   InterfaceIndex;
;  string   IPAddress[];
;  uint32   IPConnectionMetric;
;  boolean  IPEnabled;
;  boolean  IPFilterSecurityEnabled;
;  boolean  IPPortSecurityEnabled;
;  string   IPSecPermitIPProtocols[];
;  string   IPSecPermitTCPPorts[];
;  string   IPSecPermitUDPPorts[];
;  string   IPSubnet[];
;  boolean  IPUseZeroBroadcast;
;  string   IPXAddress;
;  boolean  IPXEnabled;
;  uint32   IPXFrameType[];
;  uint32   IPXMediaType;
;  string   IPXNetworkNumber[];
;  string   IPXVirtualNetNumber;
;  uint32   KeepAliveInterval;
;  uint32   KeepAliveTime;
;  string   MACAddress;
;  uint32   MTU;
;  uint32   NumForwardPackets;
;  boolean  PMTUBHDetectEnabled;
;  boolean  PMTUDiscoveryEnabled;
;  string   ServiceName;
;  uint32   TcpipNetbiosOptions;
;  uint32   TcpMaxConnectRetransmissions;
;  uint32   TcpMaxDataRetransmissions;
;  uint32   TcpNumConnections;
;  boolean  TcpUseRFC1122UrgentPointer;
;  uint16   TcpWindowSize;
;  boolean  WINSEnableLMHostsLookup;
;  string   WINSHostLookupFile;
;  string   WINSPrimaryServer;
;  string   WINSScopeID;
;  string   WINSSecondaryServer;
; ..................................................
EndFunc

;------------------------------------------------------------------------------------------------------------
; --------------------------
; GET THE WMI SELECT ADDAPTORS INFO
; --------------------------
Func _GetSelectedNIC()
Local $o_WMIService = ObjGet( "winmgmts:\\" & @ComputerName & "\root\CIMV2" )
;Local $query = $o_WMIService.ExecQuery( "SELECT * FROM Win32_NetworkAdapter WHERE NetConnectionID='Local Area Connection'", "WQL", 0x30 )
Local $query = $o_WMIService.ExecQuery( "SELECT * FROM Win32_NetworkAdapter WHERE NetConnectionID='Wireless Network Connection'", "WQL", 0x30 )
; ..................................................
If @error Then
ConsoleWrite("" & @CRLF)
ConsoleWrite( "************************************************************" & @CRLF)
ConsoleWrite(" " & @CRLF)
ConsoleWrite("WARNING:SELECTED NIC get Error" & @CRLF)
ConsoleWrite("Not completed error" & @CRLF)
ConsoleWrite(" " & @CRLF)
ConsoleWrite( "************************************************************" & @CRLF)
Return
EndIf
; ..................................................
For $objItem In $query
If IsObj($query) Then
;$SelectedAdapters[0][0] = $objItem.AdapterTypeID
;$SelectedAdapters[0][1] = $objItem.AutoSense
$SelectedAdapters[0][2] = $objItem.Availability
;$SelectedAdapters[0][3] = $objItem.Caption
;$SelectedAdapters[0][4] = $objItem.ConfigManagerErrorCode
;$SelectedAdapters[0][5] = $objItem.ConfigManagerUserConfig
;;;$SelectedAdapters[0][6] = $objItem.reationClassName
$SelectedAdapters[0][7] = $objItem.Description
;$SelectedAdapters[0][8] = $objItem.ErrorCleared
;$SelectedAdapters[0][9] = $objItem.ErrorDescription
;$SelectedAdapters[0][10] = $objItem.GUID
$SelectedAdapters[0][11] = $objItem.Index
;$SelectedAdapters[0][12] = $objItem.InstallDate
;$SelectedAdapters[0][13] = $objItem.Installed
;$SelectedAdapters[0][14] = $objItem.InterfaceIndex
;$SelectedAdapters[0][15] = $objItem.LastErrorCode
;$SelectedAdapters[0][16] = $objItem.MACAddress
;$SelectedAdapters[0][17] = $objItem.Manufacturer
;$SelectedAdapters[0][18] = $objItem.MaxNumberControlled
;$SelectedAdapters[0][19] = $objItem.MaxSpeed
;$SelectedAdapters[0][21] = $objItem.Name
$SelectedAdapters[0][22] = $objItem.NetConnectionID
$SelectedAdapters[0][23] = $objItem.NetConnectionStatus
$SelectedAdapters[0][24] = $objItem.NetEnabled
;;;$SelectedAdapters[0][25] = $objItem.NetworkAddresses[0]
;$SelectedAdapters[0][26] = $objItem.PermanentAddress
;$SelectedAdapters[0][27] = $objItem.PhysicalAdapter
;$SelectedAdapters[0][28] = $objItem.PNPDeviceID
;;;$SelectedAdapters[0][29] = $objItem.PowerManagementCapabilities[0]
;$SelectedAdapters[0][30] = $objItem.PowerManagementSupported
;$SelectedAdapters[0][31] = $objItem.ProductName
;$SelectedAdapters[0][32] = $objItem.ServiceName
;$SelectedAdapters[0][33] = $objItem.Speed
;$SelectedAdapters[0][34] = $objItem.Status
;$SelectedAdapters[0][35] = $objItem.StatusInfo
;$SelectedAdapters[0][36] = $objItem.SystemCreationClassName
;;;$SelectedAdapters[0][37] = $objItem.SystemName
;;;$SelectedAdapters[0][38] = $objItem.TimeOfLastReset
;ConsoleWrite("DEBUG2: " & ubound($objItem.NetworkAddresses) & @CRLF)
;_ArrayDisplay($aArrayExploded2, "DEBUG:")
; ..................................................
Else
ConsoleWrite("" & @CRLF)
ConsoleWrite("************************************************************" & @CRLF)
ConsoleWrite(" " & @CRLF)
ConsoleWrite("WARNING:SELECTED NIC NOT FOUND" & @CRLF)
ConsoleWrite("Not completed error" & @CRLF)
ConsoleWrite(" " & @CRLF)
ConsoleWrite("************************************************************" & @CRLF)
Return
Endif
; ..................................................
Next
$Exitloop1 = 0
; RETURN JUST THE INDEX OF THE SELECTED ADAPTOR USED TO SEARCH THE INFO OF CARD
Return $SelectedAdapters[0][11]
; ..................................................
EndFunc

 

Share this post


Link to post
Share on other sites

OK so it looks like WMI does not have DNS IPv6 settings. I hacked it from the GUID and got it in the registery

So I found it in the register from an article.  https://blog.westmonroepartners.com/alternate-network-configuration-using-windows-scripting-host/

Now onto the next, Alternative IP configuration. Does auto it have a HEX converter?

Here is the new script.  Enjoy :D

#include <String.au3>
#include <Array.au3>
Global $SelectedAdapters[1][37], $AdaptorInfo[1][21]
$SelectedAdapters[0][0] = 0
$AdaptorInfo[0][0] = 0

; USE Local Area Connection or Wireless Network Connection  @ _GetSelectedNIC()

_GETcurrentNICinfo()

;------------------------------------------------------------------------------------------------------------
; ------------------------
; GET THE NIC INFO
; ------------------------
Func _GETcurrentNICinfo()
$AdaptorInfo[0][0]
Local $objWMIService = ObjGet( "winmgmts:\\" & @ComputerName & "\root\CIMV2" )
Local $query = $objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE Index = " & _GetSelectedNIC(), "WQL", 0x30 )
; ..................................................
If @error Then
ConsoleWrite("" & @CRLF)
ConsoleWrite("************************************************************" & @CRLF)
ConsoleWrite(" " & @CRLF)
ConsoleWrite("WARNING:NIC get Error" & @CRLF)
ConsoleWrite( "Not completed error" & @CRLF)
ConsoleWrite( " " & @CRLF)
ConsoleWrite("************************************************************" & @CRLF)
Return
EndIf
; ..................................................
If IsObj($query) Then
For $objItem In $query
; ...........................................
$AdaptorInfo[0][0] = $objItem.DHCPEnabled
$AdaptorInfo[0][13] = $objItem.DHCPLeaseExpires
$AdaptorInfo[0][1] = $objItem.DHCPServer
; ...........................................
If UBound($objItem.IPAddress) = 0 then
$AdaptorInfo[0][2] = ""
$AdaptorInfo[0][3] = ""
$AdaptorInfo[0][19] = ""
Endif
If UBound($objItem.IPAddress) = 1 then                    ; If only IPv4
$String0 = UBound($objItem.IPAddress) -1
$AdaptorInfo[0][2] = $objItem.IPAddress[$String0]
$AdaptorInfo[0][3] = ""
Endif
If UBound($objItem.IPAddress) = 2 then                    ; If Both IPV4 and IPV6
$String0 = UBound($objItem.IPAddress) -2
$AdaptorInfo[0][2] = $objItem.IPAddress[$String0]
$String1 = UBound($objItem.IPAddress) -1
$AdaptorInfo[0][3] = $objItem.IPAddress[$String1]
Endif
If UBound($objItem.IPAddress) = 3 then                    ; If Both IPV4 and IPV6
$String00 = UBound($objItem.IPAddress) -3
$AdaptorInfo[0][2] = $objItem.IPAddress[$String00]
$String0 = UBound($objItem.IPAddress) -2
$AdaptorInfo[0][3] = $objItem.IPAddress[$String0]
$String1 = UBound($objItem.IPAddress) -1
$AdaptorInfo[0][19] = $objItem.IPAddress[$String1]
Endif
; ...........................................
; ...........................................
If UBound($objItem.IPSubnet) = 0 then
$AdaptorInfo[0][4] = ""
$AdaptorInfo[0][5] = ""
Endif
If UBound($objItem.IPSubnet) = 1 then                    ; If Subnet
$String0 = UBound($objItem.IPSubnet) -1
$AdaptorInfo[0][4] = $objItem.IPSubnet[$String0]
$AdaptorInfo[0][5] = ""
Endif
If UBound($objItem.IPSubnet) = 2 then                    ; If more than one Subnet
$String0 = UBound($objItem.IPSubnet) -2
$AdaptorInfo[0][4] = $objItem.IPSubnet[$String0]
$String1 = UBound($objItem.IPSubnet) -1
$AdaptorInfo[0][5] = $objItem.IPSubnet[$String1]
Endif
If UBound($objItem.IPSubnet) = 3 then                    ; If more than one Subnet
$String00 = UBound($objItem.IPSubnet) -3
$AdaptorInfo[0][4] = $objItem.IPSubnet[$String00]
$String0 = UBound($objItem.IPSubnet) -2
$AdaptorInfo[0][5] = $objItem.IPSubnet[$String0]
$String1 = UBound($objItem.IPSubnet) -1
$AdaptorInfo[0][20] = $objItem.IPSubnet[$String1]
Endif
;$AdaptorInfo[0][4] = $objItem.IPSubnet[0]
;$AdaptorInfo[0][5] = $objItem.IPSubnet[1]
; ...........................................
; ...........................................
If UBound($objItem.DefaultIPGateway) = 0 then
$AdaptorInfo[0][6] = ""
$AdaptorInfo[0][16] = ""
Endif
If UBound($objItem.DefaultIPGateway) = 1 then                    ; Get the Default Gateway
$String0 = UBound($objItem.DefaultIPGateway) - 1
$AdaptorInfo[0][6] = $objItem.DefaultIPGateway[$String0]
$AdaptorInfo[0][16] = ""
Endif
If UBound($objItem.DefaultIPGateway) = 2 then                     ; If more than one Gateway
$String0 = UBound($objItem.DefaultIPGateway) -2
$AdaptorInfo[0][6] = $objItem.DefaultIPGateway[$String0]
$String1 = UBound($objItem.DefaultIPGateway) -1
$AdaptorInfo[0][16] = $objItem.DefaultIPGateway[$String1]
Endif
;$AdaptorInfo[0][6] = $objItem.DefaultIPGateway[0]
;$AdaptorInfo[0][16] = $objItem.DefaultIPGateway[1]
; ...........................................
; ...........................................
ConsoleWrite("DEBUG0: " & UBound($objItem.DNSServerSearchOrder) & @CRLF)
If UBound($objItem.DNSServerSearchOrder) = 0 then
$AdaptorInfo[0][7] = ""
$AdaptorInfo[0][8] = ""
$AdaptorInfo[0][17] = ""
$AdaptorInfo[0][18] = ""
Endif
If UBound($objItem.DNSServerSearchOrder) = 1 then                    ; If one DNS
$String0 = UBound($objItem.DNSServerSearchOrder) -1
$AdaptorInfo[0][7] = $objItem.DNSServerSearchOrder[$String0]
$AdaptorInfo[0][8] = ""
$AdaptorInfo[0][17] = ""
$AdaptorInfo[0][18] = ""
Endif
If UBound($objItem.DNSServerSearchOrder) = 2 then                    ; If more than one DNS
$String0 = UBound($objItem.DNSServerSearchOrder) -2
$AdaptorInfo[0][7] = $objItem.DNSServerSearchOrder[$String0]
$String1 = UBound($objItem.DNSServerSearchOrder) -1
$AdaptorInfo[0][8] = $objItem.DNSServerSearchOrder[$String1]
$AdaptorInfo[0][17] = ""
$AdaptorInfo[0][18] = ""
Endif
If UBound($objItem.DNSServerSearchOrder) = 3 then                    ; If more than one DNS
$String00 = UBound($objItem.DNSServerSearchOrder) -3
$AdaptorInfo[0][7] = $objItem.DNSServerSearchOrder[$String00]
$String0 = UBound($objItem.DNSServerSearchOrder) -2
$AdaptorInfo[0][8] = $objItem.DNSServerSearchOrder[$String0]
$String1 = UBound($objItem.DNSServerSearchOrder) -1
$AdaptorInfo[0][17] = $objItem.DNSServerSearchOrder[$String1]
$AdaptorInfo[0][18] = ""
Endif
If UBound($objItem.DNSServerSearchOrder) = 4 then                    ; If more than one DNS
$String000 = UBound($objItem.DNSServerSearchOrder) -4
$AdaptorInfo[0][7] = $objItem.DNSServerSearchOrder[$String000]
$String00 = UBound($objItem.DNSServerSearchOrder) -3
$AdaptorInfo[0][8] = $objItem.DNSServerSearchOrder[$String00]
$String0 = UBound($objItem.DNSServerSearchOrder) -2
$AdaptorInfo[0][17] = $objItem.DNSServerSearchOrder[$String0]
$String1 = UBound($objItem.DNSServerSearchOrder) -1
$AdaptorInfo[0][18] = $objItem.DNSServerSearchOrder[$String1]
Endif
;$AdaptorInfo[0][7] = $objItem.DNSServerSearchOrder[0]
;$AdaptorInfo[0][8] = $objItem.DNSServerSearchOrder[1]
; ...........................................
; ...........................................
$AdaptorInfo[0][9] = $objItem.MACAddress
$AdaptorInfo[0][13] = $objItem.DHCPLeaseExpires
; ...........................................
Next
Else
ConsoleWrite("" & @CRLF)
ConsoleWrite( "************************************************************" & @CRLF)
ConsoleWrite(" " & @CRLF)
ConsoleWrite( "WARNING:WINDOWS NIC INFO NOT FOUND" & @CRLF)
ConsoleWrite("Not completed error or not true" & @CRLF)
ConsoleWrite(" " & @CRLF)
ConsoleWrite("************************************************************" & @CRLF)
Return
EndIf

; .................................................. ADD ON INFO
$AdaptorInfo[0][10] = @LogonDomain
$AdaptorInfo[0][11] = @LogonServer
$AdaptorInfo[0][14] = @LogonDNSDomain
$AdaptorInfo[0][15] = @ComputerName
; ..................................................
; ---------------------------------------------
;  DISPLAY THE NIC INFO
; ---------------------------------------------
ConsoleWrite("NETWORK ADAPTOR INFORMATION" & @CRLF)
ConsoleWrite( "************************************************************" & @CRLF)
ConsoleWrite( $SelectedAdapters[0][7] & @CRLF)
If $SelectedAdapters[0][23] = 0 then
ConsoleWrite("NIC Status: Disabled" & @CRLF)
Endif
If $SelectedAdapters[0][23] = 7 then
ConsoleWrite("NIC Status: Enabled no Connection" & @CRLF)
Endif
If $SelectedAdapters[0][23] = 2 then
ConsoleWrite("NIC Status: Connected ok" & @CRLF)
Endif
ConsoleWrite("NIC Connected: " & $SelectedAdapters[0][24] & @CRLF)
ConsoleWrite("DHCP Enabled: " & $AdaptorInfo[0][0] & @CRLF)
ConsoleWrite("DHCP Lease Ex: " & $AdaptorInfo[0][13] & @CRLF)
ConsoleWrite("DHCP Server: " & $AdaptorInfo[0][1] & @CRLF)
ConsoleWrite("IPV4 Address1: " & $AdaptorInfo[0][2] & @CRLF)
ConsoleWrite("IPV6 Address1: " & $AdaptorInfo[0][3] & @CRLF)
ConsoleWrite("IPV6 Address2: " & $AdaptorInfo[0][19] & @CRLF)
ConsoleWrite("Subnet IPv4: " & $AdaptorInfo[0][4] & @CRLF)
ConsoleWrite("Subnet Prefix IPv4: " & $AdaptorInfo[0][5] & @CRLF)
ConsoleWrite("Subnet Prefix IPv6: " & $AdaptorInfo[0][5] & @CRLF)
Local $aTestedDNSIpv4 = StringRegExp($AdaptorInfo[0][6], "[0-9]{1,3}+\.[0-9]{1,3}+\.[0-9]{1,3}+\.[0-9]{1,3}", 0)
If $aTestedDNSIpv4 = 1 Then
ConsoleWrite("Gateway IPv4: " & $AdaptorInfo[0][6] & @CRLF)
Else
ConsoleWrite("Gateway IPv6: " & $AdaptorInfo[0][6] & @CRLF)
Endif
Local $aTestedDNSIpv6 = StringRegExp($AdaptorInfo[0][16], "[0-9]{1,3}+\.[0-9]{1,3}+\.[0-9]{1,3}+\.[0-9]{1,3}", 0)
If $aTestedDNSIpv6 = 0 and NOT $AdaptorInfo[0][16] = "" Then
ConsoleWrite("Gateway IPv6: " & $AdaptorInfo[0][16] & @CRLF)
Endif
ConsoleWrite("DNS Primary IPv4: " & $AdaptorInfo[0][7] & @CRLF)
ConsoleWrite("DNS Secondry IPv4: " & $AdaptorInfo[0][8] & @CRLF)
; .............................................................
If $AdaptorInfo[0][17] = "" or $AdaptorInfo[0][18] = "" Then
Local $sNameServer = RegRead("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\TCPIP6\Parameters\Interfaces\" & $SelectedAdapters[0][10] , "NameServer")
Local $aDNSIPv6array = _StringExplode($sNameServer, ",", 0)
;;_ArrayDisplay($aDNSIPv6array, "DEBUG:")
If UBound($aDNSIPv6array) = 1 then
$AdaptorInfo[0][17] = $aDNSIPv6array[UBound($aDNSIPv6array) -1]
ConsoleWrite("DNS Primary IPv6: " & $AdaptorInfo[0][17] & @CRLF)
ConsoleWrite("DNS Secondry IPv6: " & $AdaptorInfo[0][18] & @CRLF)
Endif
If UBound($aDNSIPv6array) = 2 then
$AdaptorInfo[0][17] = $aDNSIPv6array[UBound($aDNSIPv6array) -2]
ConsoleWrite("DNS Primary IPv6: " & $AdaptorInfo[0][17] & @CRLF)
$AdaptorInfo[0][18] = $aDNSIPv6array[UBound($aDNSIPv6array) -1]
ConsoleWrite("DNS Secondry IPv6: " & $AdaptorInfo[0][18] & @CRLF)
Endif
Endif
; .............................................................
ConsoleWrite("MAC Address: " & $AdaptorInfo[0][9] & @CRLF)
ConsoleWrite("Logon Domain: " & $AdaptorInfo[0][10] & @CRLF)
ConsoleWrite("Logon Server: " & $AdaptorInfo[0][11] & @CRLF)
ConsoleWrite("DNS Server: " & $AdaptorInfo[0][14] & @CRLF)
ConsoleWrite("Computer Name: " & $AdaptorInfo[0][15] & @CRLF)
ConsoleWrite( "************************************************************" & @CRLF)
return
; ..................................................
; AVALIBLE MS INFO
;  string   Caption;
;  string   Description;
;  string   SettingID;
;  boolean  ArpAlwaysSourceRoute;
;  boolean  ArpUseEtherSNAP;
;  string   DatabasePath;
;  boolean  DeadGWDetectEnabled;
;  string   DefaultIPGateway[];
;  uint8    DefaultTOS;
;  uint8    DefaultTTL;
;  boolean  DHCPEnabled;
;  datetime DHCPLeaseExpires;
;  datetime DHCPLeaseObtained;
;  string   DHCPServer;
;  string   DNSDomain;
;  string   DNSDomainSuffixSearchOrder[];
;  boolean  DNSEnabledForWINSResolution;
;  string   DNSHostName;
;  string   DNSServerSearchOrder[];
;  boolean  DomainDNSRegistrationEnabled;
;  uint32   ForwardBufferMemory;
;  boolean  FullDNSRegistrationEnabled;
;  uint16   GatewayCostMetric[];
;  uint8    IGMPLevel;
;  uint32   Index;
;  uint32   InterfaceIndex;
;  string   IPAddress[];
;  uint32   IPConnectionMetric;
;  boolean  IPEnabled;
;  boolean  IPFilterSecurityEnabled;
;  boolean  IPPortSecurityEnabled;
;  string   IPSecPermitIPProtocols[];
;  string   IPSecPermitTCPPorts[];
;  string   IPSecPermitUDPPorts[];
;  string   IPSubnet[];
;  boolean  IPUseZeroBroadcast;
;  string   IPXAddress;
;  boolean  IPXEnabled;
;  uint32   IPXFrameType[];
;  uint32   IPXMediaType;
;  string   IPXNetworkNumber[];
;  string   IPXVirtualNetNumber;
;  uint32   KeepAliveInterval;
;  uint32   KeepAliveTime;
;  string   MACAddress;
;  uint32   MTU;
;  uint32   NumForwardPackets;
;  boolean  PMTUBHDetectEnabled;
;  boolean  PMTUDiscoveryEnabled;
;  string   ServiceName;
;  uint32   TcpipNetbiosOptions;
;  uint32   TcpMaxConnectRetransmissions;
;  uint32   TcpMaxDataRetransmissions;
;  uint32   TcpNumConnections;
;  boolean  TcpUseRFC1122UrgentPointer;
;  uint16   TcpWindowSize;
;  boolean  WINSEnableLMHostsLookup;
;  string   WINSHostLookupFile;
;  string   WINSPrimaryServer;
;  string   WINSScopeID;
;  string   WINSSecondaryServer;
; ..................................................
EndFunc

;------------------------------------------------------------------------------------------------------------
; --------------------------
; GET THE WMI SELECT ADDAPTORS INFO
; --------------------------
Func _GetSelectedNIC()
Local $o_WMIService = ObjGet( "winmgmts:\\" & @ComputerName & "\root\CIMV2" )
;Local $query = $o_WMIService.ExecQuery( "SELECT * FROM Win32_NetworkAdapter WHERE NetConnectionID='Local Area Connection'", "WQL", 0x30 )
Local $query = $o_WMIService.ExecQuery( "SELECT * FROM Win32_NetworkAdapter WHERE NetConnectionID='Wireless Network Connection'", "WQL", 0x30 )
; ..................................................
If @error Then
ConsoleWrite("" & @CRLF)
ConsoleWrite( "************************************************************" & @CRLF)
ConsoleWrite(" " & @CRLF)
ConsoleWrite("WARNING:SELECTED NIC get Error" & @CRLF)
ConsoleWrite("Not completed error" & @CRLF)
ConsoleWrite(" " & @CRLF)
ConsoleWrite( "************************************************************" & @CRLF)
Return
EndIf
; ..................................................
For $objItem In $query
If IsObj($query) Then
$SelectedAdapters[0][0] = $objItem.AdapterTypeID
$SelectedAdapters[0][1] = $objItem.AutoSense
$SelectedAdapters[0][2] = $objItem.Availability
$SelectedAdapters[0][3] = $objItem.Caption
$SelectedAdapters[0][4] = $objItem.ConfigManagerErrorCode
$SelectedAdapters[0][5] = $objItem.ConfigManagerUserConfig
;;;$SelectedAdapters[0][6] = $objItem.reationClassName
$SelectedAdapters[0][7] = $objItem.Description
;$SelectedAdapters[0][8] = $objItem.ErrorCleared
;$SelectedAdapters[0][9] = $objItem.ErrorDescription
$SelectedAdapters[0][10] = $objItem.GUID
$SelectedAdapters[0][11] = $objItem.Index
;$SelectedAdapters[0][12] = $objItem.InstallDate
;$SelectedAdapters[0][13] = $objItem.Installed
;$SelectedAdapters[0][14] = $objItem.InterfaceIndex
;$SelectedAdapters[0][15] = $objItem.LastErrorCode
;$SelectedAdapters[0][16] = $objItem.MACAddress
;$SelectedAdapters[0][17] = $objItem.Manufacturer
;$SelectedAdapters[0][18] = $objItem.MaxNumberControlled
;$SelectedAdapters[0][19] = $objItem.MaxSpeed
;$SelectedAdapters[0][21] = $objItem.Name
$SelectedAdapters[0][22] = $objItem.NetConnectionID
$SelectedAdapters[0][23] = $objItem.NetConnectionStatus
$SelectedAdapters[0][24] = $objItem.NetEnabled
ConsoleWrite("DEBUG2: " & UBound($objItem.NetworkAddresses) & @CRLF)
;;;$SelectedAdapters[0][25] = $objItem.NetworkAddresses[0]
ConsoleWrite("DEBUG3: " & UBound($objItem.PermanentAddress) & @CRLF)
;$SelectedAdapters[0][26] = $objItem.PermanentAddress
;$SelectedAdapters[0][27] = $objItem.PhysicalAdapter
;$SelectedAdapters[0][28] = $objItem.PNPDeviceID
;;;$SelectedAdapters[0][29] = $objItem.PowerManagementCapabilities[0]
;$SelectedAdapters[0][30] = $objItem.PowerManagementSupported
;$SelectedAdapters[0][31] = $objItem.ProductName
;$SelectedAdapters[0][32] = $objItem.ServiceName
;$SelectedAdapters[0][33] = $objItem.Speed
;$SelectedAdapters[0][34] = $objItem.Status
;$SelectedAdapters[0][35] = $objItem.StatusInfo
;$SelectedAdapters[0][36] = $objItem.SystemCreationClassName
;;;$SelectedAdapters[0][37] = $objItem.SystemName
;;;$SelectedAdapters[0][38] = $objItem.TimeOfLastReset
;ConsoleWrite("DEBUG2: " & ubound($objItem.NetworkAddresses) & @CRLF)
;_ArrayDisplay($SelectedAdapters, "DEBUG:")
; ..................................................
Else
ConsoleWrite("" & @CRLF)
ConsoleWrite("************************************************************" & @CRLF)
ConsoleWrite(" " & @CRLF)
ConsoleWrite("WARNING:SELECTED NIC NOT FOUND" & @CRLF)
ConsoleWrite("Not completed error" & @CRLF)
ConsoleWrite(" " & @CRLF)
ConsoleWrite("************************************************************" & @CRLF)
Return
Endif
; ..................................................
Next
; RETURN JUST THE INDEX OF THE SELECTED ADAPTOR USED TO SEARCH THE INFO OF CARD
Return $SelectedAdapters[0][11]
; ..................................................
EndFunc

;------------------------------------------------------------------------------------------------------------

 

Share this post


Link to post
Share on other sites
10 minutes ago, Dwalfware said:

Does auto it have a HEX converter?

Convert to or from hex? Functions Dec, Hex come to my mind.


My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2020-10-10 - Version 1.5.2.1) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (NEW 2020-12-15 - Version 1.6.3.1) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX_GUI (2020-06-27 - Version 1.3.2.0) - Download
Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
PowerPoint (2017-06-06 - Version 0.0.5.0) - Download - General Help & Support
Excel - Example Scripts - Wiki
Word - Wiki
Task Scheduler (2019-12-03 - Version 1.5.1.0) - Download - General Help & Support - Wiki

Tutorials:
ADO - Wiki, WebDriver - Wiki

 

Share this post


Link to post
Share on other sites
10 hours ago, water said:

Convert to or from hex? Functions Dec, Hex come to my mind.

From HEX -  The key holds the Alternative IP Config for Ipv4 setup, I will give it a go and see how it goes. Thanks for Info. ;)

PS .. I like this TCPIP key, It also shows you an DHCP HINT Key. If you change to static it shows a HINT of what the DHCP will be before you change back.

Thanks for all the help. 

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Dhcp\Configurations\Alternate_{5C057CAC-80D1-471F-BBCF-FF16EAE415CA}    Key = Options

Alternate_{5C057CAC-80D1-471F-BBCF-FF16EAE415CA}  = from GUID

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters\Interfaces\{5C057CAC-80D1-471F-BBCF-FF16EAE415CA} Key ActiveConfigurations

From GUID NIC

Win32_NetworkAdapter 
$objItem.GUID
Edited by Dwalfware

Share this post


Link to post
Share on other sites

I think I should have just exploded all the ips onto one array.  This bit of code will make your head hurt :P

This seems to work with Alternative IP config from HEX to DEC but have a strange SPACE in the array.

Bet its in that 96 

I think this might be a First for a script to get the ALTERNATIVE IP CONFIG FULLY

Lots of space for improvement.

Enjoy

 

#include <String.au3>
#include <Array.au3>
Global $SelectedAdapters[1][37], $AdaptorInfo[1][21]
$SelectedAdapters[0][0] = 0
$AdaptorInfo[0][0] = 0

; USE Local Area Connection or Wireless Network Connection  @ _GetSelectedNIC()

_GETcurrentNICinfo()

_GETcurrentNICAlt()

Func _GETcurrentNICAlt()
;ConsoleWrite( "************************************************************" & @CRLF)
Local $sString[1][200], $sString2[1][13], $xiii = 2, $xii = 1, $xi = 0, $xiiii = 0, $yi = 0
Local $aAltConfig = RegRead("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters\Interfaces\" & $SelectedAdapters[0][10] , "ActiveConfigurations")
;ConsoleWrite("************************************************************" & @CRLF)
;ConsoleWrite("" & $aAltConfig & @CRLF)
;ConsoleWrite("************************************************************" & @CRLF)
Local $aAltConfigDHCPHEX = RegRead("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Dhcp\Configurations\" & $aAltConfig, "Options")
;ConsoleWrite("************************************************************" & @CRLF)
;ConsoleWrite("" & $aAltConfigDHCPHEX & @CRLF)
;ConsoleWrite("************************************************************" & @CRLF)
Local $sHexCount = StringLen($aAltConfigDHCPHEX)
;ConsoleWrite("" & $sHexCount & @CRLF)
;ConsoleWrite("************************************************************" & @CRLF)
;ConsoleWrite("************************************************************" & @CRLF)
Local $sStringTrim = $aAltConfigDHCPHEX
$sStringTrim = StringTrimLeft($sStringTrim, 2)
Local $sString3 = ""
Local $sString4 = ""
Do
$sString[0][$xii] = StringLeft($sStringTrim, $xiii)
;ConsoleWrite("" & $sString[0][$xii] & @CRLF)
$sStringTrim = StringTrimLeft($sStringTrim, $xiii)
;ConsoleWrite("" & $sStringTrim & @CRLF)
Local $sHex = Dec($sString[0][$xii],0)
;ConsoleWrite("" & $sHex & @CRLF)
;ConsoleWrite("(" & $xii & ") " & "HEX:" & $sString[0][$xii] & "-DEC:" & $sHex & @CRLF)
If $xii > 96 Then
If $xi < 4 Then
$sString3 = $sString3 & $sHex & "."
;ConsoleWrite("DEBUG" & $sString3 & @CRLF)
Endif
If $xi >= 4 Then
$sString4 = $sString4 & $sHex & "."
;ConsoleWrite("DEBUG" & $sString3 & @CRLF)
Endif
Else
If $xi >= 4 Then
$sString3 = $sString3 & $sHex & "."
;;ConsoleWrite("DEBUG" & $sString3 & @CRLF)
Endif
Endif
$xii = $xii + 1
$xi = $xi + 1
$yi = $yi + 1
; ......................
If $xii <= 96 Then
If $xi = 8 Then
$xi = 0
If $yi = 24 Then
$yi = 0
$sString3 = StringTrimRight($sString3,1)
$sString2[0][$xiiii] = $sString3
;ConsoleWrite("Last 4 Oct=" & $sString2[0][$xiiii] & @CRLF)
$xiiii = $xiiii + 1
Endif
$sString3 = ""
Endif
Else
If $xi = 8 Then
$xi = 0
$sString3 = StringTrimRight($sString3,1)
$sString2[0][$xiiii] = $sString3
;ConsoleWrite("Last 4 Oct=" & $sString2[0][$xiiii] & @CRLF)
$xiiii = $xiiii + 1
$sString4 = StringTrimRight($sString4,1)
$sString2[0][$xiiii] = $sString4
;ConsoleWrite("Last 4 Oct=" & $sString2[0][$xiiii] & @CRLF)
$xiiii = $xiiii + 1
$sString3 = ""
$sString4 = ""
Endif
Endif
; ......................
;ConsoleWrite("************************************************************" & @CRLF)
Until $xii = number($sHexCount / 2)
;ConsoleWrite("************************************************************" & @CRLF)
;_ArrayDisplay($sString2, "DEBUG:")
;ConsoleWrite("************************************************************" & @CRLF)

For $Yii = 0 to UBound($sString2) -1
ConsoleWrite("NETWORK ALTERNATIVE IP CONFIG INFORMATION" & @CRLF)
ConsoleWrite("************************************************************" & @CRLF)
ConsoleWrite("IP Address: " & $sString2[0][0] & @CRLF)
ConsoleWrite("Subnet: " & $sString2[0][1] & @CRLF)
ConsoleWrite("Gateway: " & $sString2[0][2] & @CRLF)
ConsoleWrite("DNS Primary: " & $sString2[0][3] & @CRLF)
ConsoleWrite("DNS Secondry: " & $sString2[0][5] & @CRLF)
ConsoleWrite("WINS Address1: " & $sString2[0][11] & @CRLF)
ConsoleWrite("WINS Address1: " & $sString2[0][12] & @CRLF)
ConsoleWrite("************************************************************" & @CRLF)
Next

EndFunc

;------------------------------------------------------------------------------------------------------------
; ------------------------
; GET THE NIC INFO
; ------------------------
Func _GETcurrentNICinfo()
$AdaptorInfo[0][0]
Local $objWMIService = ObjGet( "winmgmts:\\" & @ComputerName & "\root\CIMV2" )
Local $query = $objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE Index = " & _GetSelectedNIC(), "WQL", 0x30 )
; ..................................................
If @error Then
ConsoleWrite("" & @CRLF)
ConsoleWrite("************************************************************" & @CRLF)
ConsoleWrite(" " & @CRLF)
ConsoleWrite("WARNING:NIC get Error" & @CRLF)
ConsoleWrite( "Not completed error" & @CRLF)
ConsoleWrite( " " & @CRLF)
ConsoleWrite("************************************************************" & @CRLF)
Return
EndIf
; ..................................................
If IsObj($query) Then
For $objItem In $query
; ...........................................
$AdaptorInfo[0][0] = $objItem.DHCPEnabled
$AdaptorInfo[0][13] = $objItem.DHCPLeaseExpires
$AdaptorInfo[0][1] = $objItem.DHCPServer
; ...........................................
If UBound($objItem.IPAddress) = 0 then
$AdaptorInfo[0][2] = ""
$AdaptorInfo[0][3] = ""
$AdaptorInfo[0][19] = ""
Endif
If UBound($objItem.IPAddress) = 1 then                    ; If only IPv4
$String0 = UBound($objItem.IPAddress) -1
$AdaptorInfo[0][2] = $objItem.IPAddress[$String0]
$AdaptorInfo[0][3] = ""
Endif
If UBound($objItem.IPAddress) = 2 then                    ; If Both IPV4 and IPV6
$String0 = UBound($objItem.IPAddress) -2
$AdaptorInfo[0][2] = $objItem.IPAddress[$String0]
$String1 = UBound($objItem.IPAddress) -1
$AdaptorInfo[0][3] = $objItem.IPAddress[$String1]
Endif
If UBound($objItem.IPAddress) = 3 then                    ; If Both IPV4 and IPV6
$String00 = UBound($objItem.IPAddress) -3
$AdaptorInfo[0][2] = $objItem.IPAddress[$String00]
$String0 = UBound($objItem.IPAddress) -2
$AdaptorInfo[0][3] = $objItem.IPAddress[$String0]
$String1 = UBound($objItem.IPAddress) -1
$AdaptorInfo[0][19] = $objItem.IPAddress[$String1]
Endif
; ...........................................
; ...........................................
If UBound($objItem.IPSubnet) = 0 then
$AdaptorInfo[0][4] = ""
$AdaptorInfo[0][5] = ""
Endif
If UBound($objItem.IPSubnet) = 1 then                    ; If Subnet
$String0 = UBound($objItem.IPSubnet) -1
$AdaptorInfo[0][4] = $objItem.IPSubnet[$String0]
$AdaptorInfo[0][5] = ""
Endif
If UBound($objItem.IPSubnet) = 2 then                    ; If more than one Subnet
$String0 = UBound($objItem.IPSubnet) -2
$AdaptorInfo[0][4] = $objItem.IPSubnet[$String0]
$String1 = UBound($objItem.IPSubnet) -1
$AdaptorInfo[0][5] = $objItem.IPSubnet[$String1]
Endif
If UBound($objItem.IPSubnet) = 3 then                    ; If more than one Subnet
$String00 = UBound($objItem.IPSubnet) -3
$AdaptorInfo[0][4] = $objItem.IPSubnet[$String00]
$String0 = UBound($objItem.IPSubnet) -2
$AdaptorInfo[0][5] = $objItem.IPSubnet[$String0]
$String1 = UBound($objItem.IPSubnet) -1
$AdaptorInfo[0][20] = $objItem.IPSubnet[$String1]
Endif
;$AdaptorInfo[0][4] = $objItem.IPSubnet[0]
;$AdaptorInfo[0][5] = $objItem.IPSubnet[1]
; ...........................................
; ...........................................
If UBound($objItem.DefaultIPGateway) = 0 then
$AdaptorInfo[0][6] = ""
$AdaptorInfo[0][16] = ""
Endif
If UBound($objItem.DefaultIPGateway) = 1 then                    ; Get the Default Gateway
$String0 = UBound($objItem.DefaultIPGateway) - 1
$AdaptorInfo[0][6] = $objItem.DefaultIPGateway[$String0]
$AdaptorInfo[0][16] = ""
Endif
If UBound($objItem.DefaultIPGateway) = 2 then                     ; If more than one Gateway
$String0 = UBound($objItem.DefaultIPGateway) -2
$AdaptorInfo[0][6] = $objItem.DefaultIPGateway[$String0]
$String1 = UBound($objItem.DefaultIPGateway) -1
$AdaptorInfo[0][16] = $objItem.DefaultIPGateway[$String1]
Endif
;$AdaptorInfo[0][6] = $objItem.DefaultIPGateway[0]
;$AdaptorInfo[0][16] = $objItem.DefaultIPGateway[1]
; ...........................................
; ...........................................
;ConsoleWrite("DEBUG0: " & UBound($objItem.DNSServerSearchOrder) & @CRLF)
If UBound($objItem.DNSServerSearchOrder) = 0 then
$AdaptorInfo[0][7] = ""
$AdaptorInfo[0][8] = ""
$AdaptorInfo[0][17] = ""
$AdaptorInfo[0][18] = ""
Endif
If UBound($objItem.DNSServerSearchOrder) = 1 then                    ; If one DNS
$String0 = UBound($objItem.DNSServerSearchOrder) -1
$AdaptorInfo[0][7] = $objItem.DNSServerSearchOrder[$String0]
$AdaptorInfo[0][8] = ""
$AdaptorInfo[0][17] = ""
$AdaptorInfo[0][18] = ""
Endif
If UBound($objItem.DNSServerSearchOrder) = 2 then                    ; If more than one DNS
$String0 = UBound($objItem.DNSServerSearchOrder) -2
$AdaptorInfo[0][7] = $objItem.DNSServerSearchOrder[$String0]
$String1 = UBound($objItem.DNSServerSearchOrder) -1
$AdaptorInfo[0][8] = $objItem.DNSServerSearchOrder[$String1]
$AdaptorInfo[0][17] = ""
$AdaptorInfo[0][18] = ""
Endif
If UBound($objItem.DNSServerSearchOrder) = 3 then                    ; If more than one DNS
$String00 = UBound($objItem.DNSServerSearchOrder) -3
$AdaptorInfo[0][7] = $objItem.DNSServerSearchOrder[$String00]
$String0 = UBound($objItem.DNSServerSearchOrder) -2
$AdaptorInfo[0][8] = $objItem.DNSServerSearchOrder[$String0]
$String1 = UBound($objItem.DNSServerSearchOrder) -1
$AdaptorInfo[0][17] = $objItem.DNSServerSearchOrder[$String1]
$AdaptorInfo[0][18] = ""
Endif
If UBound($objItem.DNSServerSearchOrder) = 4 then                    ; If more than one DNS
$String000 = UBound($objItem.DNSServerSearchOrder) -4
$AdaptorInfo[0][7] = $objItem.DNSServerSearchOrder[$String000]
$String00 = UBound($objItem.DNSServerSearchOrder) -3
$AdaptorInfo[0][8] = $objItem.DNSServerSearchOrder[$String00]
$String0 = UBound($objItem.DNSServerSearchOrder) -2
$AdaptorInfo[0][17] = $objItem.DNSServerSearchOrder[$String0]
$String1 = UBound($objItem.DNSServerSearchOrder) -1
$AdaptorInfo[0][18] = $objItem.DNSServerSearchOrder[$String1]
Endif
;$AdaptorInfo[0][7] = $objItem.DNSServerSearchOrder[0]
;$AdaptorInfo[0][8] = $objItem.DNSServerSearchOrder[1]
; ...........................................
; ...........................................
$AdaptorInfo[0][9] = $objItem.MACAddress
$AdaptorInfo[0][13] = $objItem.DHCPLeaseExpires
; ...........................................
Next
Else
ConsoleWrite("" & @CRLF)
ConsoleWrite( "************************************************************" & @CRLF)
ConsoleWrite(" " & @CRLF)
ConsoleWrite( "WARNING:WINDOWS NIC INFO NOT FOUND" & @CRLF)
ConsoleWrite("Not completed error or not true" & @CRLF)
ConsoleWrite(" " & @CRLF)
ConsoleWrite("************************************************************" & @CRLF)
Return
EndIf

; .................................................. ADD ON INFO
$AdaptorInfo[0][10] = @LogonDomain
$AdaptorInfo[0][11] = @LogonServer
$AdaptorInfo[0][14] = @LogonDNSDomain
$AdaptorInfo[0][15] = @ComputerName
; ..................................................
; ---------------------------------------------
;  DISPLAY THE NIC INFO
; ---------------------------------------------
ConsoleWrite("************************************************************" & @CRLF)
ConsoleWrite("NETWORK ADAPTOR INFORMATION" & @CRLF)
ConsoleWrite( "************************************************************" & @CRLF)
ConsoleWrite( $SelectedAdapters[0][7] & @CRLF)
If $SelectedAdapters[0][23] = 0 then
ConsoleWrite("NIC Status: Disabled" & @CRLF)
Endif
If $SelectedAdapters[0][23] = 7 then
ConsoleWrite("NIC Status: Enabled no Connection" & @CRLF)
Endif
If $SelectedAdapters[0][23] = 2 then
ConsoleWrite("NIC Status: Connected ok" & @CRLF)
Endif
ConsoleWrite("NIC Connected: " & $SelectedAdapters[0][24] & @CRLF)
ConsoleWrite("DHCP Enabled: " & $AdaptorInfo[0][0] & @CRLF)
ConsoleWrite("DHCP Lease Ex: " & $AdaptorInfo[0][13] & @CRLF)
ConsoleWrite("DHCP Server: " & $AdaptorInfo[0][1] & @CRLF)
ConsoleWrite("IPV4 Address1: " & $AdaptorInfo[0][2] & @CRLF)
ConsoleWrite("IPV6 Address1: " & $AdaptorInfo[0][3] & @CRLF)
ConsoleWrite("IPV6 Address2: " & $AdaptorInfo[0][19] & @CRLF)
ConsoleWrite("Subnet IPv4: " & $AdaptorInfo[0][4] & @CRLF)
ConsoleWrite("Subnet Prefix IPv4: " & $AdaptorInfo[0][5] & @CRLF)
ConsoleWrite("Subnet Prefix IPv6: " & $AdaptorInfo[0][5] & @CRLF)
Local $aTestedDNSIpv4 = StringRegExp($AdaptorInfo[0][6], "[0-9]{1,3}+\.[0-9]{1,3}+\.[0-9]{1,3}+\.[0-9]{1,3}", 0)
If $aTestedDNSIpv4 = 1 Then
ConsoleWrite("Gateway IPv4: " & $AdaptorInfo[0][6] & @CRLF)
Else
ConsoleWrite("Gateway IPv6: " & $AdaptorInfo[0][6] & @CRLF)
Endif
Local $aTestedDNSIpv6 = StringRegExp($AdaptorInfo[0][16], "[0-9]{1,3}+\.[0-9]{1,3}+\.[0-9]{1,3}+\.[0-9]{1,3}", 0)
If $aTestedDNSIpv6 = 0 and NOT $AdaptorInfo[0][16] = "" Then
ConsoleWrite("Gateway IPv6: " & $AdaptorInfo[0][16] & @CRLF)
Endif
ConsoleWrite("DNS Primary IPv4: " & $AdaptorInfo[0][7] & @CRLF)
ConsoleWrite("DNS Secondry IPv4: " & $AdaptorInfo[0][8] & @CRLF)
; .............................................................
If $AdaptorInfo[0][17] = "" or $AdaptorInfo[0][18] = "" Then
Local $sNameServer = RegRead("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\TCPIP6\Parameters\Interfaces\" & $SelectedAdapters[0][10] , "NameServer")
Local $aDNSIPv6array = _StringExplode($sNameServer, ",", 0)
;;_ArrayDisplay($aDNSIPv6array, "DEBUG:")
If UBound($aDNSIPv6array) = 1 then
$AdaptorInfo[0][17] = $aDNSIPv6array[UBound($aDNSIPv6array) -1]
ConsoleWrite("DNS Primary IPv6: " & $AdaptorInfo[0][17] & @CRLF)
ConsoleWrite("DNS Secondry IPv6: " & $AdaptorInfo[0][18] & @CRLF)
Endif
If UBound($aDNSIPv6array) = 2 then
$AdaptorInfo[0][17] = $aDNSIPv6array[UBound($aDNSIPv6array) -2]
ConsoleWrite("DNS Primary IPv6: " & $AdaptorInfo[0][17] & @CRLF)
$AdaptorInfo[0][18] = $aDNSIPv6array[UBound($aDNSIPv6array) -1]
ConsoleWrite("DNS Secondry IPv6: " & $AdaptorInfo[0][18] & @CRLF)
Endif
Endif
; .............................................................
ConsoleWrite("MAC Address: " & $AdaptorInfo[0][9] & @CRLF)
ConsoleWrite("Logon Domain: " & $AdaptorInfo[0][10] & @CRLF)
ConsoleWrite("Logon Server: " & $AdaptorInfo[0][11] & @CRLF)
ConsoleWrite("DNS Server: " & $AdaptorInfo[0][14] & @CRLF)
ConsoleWrite("Computer Name: " & $AdaptorInfo[0][15] & @CRLF)
ConsoleWrite( "************************************************************" & @CRLF)
return
; ..................................................
; AVALIBLE MS INFO
;  string   Caption;
;  string   Description;
;  string   SettingID;
;  boolean  ArpAlwaysSourceRoute;
;  boolean  ArpUseEtherSNAP;
;  string   DatabasePath;
;  boolean  DeadGWDetectEnabled;
;  string   DefaultIPGateway[];
;  uint8    DefaultTOS;
;  uint8    DefaultTTL;
;  boolean  DHCPEnabled;
;  datetime DHCPLeaseExpires;
;  datetime DHCPLeaseObtained;
;  string   DHCPServer;
;  string   DNSDomain;
;  string   DNSDomainSuffixSearchOrder[];
;  boolean  DNSEnabledForWINSResolution;
;  string   DNSHostName;
;  string   DNSServerSearchOrder[];
;  boolean  DomainDNSRegistrationEnabled;
;  uint32   ForwardBufferMemory;
;  boolean  FullDNSRegistrationEnabled;
;  uint16   GatewayCostMetric[];
;  uint8    IGMPLevel;
;  uint32   Index;
;  uint32   InterfaceIndex;
;  string   IPAddress[];
;  uint32   IPConnectionMetric;
;  boolean  IPEnabled;
;  boolean  IPFilterSecurityEnabled;
;  boolean  IPPortSecurityEnabled;
;  string   IPSecPermitIPProtocols[];
;  string   IPSecPermitTCPPorts[];
;  string   IPSecPermitUDPPorts[];
;  string   IPSubnet[];
;  boolean  IPUseZeroBroadcast;
;  string   IPXAddress;
;  boolean  IPXEnabled;
;  uint32   IPXFrameType[];
;  uint32   IPXMediaType;
;  string   IPXNetworkNumber[];
;  string   IPXVirtualNetNumber;
;  uint32   KeepAliveInterval;
;  uint32   KeepAliveTime;
;  string   MACAddress;
;  uint32   MTU;
;  uint32   NumForwardPackets;
;  boolean  PMTUBHDetectEnabled;
;  boolean  PMTUDiscoveryEnabled;
;  string   ServiceName;
;  uint32   TcpipNetbiosOptions;
;  uint32   TcpMaxConnectRetransmissions;
;  uint32   TcpMaxDataRetransmissions;
;  uint32   TcpNumConnections;
;  boolean  TcpUseRFC1122UrgentPointer;
;  uint16   TcpWindowSize;
;  boolean  WINSEnableLMHostsLookup;
;  string   WINSHostLookupFile;
;  string   WINSPrimaryServer;
;  string   WINSScopeID;
;  string   WINSSecondaryServer;
; ..................................................
EndFunc

;------------------------------------------------------------------------------------------------------------
; --------------------------
; GET THE WMI SELECT ADDAPTORS INFO
; --------------------------
Func _GetSelectedNIC()
Local $o_WMIService = ObjGet( "winmgmts:\\" & @ComputerName & "\root\CIMV2" )
;Local $query = $o_WMIService.ExecQuery( "SELECT * FROM Win32_NetworkAdapter WHERE NetConnectionID='Local Area Connection'", "WQL", 0x30 )
Local $query = $o_WMIService.ExecQuery( "SELECT * FROM Win32_NetworkAdapter WHERE NetConnectionID='Wireless Network Connection'", "WQL", 0x30 )
; ..................................................
If @error Then
ConsoleWrite("" & @CRLF)
ConsoleWrite( "************************************************************" & @CRLF)
ConsoleWrite(" " & @CRLF)
ConsoleWrite("WARNING:SELECTED NIC get Error" & @CRLF)
ConsoleWrite("Not completed error" & @CRLF)
ConsoleWrite(" " & @CRLF)
ConsoleWrite( "************************************************************" & @CRLF)
Return
EndIf
; ..................................................
For $objItem In $query
If IsObj($query) Then
;$SelectedAdapters[0][0] = $objItem.AdapterTypeID
;$SelectedAdapters[0][1] = $objItem.AutoSense
;$SelectedAdapters[0][2] = $objItem.Availability
;$SelectedAdapters[0][3] = $objItem.Caption
;$SelectedAdapters[0][4] = $objItem.ConfigManagerErrorCode
;$SelectedAdapters[0][5] = $objItem.ConfigManagerUserConfig
;;;$SelectedAdapters[0][6] = $objItem.reationClassName
$SelectedAdapters[0][7] = $objItem.Description
;$SelectedAdapters[0][8] = $objItem.ErrorCleared
;$SelectedAdapters[0][9] = $objItem.ErrorDescription
$SelectedAdapters[0][10] = $objItem.GUID
$SelectedAdapters[0][11] = $objItem.Index
;$SelectedAdapters[0][12] = $objItem.InstallDate
;$SelectedAdapters[0][13] = $objItem.Installed
;$SelectedAdapters[0][14] = $objItem.InterfaceIndex
;$SelectedAdapters[0][15] = $objItem.LastErrorCode
;$SelectedAdapters[0][16] = $objItem.MACAddress
;$SelectedAdapters[0][17] = $objItem.Manufacturer
;$SelectedAdapters[0][18] = $objItem.MaxNumberControlled
;$SelectedAdapters[0][19] = $objItem.MaxSpeed
;$SelectedAdapters[0][21] = $objItem.Name
$SelectedAdapters[0][22] = $objItem.NetConnectionID
$SelectedAdapters[0][23] = $objItem.NetConnectionStatus
$SelectedAdapters[0][24] = $objItem.NetEnabled
;ConsoleWrite("DEBUG2: " & UBound($objItem.NetworkAddresses) & @CRLF)
;;;$SelectedAdapters[0][25] = $objItem.NetworkAddresses[0]
;ConsoleWrite("DEBUG3: " & UBound($objItem.PermanentAddress) & @CRLF)
;$SelectedAdapters[0][26] = $objItem.PermanentAddress
;$SelectedAdapters[0][27] = $objItem.PhysicalAdapter
;$SelectedAdapters[0][28] = $objItem.PNPDeviceID
;;;$SelectedAdapters[0][29] = $objItem.PowerManagementCapabilities[0]
;$SelectedAdapters[0][30] = $objItem.PowerManagementSupported
;$SelectedAdapters[0][31] = $objItem.ProductName
;$SelectedAdapters[0][32] = $objItem.ServiceName
;$SelectedAdapters[0][33] = $objItem.Speed
;$SelectedAdapters[0][34] = $objItem.Status
;$SelectedAdapters[0][35] = $objItem.StatusInfo
;$SelectedAdapters[0][36] = $objItem.SystemCreationClassName
;;;$SelectedAdapters[0][37] = $objItem.SystemName
;;;$SelectedAdapters[0][38] = $objItem.TimeOfLastReset
;ConsoleWrite("DEBUG2: " & ubound($objItem.NetworkAddresses) & @CRLF)
;_ArrayDisplay($SelectedAdapters, "DEBUG:")
; ..................................................
Else
ConsoleWrite("" & @CRLF)
ConsoleWrite("************************************************************" & @CRLF)
ConsoleWrite(" " & @CRLF)
ConsoleWrite("WARNING:SELECTED NIC NOT FOUND" & @CRLF)
ConsoleWrite("Not completed error" & @CRLF)
ConsoleWrite(" " & @CRLF)
ConsoleWrite("************************************************************" & @CRLF)
Return
Endif
; ..................................................
Next
; RETURN JUST THE INDEX OF THE SELECTED ADAPTOR USED TO SEARCH THE INFO OF CARD
Return $SelectedAdapters[0][11]
; ..................................................
EndFunc

;------------------------------------------------------------------------------------------------------------

 

Edited by Dwalfware

Share this post


Link to post
Share on other sites
10 hours ago, FrancescoDiMuro said:

@Dwalfware

Could you please post the source string you are trying to explode, and the result you are trying to achieve? :)

Its all good now, The result was was made. ;) Its all in the last code. SOLVED 

Cheers 

D

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By DirtyJohny
      Hi everyone.Need rewrite this function how in еxample.
      Original:
      #RequireAdmin #NoTrayIcon Opt("MustDeclareVars",1) Func _a() Local $sls=ObjGet("winmgmts:{impersonationLevel=impersonate," _ &"authenticationLevel=Pkt}!\\"& _ @ComputerName&'\root\wmi'),$lss=$sls.ExecQuery _ ('SELECT * FROM WmiMonitorID'), _ $lll,$sll,$sss="",$lsl,$lls,$i,$z For $z In $lss $lsl=$z.UserFriendlyName For $i=0 To Ubound($lsl)-1 if ($lsl[$i]) Then $lll&=Chr($lsl[$i]) Next $lls=$z.SerialNumberID For $i=0 To Ubound($lls)-1 if ($lls[$i]) Then $sll&=Chr($lls[$i]) Next $sss&="Model"&@TAB&@TAB&": "&$lll&@CR&"Serial Number"&@TAB&": "&$sll&@CR&@CR $lll="" $sll="" Next MsgBox(262144,'Monitors '&$lss.Count,$sss&" "&@CR) $lss=Null $sls=Null EndFunc _a() Example:
      Func _InfoPC() Local $ObjService = ObjGet('winmgmts:{impersonationLevel = impersonate}!\\' & @ComputerName & '\root\cimv2') Local $ObjMB = $ObjService.ExecQuery('SELECT * FROM Win32_BaseBoard', 'WQL', 0x30) If IsObj($ObjService) Then For $objItemMB In $ObjMB $sInfo &= @TAB & 'Motherboard: ...... ' & $objItemMB.Product & @CRLF I'm beginner in this sphere and need  you all speak easy and simply because i'm Russian.Thanks)
    • By jguinch
      Hello.
      I did create these few functions several months ago. I post here, if it can interest someone.
      These functions based on WMI queries allow you to manage printers : add / delete printer, driver, port, or obtain configuration, set default printer ... I let you discover it with the code.

       
      Here is the list of the available functions :
      _Printmgr_AddLocalPort
      _Printmgr_AddLPRPort
      _PrintMgr_AddPrinter
      _PrintMgr_AddPrinterDriver
      _PrintMgr_AddTCPIPPrinterPort
      _PrintMgr_AddWindowsPrinterConnection
      _PrintMgr_CancelAllJobs
      _Printmgr_EnumPorts
      _PrintMgr_EnumPrinter
      _PrintMgr_EnumPrinterConfiguration
      _PrintMgr_EnumPrinterDriver
      _PrintMgr_EnumPrinterProperties
      _PrintMgr_EnumTCPIPPrinterPort
      _Printmgr_Pause
      _Printmgr_PortExists
      _Printmgr_PrinterExists
      _Printmgr_PrinterSetComment
      _Printmgr_PrinterSetDriver
      _Printmgr_PrinterSetPort
      _Printmgr_PrinterShare
      _Printmgr_PrintTestPage
      _PrintMgr_RemoveLocalPort
      _PrintMgr_RemoveLPRPort
      _PrintMgr_RemovePrinter
      _PrintMgr_RemovePrinterDriver
      _PrintMgr_RemoveTCPIPPrinterPort
      _PrintMgr_RenamePrinter
      _Printmgr_Resume
      _PrintMgr_SetDefaultPrinter
       
      And some examples :
      #include <Array.au3> #include "PrintMgr.au3" _Example() Func _Example() ; Remove a printer called "My old Lexmark printer" : _PrintMgr_RemovePrinter("My old Lexmark printer") ; Remove the driver called "Lexmark T640" : _PrintMgr_RemovePrinterDriver("Lexmark T640") ; Remove the TCP/IP printer port called "TCP/IP" _PrintMgr_RemoveTCPIPPrinterPort("MyOLDPrinterPort") ; Add a driver, called "Samsung ML-451x 501x Series", and driver inf file is ".\Samsung5010\sse2m.inf" _PrintMgr_AddPrinterDriver("Samsung ML-451x 501x Series", "Windows NT x86", @ScriptDir & "\Samsung5010", @ScriptDir & "\Samsung5010\sse2m.inf") ; Add a TCP/IP printer port, called "MyTCPIPPrinterPort", with IPAddress = 192.168.1.10 and Port = 9100 _PrintMgr_AddTCPIPPrinterPort("MyTCPIPPrinterPort", "192.168.1.10", 9100) ; Add a printer, give it the name "My Printer", use the driver called "Samsung ML-451x 501x Series" and the port called "MyTCPIPPrinterPort" _PrintMgr_AddPrinter("My Printer", "Samsung ML-451x 501x Series", "MyTCPIPPrinterPort") ; Set the printer called "My Printer" as default printer _PrintMgr_SetDefaultPrinter("My Printer") ; Connect to the shared printer "\\192.168.1.1\HPDeskjetColor") _PrintMgr_AddWindowsPrinterConnection("\\192.168.1.1\HPDeskjetColor") ; List all installed printers Local $aPrinterList = _PrintMgr_EnumPrinter() _ArrayDisplay($aPrinterList) ; List all printers configuration Local $aPrinterConfig = _PrintMgr_EnumPrinterConfiguration() _ArrayDisplay($aPrinterConfig) ; List all installed printer drivers Local $aDriverList = _PrintMgr_EnumPrinterDriver() _ArrayDisplay($aDriverList) ; Retrieve the printer configuration for the printer called "Lexmark T640" $aPrinterConfig = _PrintMgr_EnumPrinterConfiguration("Lexmark T640") _ArrayDisplay($aPrinterConfig) ; Add a local printer port (for a file output) _PrintMgr_AddLocalPort("c:\temp\output.pcl") ; Remove the local port _PrintMgr_RemoveLocalPort("c:\temp\output.pcl") EndFunc ;==>_Example Download link :
      PrintMgr.au3
      PrintMgr_Example.au3
    • By shital
      #Region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_UseX64=y #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI **** RunAs(test", @ComputerName, "testinng",2,"wmic product where ""name= '%notepadexamples%'"" call uninstall", @SystemDir & "\wbem", @SW_MAXIMIZE)  it not working 
       
    • By Colduction
      Hi AutoIt Programmers!

      I've seen a code that gives Name of Group by writing it's group's SID, but this one response very slower than Windows Command-Line WMIC
       
      Func _GetLocalGroupName($sSID = 'S-1-5-18') $objWMIService = ObjGet ("winmgmts:\\" & @ComputerName & "\root\cimv2") $colItems = $objWMIService.ExecQuery('SELECT Name FROM Win32_Group where SID="' & $sSID & '"') For $GroupNames in $colItems MsgBox (0,"",$GroupNames.Name) ExitLoop Next EndFunc I don't want call and use any third-party programs even CMD, i just want use from Windows API, netapi32.dll or AutoIt Functions (Standalone).
      Do you have any idea to improve speed/performance of this code? I'll happy of your comments
       
       
       
      ====================== SOLOUTION by @Subz ======================
       
    • By jresine
      Hello, is it possible to know via a script or command, to have the percentage of disk usage of a process? thank you in advance.
      ps: see image

×
×
  • Create New...