开发者

Add Member to get NIC Info Gives Error for Servers with More than One Nic ( powershell.)

Im trying to genreate a report for NIc Card info using powershell, & use add member to append the properties, but if a server is having more than 1 NIC, add members return an error "Do you want to owerwrite property" Use -force, could any one please help me to sort out the issue, also im having an array $output=@() into which im appending all these inputs,i Tried adding a for loop to get the no of NICS & iterate thru them one b开发者_JS百科y one as an array, i see no output, can some one help me.

<#NIC card info Check#>

$colItems1 = get-wmiobject -class "Win32_NetworkAdapter"  -namespace "root\CIMV2" -computername $compname
$colItems = get-wmiobject -class "Win32_NetworkAdapterconfiguration"  -namespace "root\CIMV2" -computername $compname
$lengthcol=($colItems1).length
for ($i=0;$i-lt$length;$i++){
foreach ($objitem in $colItems)
{
    # Match the current $objItem with the correct $ColItems1 element.
    $objItem1 = $colItems1| where-object{$_.Caption -eq $objItem.Caption}
    # A test is needed here as the loop will find a number of virtual network configurations with no  "Hostname" 
    # So if the "Hostname" does not exist, do NOT display it!
    if ($objItem.ipenabled -eq "true" -and  $objitem1.netconnectionid) {
    # Write to screen
    #write-host "Caption: " $objItem.Caption
    $nicname[$i]=$objitem1.netconnectionid
    $dhcpenabled[$i]=$objItem.DHCPEnabled
    $ipaddress[$i]=$objItem.IPAddress
    $ipsubnet[$i]=$objItem.IPSubnet
    $gateway[$i]=$objItem.DefaultIPGateway
    $dhcpserver[$i]=$objItem.DHCPServer
    $DNSDomain[$i]=$objItem.DNSDomain
    $DNSDomainSearchOrder[$i]=$objItem.DNSDomainSuffixSearchOrder
    $DNSServerSearchOrder[$i]=$objItem.DNSServerSearchOrder
    $output | Add-Member -MemberType Noteproperty -Name NICCardName[$i] -Value $nicname[$i]
    $output | Add-Member -MemberType Noteproperty -Name DHCPEnabled[$i] -Value $dhcpenabled[$i]
    $output | Add-Member -MemberType Noteproperty -Name IPAddress[$i] -Value $ipaddress[$i]
    $output | Add-Member -MemberType Noteproperty -Name SubnetMask[$i] -Value $ipsubnet[$i]
    $output | Add-Member -MemberType Noteproperty -Name Gateway[$i] -Value $gateway[$i]
    $output | Add-Member -MemberType Noteproperty -Name DHCPServer[$i] -Value $dhcpserver[$i]
    $output | Add-Member -MemberType Noteproperty -Name DNSDomain[$i] -Value $DNSDomain[$i]
    $output | Add-Member -MemberType Noteproperty -Name DNSDomainSuffixSearchOrder[$i] -Value $DNSDomainSearchOrder[$i]
    $output | Add-Member -MemberType Noteproperty -Name DNSServerSearchOrder[$i] -Value $DNSServerSearchOrder[$i]
}
}
}

$outputs+=$output


Try this:

Get-WmiObject Win32_NetworkAdapter -ComputerName $computer| ForEach-Object {    
    $NetConnectionId = $_.NetConnectionId
    $nac = $_.GetRelated('Win32_NetworkAdapterconfiguration') | Select-Object IPEnabled,DHCPEnabled,IPAddress,IPSubnet,DefaultIPGateway,DHCPServer,DNSDomain,DNSDomainSuffixSearchOrder,DNSServerSearchOrder
    $nac | Select-Object *,@{Name='NetConnectionId';Expression={$NetConnectionId}}
}

UPDATE (per poster request):

$compname='.'
$colItems1 = get-wmiobject -class Win32_NetworkAdapter  -computername $compname
$colItems = get-wmiobject -class Win32_NetworkAdapterconfiguration -computername $compname

foreach ($objitem in $colItems)
{
     $objItem1 = $colItems1 | where-object{$_.Caption -eq $objItem.Caption}

     if ($objItem.ipenabled -eq $true -and $objitem1.netconnectionid)
     {
        $output = new-object -typename psobject
        $output | Add-Member -MemberType Noteproperty -Name NICCardName -Value $objitem1.netconnectionid
        $output | Add-Member -MemberType Noteproperty -Name DHCPEnabled -Value $objItem.DHCPEnabled
        $output | Add-Member -MemberType Noteproperty -Name IPAddress -Value $objItem.IPAddress
        $output | Add-Member -MemberType Noteproperty -Name SubnetMask -Value $objItem.IPSubnet
        $output | Add-Member -MemberType Noteproperty -Name Gateway -Value $objItem.DefaultIPGateway
        $output | Add-Member -MemberType Noteproperty -Name DHCPServer -Value $objItem.DHCPServer
        $output | Add-Member -MemberType Noteproperty -Name DNSDomain -Value $objItem.DNSDomain
        $output | Add-Member -MemberType Noteproperty -Name DNSDomainSuffixSearchOrder -Value $objItem.DNSDomainSuffixSearchOrder
        $output | Add-Member -MemberType Noteproperty -Name DNSServerSearchOrder -Value $objItem.DNSServerSearchOrder -PassThru  

     }
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