Obține Network Information cu ajutorul PowerShell Script

Obține Network Information cu ajutorul PowerShell Script

Get Network Info - Folosește PowerShell Script

În articolul anterior v-am prezentat cum se poate face un batch script ce culege informațiile despre plăcile de rețea, dar astăzi vreau să vă arat o variantă bazată pe powershell script.

1. Scriptul PowerShell

Voi crea scriptul cu ajutorul PowerShell ISE. Acesta poate fi pornit din meniul Start al Windows-ului.

PowerShell ISE
Windows PowerShell ISE

A. Informații necesare și comenzi

  1. Voi încerca să obțin aceleași informații ca în cazul scriptului anterior. Pentru aceasta voi folosi comanda:
(Get-CimInstance -ClassName Win32_ComputerSystem).Name  

Această comandă va citi numele calculatorului.

    2. Pentru a obține data curentă a sistemului am să folosesc comanda:

Get-Date 

    3 .Iar pentru a citi informațiile despre plăcile de rețea, voi rula comanda:

Get-WmiObject Win32_NetworkAdapterConfiguration | Select Description, MACAddress, IPAddress, DefaultIPGateway, DNSServerSearchOrder  

În mod normal, comanda de mai sus poate oferi mult mai multe informații, dar, pentru că pe mine mă interesează doar anumite informații, am efectuat o filtrare după descriere, adresa MAC, adresa IP, adresa gateway și adresa DNS. Dacă doriți să obțineți toate informațiile posibile înlocuiți termenii din filtrare cu * .

    4. La fel ca la scriptul batch, voi folosi un separator între informațiile ce vor fi scrise în fișier. Am să folosesc același separator cu ajutorul comenzii:

Write-Output "___________________________________________________________"  

    5. Informațiile vor fi scrise în fișierul network.txt aflat local pe desktopul calculatorului prin comanda:

Out-File -FilePath C:\Users\7hub\Desktop\network.txt  

ATENȚIE!!! Dacă voi folosi această comandă la finalul fiecărei comenzi pentru a scrie în același fișier, informațiile se vor șterge una pe cealaltă. Va rămâne doar ultima comandă înregistrată. Pentru a corecta acest lucru, mă voi folosi de comanda Append ce îmi permite să scriu în continuare fără a șterge nimic de dinainte.

B. Codul

Codul PowerShell va arăta așa:

Get-Date 
(Get-CimInstance -ClassName Win32_ComputerSystem).Name Get-WmiObject Win32_NetworkAdapterConfiguration | Select Description, MACAddress, IPAddress, DefaultIPGateway, DNSServerSearchOrder 
Write-Output "___________________________________________________________" 
 

După ce am scris codul, îl voi salva cu numele network.ps1.

C. Scrierea informațiilor într-un fișier

Dacă veți rula codul de mai sus în Windows PowerShell ISE, se vor derula o serie de informații în partea de jos a aplicației ISE. Pentru că scopul este să am aceste informații scrise într-un fișier, voi completa scriptul după cum urmează:

  • Scriere locală

Voi începe prin a scrie local, pe calculator, aceste informații. Pentru acest lucru voi modifica astfel codul:

Get-Date | Out-File -FilePath C:\Users\7hub\Desktop\network.txt
(Get-CimInstance -ClassName Win32_ComputerSystem).Name | Out-File -Append -FilePath C:\Users\7hub\Desktop\network.txt
Get-WmiObject Win32_NetworkAdapterConfiguration | Select Description, MACAddress, IPAddress, DefaultIPGateway, DNSServerSearchOrder | Out-File -Append -FilePath C:\Users\7hub\Desktop\network.txt
Write-Output "___________________________________________________________" | Out-File -Append -FilePath C:\Users\7hub\Desktop\network.txt 
 

Scriptul va crea automat un fișier cu numele network.txt pe desktop, unde va scrie toate informațiile cerute de mine în script. Conținutul pentru calculatorul local, de pe care am rulat scriptul, arată astfel:

Net Info
Network Information
  • Scriere în network share (pe rețea)

Pentru a scrie în share-ul de pe rețea creat anterior, voi modifica calea astfel:

Get-Date | Out-File -FilePath \\FileShare\Share\network.txt
(Get-CimInstance -ClassName Win32_ComputerSystem).Name | Out-File -Append -FilePath \\FileShare\Share\network.txt
Get-WmiObject Win32_NetworkAdapterConfiguration | Select Description, MACAddress, IPAddress, DefaultIPGateway, DNSServerSearchOrder | Out-File -Append -FilePath \\FileShare\Share\network.txt
Write-Output "___________________________________________________________" | Out-File -Append -FilePath \\FileShare\Share\network.txt 
 

Iar fișierul este creat în \\Fileshare\Share\ .

FileShare Network Info

D. Adăugare trigger

Și în cazul acestui script voi utiliza un trigger, asemănător celui din scriptul batch.

  • Creare trigger

Pentru început voi defini o variabilă pentru a fi mai ușor scriptul:

$file = 'C:\Users\7hub\hostname.txt'  

Am definit variabila $file ca fiind calea fișierului hostname.txt.

Scriptul modificat:

$file = 'C:\Users\7hub\hostname.txt'

if (Test-Path -Path $file) {
    Exit
    }
 else {
     Get-Date | Out-File -FilePath C:\Users\7hub\Desktop\network.txt
(Get-CimInstance -ClassName Win32_ComputerSystem).Name | Out-File -Append -FilePath C:\Users\7hub\Desktop\network.txt
Get-WmiObject Win32_NetworkAdapterConfiguration | Select Description, MACAddress, IPAddress, DefaultIPGateway, DNSServerSearchOrder | Out-File -Append -FilePath C:\Users\7hub\Desktop\network.txt
Write-Output "___________________________________________________________" | Out-File -Append -FilePath C:\Users\7hub\Desktop\network.txt
(Get-CimInstance -ClassName Win32_ComputerSystem).Name | Out-File -Append -FilePath $file
 

E. De final

Iar varianta finală pentru a scrie în fișierul din share:

$file = 'C:\Users\7hub\hostname.txt'

if (Test-Path -Path $file) {
    Exit
    }
 else {
     Get-Date | Out-File -FilePath \\FileShare\Share\network.txt
(Get-CimInstance -ClassName Win32_ComputerSystem).Name | Out-File -Append -FilePath \\FileShare\Share\network.txt
Get-WmiObject Win32_NetworkAdapterConfiguration | Select Description, MACAddress, IPAddress, DefaultIPGateway, DNSServerSearchOrder | Out-File -Append -FilePath \\FileShare\Share\network.txt
Write-Output "___________________________________________________________" | Out-File -Append -FilePath \\FileShare\Share\network.txt
(Get-CimInstance -ClassName Win32_ComputerSystem).Name | Out-File -Append -FilePath $file
} 
 

2. Rulare

Rularea scriptului se poate face manual prin rularea dintr-o consolă PowerShell sau PowerShell ISE sau prin aplicația Task Scheduler pentru automatizare. 

Leave a Reply

Your email address will not be published. Required fields are marked *

error: Content is protected !!