Fazil,
If both your source and the target are running WMI (standard on Win2k and
Win98/ME, opt. on NT 4.0) you can easily query the settings. To identify if
the card is really in Duplex is much harder. Because this is Layer2 the OEM
supports the configuration and reporting, not the OS. With my 3Com driver
it reports "Hardware Default", and not 100 Half. I have also experienced
OEM management software will incorrectly identifying the settings. The
software reports one thing, and a cable tester reports another. The only
way I can think of to consistently check would be to write a script to
Telnet to the switch or router and interrogate each port. This will
normally get you the mode and MAC address. From there you can cross
reference the MAC back to the computer name.
James
use Win32::OLE qw(in);
$WSQLQuery = "Select * From Win32_NetworkAdapterConfiguration";
$BOOL = { 0 => "FALSE", 1 => "TRUE", '' => "UNDEFINED" };
if ( @ARGV ){
$NodeName = @ARGV[0];
$NodeName =~ s/\\//g;
print "Network Interfaces For Workstation $NodeName\n\n";
$NodeName = "//".$NodeName;
} else {
$NodeName = "";
print "Network Interfaces For Local Workstation\n\n";
}
$WMI = Win32::OLE->GetObject("winmgmts:".$NodeName);
$Enum = $WMI->ExecQuery($WSQLQuery);
foreach $Interface ( in $Enum ){
if ($Interface eq undef){
"No Network Found";
} else {
print "Caption = ".$Interface->Caption."\n";
print "Description = ".$Interface->Description."\n";
print "Service Name = ".$Interface->ServiceName."\n";
print "Setting ID = ".$Interface->SettingID."\n";
print "Index = ".$Interface->Index."\n";
print "Database Path = ".$Interface->DatabasePath."\n";
print "MTU = ".$Interface->MTU."\n\n";
print "IP Address =
".join(".",@{$Interface->IPAddress})."\n";
print "IP Subnet = ".join(".",@{$Interface->IPSubnet})."\n";
print "Default IP Gateway =
".join(".",@{$Interface->DefaultIPGateway})."\n";
print "MAC Address = ".$Interface->MACAddress."\n\n";
print "ARP Always Source Route =
".$BOOL->{$Interface->ArpAlwaysSourceRoute}."\n";
print "ARP Use Ether SNAP =
".$BOOL->{$Interface->ArpUseEtherSNAP}."\n\n";
print "WINS Host Lookup File =
".$Interface->WINSHostLookupFile."\n";
print "WINS Primary Server =
".$Interface->WINSPrimaryServer."\n";
print "WINS Scope ID = ".$Interface->WINSScopeID."\n";
print "WINS Secondary Server =
".$Interface->WINSSecondaryServer."\n";
print "WINS Enable LM Hosts Lookup =
".$BOOL->{$Interface->WINSEnableLMHostsLookup}."\n\n";
print "Full DNS Registration Enabled =
".$BOOL->{$Interface->FullDNSRegistrationEnabled}."\n";
print "DNS Domain = ".$Interface->DNSDomain."\n";
print "DNS Host Name = ".$Interface->DNSHostName."\n";
print "DNS Enabled For WINS Resolution =
".$BOOL->{$Interface->DNSEnabledForWINSResolution}."\n";
print "DNS Server Search Order = ".join(",
",@{$Interface->DNSServerSearchOrder})."\n";
print "Domain DNS Registration Enabled =
".$BOOL->{$Interface->DomainDNSRegistrationEnabled}."\n";
print "DNS Domain Suffix Search Order = ".join(",
",@{$Interface->DNSDomainSuffixSearchOrder})."\n\n";
print "DHCP Enabled =
".$BOOL->{$Interface->DHCPEnabled}."\n";
print "DHCP Server = ".$Interface->DHCPServer."\n";
print "DHCP Lease Expires =
".$Interface->DHCPLeaseExpires."\n";
print "DHCP Lease Obtained =
".$Interface->DHCPLeaseObtained."\n\n";
print "TCP/IP Netbios Options =
".$Interface->TcpipNetbiosOptions."\n";
print "TCP Maximum Connect Retransmissions =
".$Interface->TcpMaxConnectRetransmissions."\n";
print "TCP Maximum Data Retransmissions =
".$Interface->TcpMaxDataRetransmissions."\n";
print "TCP Number of Connections =
".$Interface->TcpNumConnections."\n";
print "TCP Window Size = ".$Interface->TcpWindowSize."\n";
print "PMTUBH Detect Enabled =
".$BOOL->{$Interface->PMTUBHDetectEnabled}."\n";
print "PMTU Discovery Enabled =
".$BOOL->{$Interface->PMTUDiscoveryEnabled}."\n";
print "TCP Use RFC1122 Urgent Pointer =
".$BOOL->{$Interface->TcpUseRFC1122UrgentPointer}."\n";
print "Forward Buffer Memory =
".$Interface->ForwardBufferMemory."\n\n";
print "IP Enabled = ".$BOOL->{$Interface->IPEnabled}."\n";
print "Gateway Cost Metric = ".join(",
",@{$Interface->GatewayCostMetric})."\n";
print "Dead Gateway Detect Enabled =
".$BOOL->{$Interface->DeadGWDetectEnabled}."\n";
print "IP Filter Security Enabled =
".$BOOL->{$Interface->IPFilterSecurityEnabled}."\n";
print "IP Port Security Enabled =
".$BOOL->{$Interface->IPPortSecurityEnabled}."\n";
print "IP Sec Permit IP Protocols = ".join(",
",@{$Interface->IPSecPermitIPProtocols})."\n";
print "IP Sec Permit TCP Ports = ".join(",
",@{$Interface->IPSecPermitTCPPorts})."\n";
print "IP Sec Permit UDP Ports = ".join(",
",@{$Interface->IPSecPermitUDPPorts})."\n";
print "IP Use Zero Broadcast =
".$BOOL->{$Interface->IPUseZeroBroadcast}."\n";
print "IP Connection Metric =
".$Interface->IPConnectionMetric."\n";
print "Number of Forwarded Packets =
".$Interface->NumForwardPackets."\n";
print "Default TOS = ".$Interface->DefaultTOS."\n";
print "Default TTL = ".$Interface->DefaultTTL."\n";
print "Keep Alive Interval =
".$Interface->KeepAliveInterval."\n";
print "Keep Alive Time = ".$Interface->KeepAliveTime."\n";
print "IGMP Level = ".$Interface->IGMPLevel."\n\n";
print "IPX Enabled = ".$BOOL->{$Interface->IPXEnabled}."\n";
print "IPX Network Number =
".join(".",@{$Interface->IPXNetworkNumber})."\n";
print "IPX Address = ".$Interface->IPXAddress."\n";
print "IPX Virtual Net Number =
".$Interface->IPXVirtualNetNumber."\n";
print "IPX Frame Type = ".$Interface->IPXFrameType."\n";
print "IPX Media Type = ".$Interface->IPXMediaType."\n\n";
}
}
>From: [EMAIL PROTECTED]
>To: [EMAIL PROTECTED]
>Subject: nic info
>Date: Fri, 17 Aug 2001 08:29:50 -0400
>Guys,
>I need some help with a script to get the Network card (nic) info and
Duplex
>settings of a remote pc.
>
>any help will be appreciated,
>
>fazil
_______________________________________________
Perl-Win32-Admin mailing list
[EMAIL PROTECTED]
http://listserv.ActiveState.com/mailman/listinfo/perl-win32-admin