Lista de endereços MAC para 10 máquinas

0

Eu preciso listar os endereços MAC para 10 computadores com o Windows 7 instalado. Estes são nomeados em uma série como training1 - training10.

Existem endereços IP no modo DHCP e são atualizados toda semana.

Alguma idéia de como eu faço isso no Windows? Conheço scripts em BASH, mas o windows powershell é novo para mim.

    
por linud 27.06.2014 / 08:44

2 respostas

2

Algo como isso deve acontecer:

# An array of server names
$servers = 'comp1','comp2','comp3','comp4';
Get-WmiObject -computer $servers -class win32_networkadapter | 
    Where-Object AdapterType -eq 'Ethernet 802.3' | 
    Format-Table -auto __SERVER,Caption,ServiceName,AdapterType, MacAddress

com o resultado sendo algo como (endereços MAC deliberadamente ocultos):

__SERVER Description                                   ServiceName AdapterType    MacAddress
-------- -----------                                   ----------- -----------    ----------
COMP1    Microsoft Virtual Machine Bus Network Adapter netvsc      Ethernet 802.3 xx:xx:xx:xx:xx:xx
COMP2    Microsoft Virtual Machine Bus Network Adapter netvsc      Ethernet 802.3 xx:xx:xx:xx:xx:xx
COMP3    Realtek PCIe GBE Family Controller            RTL8167     Ethernet 802.3 xx:xx:xx:xx:xx:xx
COMP3    Microsoft Virtual Network Switch Adapter      VMSMP       Ethernet 802.3 xx:xx:xx:xx:xx:xx
COMP4    Realtek PCIe GBE Family Controller            RTL8167     Ethernet 802.3 xx:xx:xx:xx:xx:xx

Nota:

  1. Alguns computadores podem ter várias NICs e, portanto, vários endereços MAC.

  2. Nem todas as NICs são físicas. (Virtualização Hyper-V acima.)

  3. Ao trabalhar a partir da linha de comando, eu usaria aliases de PSH e parâmetros posicionais:

    gwmi -comp 'comp1','comp2','comp3','comp4' win32_networkadapter | ? AdapterType -eq 'Ethernet 802.3' | ft -auto __SERVER,Caption,ServiceName,AdapterType, MacAddress
    
por 27.06.2014 / 09:04
1

Há um cmdlet para isso:

Get-NetAdapter -Physical fornecerá informações sobre suas interfaces locais.

Se você adicionar o parâmetro -CimSession ( Get-NetAdapter -Physical -CimSession ), poderá se conectar a um servidor por seu ComputerName .

Você acaba com: Get-NetAdapter -Physical -CimSession "ComputerName, ComputerName" , onde também é possível preencher ComputerName com uma variável contendo os nomes dos servidores com os quais você trabalhará. Separe vários nomes de computadores com , .

Você encontrará o Ambiente de Scripts Integrados do PowerShell pesquisando powershell_ise.exe na raiz do Volume de Inicialização (geralmente C:) no Windows Explorer :). Você provavelmente vai querer clicar com o botão direito do mouse e executá-lo como administrador;).

Por que você deve usar o CIM? Algumas razões para tentar convencê-lo:

goals for new CIM Cmdlets

  • Rich PowerShell experience. Make CIM a first class citizen of PS, addressing usability concerns and user feedback for WMI and WsMan Cmdlets.

  • Standard compliance. With so much focus on standards, our goal is to make PowerShell the best platform for managing Windows and Non-Windows. New CIM Cmdlets should be able to manage any CIM + WsMan compliant endpoint, including Windows.

  • Support for down-level machines. We understand that there are more down-level servers in a datacenter than there would be Windows Server 2012 for some time to come. We want to make sure same set of Cmdlets can be used to manage down-level Windows as well.

Você pode ler mais aqui !

Mais uma coisa : você precisará usar o Windows PowerShell 3.0 ou superior para que isso funcione; para saber como atualizar sua versão do Windows PowerShell do Windows 7, clique aqui .

    
por 27.06.2014 / 11:31