Visualizzazione post con etichetta schede di rete. Mostra tutti i post
Visualizzazione post con etichetta schede di rete. Mostra tutti i post

giovedì 23 giugno 2022

PowerShell: Modificare la priorità degli adattatori di rete in ambiente Windows

Quando su una postazione sono presenti numerose interfacce di rete (schede di rete Ethernet e Wi-Fi multiple) possono verificarsi dei problemi di gestione da parte del sistema operativo. In questi casi si può intervenire modificando opportunamente la priorità con cui Windows gestisce gli adattatori di rete andando ad impostare la Metrica dell'interfaccia. Tale operazione può rivelarsi utile per risolvere eventuali conflitti o instabilità delle connessioni domestiche. La metrica di una determinata interfaccia di rete può essere modificata, tramite GUI, attraverso le proprietà TCP/IP (IPv4) della connessione. 
Impostazioni avanzate TCP/IP
FIG 1 - Impostazioni avanzate TCP/IP
Di seguito verrà mostrato come effettuare la stessa operazione tramite PowerShell.
Dopo aver aperto una finestra PowerShell come amministratore, il primo passo consiste nel verificare lo stato dei diversi adattatori di rete presenti (fisici e virtuali) eseguendo il comando
Get-NetIPInterface
Get-NetIPInterface
FIG 2 - Get-NetIPInterface

Come visibile in FIG 2, il comando permette di visualizzare, tra le altre informazioni, l'indice delle interfacce (ifIndex), gli alias, il protocollo usato, il valore di metrica/priorità (InterfaceMetric). Per modificare la metrica di un'interfaccia bisogna utilizzare il cmdlet Set-NetIPInterface a cui va passato il numero dell'interfaccia su cui si intende operare (InterfaceIndex) e il livello di priorità da assegnare (InterfaceMetric). A un numero inferiore corrisponde una maggiore priorità. Il comando sarà simile a 
Set-NetIPInterface -InterfaceIndex "<InterfaceIndex>" -InterfaceMetric "<InterfaceMetric>"
Ad esempio
Set-NetIPInterface -InterfaceIndex "7" -InterfaceMetric "20"
Il comando non restituisce a video alcun messaggio, pertanto per verificare l'effettivo cambio di priorità va rieseguito nuovamente Get-NetIPInterface.
Set-NetIPInterface
FIG 3 - Set-NetIPInterface




mercoledì 27 marzo 2019

PowerShell: Disabilitare il risparmio energetico sulle schede di rete

Quando il PC entra in modalità sospensione/ibernazione, Windows disabilita tutte le periferiche non necessarie per risparmiare energia comprese le schede di rete. Tale comportamento può causare malfunzionamenti quando si riprende la sessione di lavoro: ad es. la scheda di rete potrebbe non riattivarsi.
Una soluzione a questo tipo di problemi consiste nell'impedire al sistema operativo di spegnere le schede di rete per risparmiare energia. 


Disabilitare il risparmio energetico sulla scheda di rete tramite GUI

  • Premere la combinazione di tasti WIN+R per aprire la finestra di dialogo Esegui e digitare devmgmt.msc seguito da invio per avviare Gestione dispositivi;

    Gestione dispositivi
    FIG 1 - Gestione dispositivi
  • Espandere la sezione Schede di rete ed eseguire un doppio click sulla scheda di rete su cui si intende disabilitare il risparmio energetico;
  • Nella finestra delle Proprietà, selezionare la scheda Risparmio energia quindi rimuovere la spunta alla voce Consenti al computer di spegnere il dispositivo per risparmiare energia e confermare cliccando sul pulsante OK.
    Proprietà scheda di rete
    FIG 2 - Proprietà scheda di rete



Disabilitare il risparmio energetico sulle schede di rete tramite PowerShell


Nello script PowerShell andremo a verificare le proprietà delle schede di rete presenti nel registro di sistema al seguente percorso
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}
All'interno delle sottochiavi del registro andremo a verificare la proprietà *ifType per individuare le schede di rete Wi-Fi (con *ifType=6) e le schede di rete Ethernet (con *ifType=71). Per tali schede il risparmio energetico verrà disattivato valorizzando la proprietà PnPCapabilities a 18 in esadecimale (24 in decimale).
Lo script, oltre a visualizzare l'output a video, genera un file di log DisablePowerSavingNIC.log che è possibile consultare successivamente anche dopo aver chiuso la finestra di PowerShell.
Script DisablePowerSavingNIC.ps1
FIG 3 - Script DisablePowerSavingNIC.ps1
Lo script può essere scaricato dal seguente link
DOWNLOAD

