Saída do Powershell com nomes

0

Eu tenho abaixo este comando do PowerShell para obter a saída da velocidade do adaptador Ethernet no nome do computador que eu especificar:

Get-WmiObject -class Win32_PerfRawData_Tcpip_NetworkInterface -ComputerName Computernamehere | Format-Table Name,@{label="LinkSpeed(MB)";Expression={$_.CurrentBandwidth/1000000 -as [int]}}

Agora tenho mais de 60 computadores e colei o comando mais de 60 vezes para os diferentes 60 nomes de computador no mesmo arquivo de script do PowerShell, cada um em uma linha e terminei com um arquivo de texto de saída executando Em um prompt de comando

powershell ".\LinkSpeed.ps1" > test.log

Alguém pode me orientar para ajustar o código para importar os nomes de um arquivo de texto e quando eu obtiver a saída, ele criaria o nome de cada computador para sua velocidade, porque eu tenho que contar em qual linha o nome errado A velocidade é e voltar para o script do PowerShell e procurar por essa linha para determinar o nome do computador, abaixo está a amostra da saída.

Name LinkSpeed(MB) ---- -------------

Intel[R] 82567LM-3 Gigabit Network Connection 1000

isatap.domain.com 0

isatap.{9B9559F2-1490-4661-81A2-6AA1DC382AF8} 0

Obrigado.

    
por Elie 20.02.2017 / 11:43

1 resposta

2

Algo ao longo destas linhas é a sua melhor aposta:

$output = $null

foreach($computer in (get-content c:\tempcomputers.txt)){

   $LinkSpeed = Get-WmiObject -class Win32_PerfRawData_Tcpip_NetworkInterface -ComputerName $computer

      foreach($link in $LinkSpeed){

      $object = New-Object psobject | Select ComputerName, LinkName, LinkSpeedMB
      $object.ComputerName = $computer
      $object.LinkName = $link.Name
      $object.LinkSpeedMB = [int]$Link.CurrentBandwidth/1000000

   [array]$output += $object
      }

}
$output | Out-File test.log

Quebrando o que eu tenho acima, estamos passo a passo:

Looping através de todos os ComputerNames no documento txt chamado 60computers.txt

Em seguida, foreach computer executando o cmdlet Get-WMIObject para coletar as informações

Em seguida, crie um Objeto do PowerShell para formatar os dados como queremos

Adicionando isso a um array (mais rápido do que acrescentar a um arquivo)

Em seguida, empurre a matriz para o arquivo de log.

    
por 22.02.2017 / 11:22