GetMAC

A GetMAC segítségével egyszerűen tudjuk a hálózati interfészekhez tartozó MAC címeket és az interfész állapotára vonatkozó információkat összegyűjteni, egyszerűbben, mint WMI segítségével. Használata nagyon hasonlít a WhoAmI-hoz, így a beágyazó függvény is hasonló lesz. Itt még készítettem egy formázó XML kifejezést is, hogy az eredmény szép legyen. Először nézzük a függvényt:

function get-mac {

param(

    $computername,

    $user,

    $password,

    $connection = "*",

    [switch] $on

   

)

 

    $command = "getmac -v -fo csv"

    if($user){

        $command += " -u $user"

    }

    if($password){

        $command += " -p $password"

    }

    if($computername){

        $command += " -s $computername"

    }   

    Invoke-Expression $command | ConvertFrom-Csv |

        ?{$_."Network Adapter" -like $connection -and (!$on -or ($_."Transport Name" -ne "Media Disconnected" -and $_."Transport Name" -ne "Hardware not present"))} |

            %{$_.psobject.TypeNames.clear(); $_.psobject.TypeNames.Add("hardware.mac"); $_}

}

 

Update-FormatData -PrependPath C:\ps\hardware.mac.format.ps1xml

A használhatóság fokozására olyan paramétereket is bevezettem, amelyeket az eredeti parancssori eszköz nem nyújt. Ilyen az –on kapcsoló, mellyel csak az „élő” hálózati kapcsolatokkal rendelkező adaptereket kapjuk meg, vagy a –connection paraméter, mely szűri névre a hálózati kapcsolatokat.

És az ehhez tartozó formázó XML kifejezés:

<?xml version="1.0" encoding="utf-8" ?>

 

<Configuration>

 

    <ViewDefinitions>

        <View>

            <Name>hardware.mac.default</Name>

            <ViewSelectedBy>

                <TypeName>hardware.mac</TypeName>

            </ViewSelectedBy>

            <TableControl>

                <TableHeaders>

                    <TableColumnHeader>

                        <Width>25</Width>

                    </TableColumnHeader>

                    <TableColumnHeader>

                        <Width>45</Width>

                    </TableColumnHeader>

                    <TableColumnHeader>

                        <Width>17</Width>

                    </TableColumnHeader>

                    <TableColumnHeader>

                    </TableColumnHeader>

                </TableHeaders>

                <TableRowEntries>

                    <TableRowEntry>

                        <TableColumnItems>

                            <TableColumnItem>

                                <PropertyName>Connection Name</PropertyName>

                            </TableColumnItem>

                            <TableColumnItem>

                                <PropertyName>Network Adapter</PropertyName>

                            </TableColumnItem>

                            <TableColumnItem>

                                <PropertyName>Physical Address</PropertyName>

                            </TableColumnItem>

                            <TableColumnItem>

                                <PropertyName>Transport Name</PropertyName>

                            </TableColumnItem>

                        </TableColumnItems>

                    </TableRowEntry>

                </TableRowEntries>

            </TableControl>

        </View>      

    </ViewDefinitions>

</Configuration>

Ezzel a kimenet nagyon szép lesz:

121 . ábra A Get-MAC függvény kimenete az ISE felületen

A kimenetet az ISE felületről másoltam, mert elég széles oszlopokkal dolgoztam, így ebben a formában jobban látszik.



Word To HTML Converter