sexta-feira, 27 de fevereiro de 2015

Script que exibe IP, mascara de rede, Gateway, DNS e MAC de computadores na rede

Olá pessoal!

Compartilhando com vocês um script em Powershell muito bacana, na época precisei capturar algumas configurações de várias servidores em localidades diferentes.

O script abaixo exibe IP, mascara de rede, Gateway, DNS e MAC de computadores na rede.

[cmdletbinding()]
param (
[parameter(ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true)]
   [string[]]$ComputerName = $env:computername
)            

begin {}
process {
foreach ($Computer in $ComputerName) {
 if(Test-Connection -ComputerName $Computer -Count 1 -ea 0) {
  $Networks = Get-WmiObject Win32_NetworkAdapterConfiguration -ComputerName $Computer | ? {$_.IPEnabled}
  foreach ($Network in $Networks) {
   $IPAddress  = $Network.IpAddress[0]
   $SubnetMask  = $Network.IPSubnet[0]
   $DefaultGateway = $Network.DefaultIPGateway
   $DNSServers  = $Network.DNSServerSearchOrder
   $IsDHCPEnabled = $false
   If($network.DHCPEnabled) {
    $IsDHCPEnabled = $true
   }
   $MACAddress  = $Network.MACAddress
   $OutputObj  = New-Object -Type PSObject
   $OutputObj | Add-Member -MemberType NoteProperty -Name ComputerName -Value $Computer.ToUpper()
   $OutputObj | Add-Member -MemberType NoteProperty -Name IPAddress -Value $IPAddress
   $OutputObj | Add-Member -MemberType NoteProperty -Name SubnetMask -Value $SubnetMask
   $OutputObj | Add-Member -MemberType NoteProperty -Name Gateway -Value $DefaultGateway
   $OutputObj | Add-Member -MemberType NoteProperty -Name IsDHCPEnabled -Value $IsDHCPEnabled
   $OutputObj | Add-Member -MemberType NoteProperty -Name DNSServers -Value $DNSServers
   $OutputObj | Add-Member -MemberType NoteProperty -Name MACAddress -Value $MACAddress
   $OutputObj
  }
 }
}
}            

end {}

Salve o conteúdo em um arquivo chamado: Get-IPDetails.PS1

# O comando abaixo exibe as informações referente ao computador COMPUTER01
.\Get-IPDetails.PS1 -ComputerName  COMPUTER01 | ft -AutoSize


# O comando abaixo salva as informações em um arquivo txt chamado Lista.txt
.\Get-IPDetails.PS1 -ComputerName  COMPUTER01 | ft -AutoSize > Lista.txt

# O parâmetro “ | ft -AutoSize” exibe a saída em linha, este parâmetro pode ser removido.




Abraços e bons estudos!


 

Nenhum comentário:

Postar um comentário