Terminata l'esecuzione, l'output sarà simile a quello mostrato in FIG 4 ed è necessario procedere al riavvio del sistema affinché le modifiche siano applicate.
Output script PowerShell DisablePowerSavingNIC.ps1
FIG 4 - Output script PowerShell DisablePowerSavingNIC.ps1




giovedì 30 giugno 2016

PowerShell: Visualizzare le proprietà delle schede di rete tramite Get-NetAdapter

Il cmdlet Get-NetAdapter consente di visualizzare le proprietà delle schede di rete. Lanciando il cmdlet da PowerShell visualizziamo le schede di rete visibili e alcune delle loro proprietà (FIG 1)
PowerShell cmdlet Get-NetAdapter
FIG 1 - PowerShell cmdlet Get-NetAdapter
Name: Rappresenta il nome assegnato alle Connessioni di rete.
InterfaceDescription: Descrizione dell'interfaccia. Generalmente contiene il modello/produttore della scheda.
ifIndex: Interface Index. Sulle workstation la proprietà ifIndex è rappresentata da un numero che identifica in modo univoco l'interfaccia di rete fisica o logica (non possono esserci due interfacce con lo stesso ifIndex).
Status: E' lo stato dell'interfaccia è indica se la connessione è attiva (UP), disconnessa (Disconnected) o disabilitata (Disabled).
MACAddress: Media Access Control. Si tratta dell'indirizzo fisico della scheda.
LinkSpeed: Rappresenta la massima velocità della connessione.

Per formattare l'output possiamo utilizzare i comandi Format come Format-List (abbreviato FL)
Get-NetAdapter |fl
Con questo tipo di formattazione vengono visualizzate ulteriori proprietà come DriverInformation che visualizza la versione del driver della scheda.
PowerShell cmdlet Get-NetAdapter |fl
FIG 2 - PowerShell cmdlet Get-NetAdapter |fl

Utilizzando Format-Custom (abbreviato FC) vengono visualizzate tutte le proprietà (comprese quelle non valorizzate) dell'interfaccia.
Get-NetAdapter |fc

Di seguito riporto alcuni esempi che possono essere utili in diverse occasioni.

Esempio 1
Get-NetAdapter -CimSession <nome_sessione/computer_remoto>
Con -CimSession possiamo specificare una sessione o un computer remoto e visualizzarne le proprietà delle schede di rete.

Esempio 2
Get-NetAdapter | Format-List -Property Name, InterfaceDescription, InterfaceName
Con Format-List -Property possiamo visualizzare solo le proprietà che ci interessano specificandole all'interno del comando. Nell'esempio viene richiesto di visualizzare solo le proprietà Name, InterfaceDescription e InterfaceName.
PowerShell cmdlet Get-NetAdapter |fl - Property
FIG 3 - PowerShell cmdlet Get-NetAdapter |fl - Property

Esempio 3
Get-NetAdapter -IncludeHidden
Per default vengono visualizzate solo le schede di rete visibili. Con l'opzione -IncludeHidden verrano visualizzate anche quelle non visibili/logiche.
PowerShell cmdlet Get-NetAdapter -IncludeHidden
FIG 4 - PowerShell cmdlet Get-NetAdapter -IncludeHidden

Esempio 4
Get-NetAdapter -Physical
Visualizza solo le schede di rete fisiche.

Esempio 5
Get-NetAdapter -Name "Ethernet"
Visualizza solo le proprietà della connessione di rete avente come nome quello specificato (Ethernet). É possibile utilizzare anche caratteri wildcard come nel seguente comando
Get-NetAdapter -Name "Eth*"
oppure
Get-NetAdapter -Name "E*t"
PowerShell cmdlet Get-NetAdapter -Name "Eth*"
FIG 5 - PowerShell cmdlet Get-NetAdapter -Name "Eth*"

Esempio 6
Get-NetAdapter | Format-Table –View Driver
Visualizza tutte le schede di rete visibili con tutte le proprietà relative ai driver
PowerShell cmdlet Get-NetAdapter | Format-Table –View Driver
FIG 6 - PowerShell cmdlet Get-NetAdapter | Format-Table –View Driver