Gestire le impostazioni di rete in modo efficiente

Forum su PowerShell per l'automazione di task Windows, gestione di sistema e scripting avanzato per soluzioni amministrative.
Rispondi
FrancyDotNet
Moderatore
Moderatore
Messaggi: 969
Iscritto il: 01/05/2024, 23:26

Gestire le impostazioni di rete in modo efficiente

Messaggio da FrancyDotNet »

PowerShell è uno strumento potente che consente di gestire le impostazioni di rete in modo efficiente. In questo articolo, vedremo alcuni esempi pratici di script PowerShell per configurare indirizzi IP, DNS e altre impostazioni di rete.

:arrowright: 1. Configurare un Indirizzo IP Statico

Questo script configura un indirizzo IP statico per una scheda di rete specifica.

Codice: Seleziona tutto

# Definisci i parametri della rete
$interfaceAlias = "Ethernet"
$ipAddress = "192.168.1.100"
$subnetMask = "255.255.255.0"
$gateway = "192.168.1.1"

# Configura l'indirizzo IP statico
New-NetIPAddress -InterfaceAlias $interfaceAlias -IPAddress $ipAddress -PrefixLength 24 -DefaultGateway $gateway

Write-Output "Indirizzo IP $ipAddress configurato su $interfaceAlias con gateway $gateway."
:arrowright: 2. Configurare i Server DNS

Questo script configura i server DNS per una scheda di rete specifica.

Codice: Seleziona tutto

# Definisci i parametri del DNS
$interfaceAlias = "Ethernet"
$dnsServers = @("8.8.8.8", "8.8.4.4")

# Configura i server DNS
Set-DnsClientServerAddress -InterfaceAlias $interfaceAlias -ServerAddresses $dnsServers

Write-Output "Server DNS $($dnsServers -join ', ') configurati su $interfaceAlias."
:arrowright: 3. Ottenere le Impostazioni di Rete Correnti

Questo script ottiene e visualizza le impostazioni di rete correnti per tutte le schede di rete.

Codice: Seleziona tutto

# Ottieni le impostazioni di rete per tutte le schede di rete
$networkSettings = Get-NetIPConfiguration

# Visualizza le impostazioni di rete
$networkSettings | ForEach-Object {
    Write-Output "Scheda: $($_.InterfaceAlias)"
    Write-Output "Indirizzo IP: $($_.IPv4Address.IPAddress)"
    Write-Output "Subnet Mask: $($_.IPv4Address.PrefixLength)"
    Write-Output "Gateway: $($_.IPv4DefaultGateway.NextHop)"
    Write-Output "Server DNS: $($_.DNSServer.ServerAddresses -join ', ')"
    Write-Output "----"
}
:arrowright: 4. Configurare un Indirizzo IP Dinamico

Questo script configura una scheda di rete per ottenere un indirizzo IP tramite DHCP.

Codice: Seleziona tutto

# Definisci il nome della scheda di rete
$interfaceAlias = "Ethernet"

# Configura l'indirizzo IP dinamico
Set-NetIPInterface -InterfaceAlias $interfaceAlias -Dhcp Enabled

Write-Output "Configurata la scheda $interfaceAlias per ottenere un indirizzo IP tramite DHCP."
:arrowright: 5. Disabilitare e Abilitare una Scheda di Rete

Questo script disabilita e quindi abilita una scheda di rete specifica.

Codice: Seleziona tutto

# Definisci il nome della scheda di rete
$interfaceAlias = "Ethernet"

# Disabilita la scheda di rete
Disable-NetAdapter -Name $interfaceAlias -Confirm:$false
Write-Output "Scheda di rete $interfaceAlias disabilitata."

# Abilita la scheda di rete
Enable-NetAdapter -Name $interfaceAlias -Confirm:$false
Write-Output "Scheda di rete $interfaceAlias abilitata."
:arrowright: 6. Configurare l'Indirizzo IP e il Gateway

Questo script configura l'indirizzo IP e il gateway per una scheda di rete specifica.

Codice: Seleziona tutto

# Definisci i parametri della rete
$interfaceAlias = "Ethernet"
$ipAddress = "192.168.1.100"
$subnetMask = "255.255.255.0"
$gateway = "192.168.1.1"

# Rimuovi le configurazioni IP esistenti
Remove-NetIPAddress -InterfaceAlias $interfaceAlias -AddressFamily IPv4 -Confirm:$false

# Configura il nuovo indirizzo IP e il gateway
New-NetIPAddress -InterfaceAlias $interfaceAlias -IPAddress $ipAddress -PrefixLength 24 -DefaultGateway $gateway

Write-Output "Configurato l'indirizzo IP $ipAddress con gateway $gateway sulla scheda $interfaceAlias."
Assicurati di eseguire questi script con i permessi appropriati. Puoi anche programmare l'esecuzione automatica di questi script utilizzando Task Scheduler su Windows.
FrancyDotNet
Moderatore
Moderatore
Messaggi: 969
Iscritto il: 01/05/2024, 23:26

Re: Gestire le impostazioni di rete in modo efficiente

Messaggio da FrancyDotNet »

:ugeek:
FrancyDotNet
Moderatore
Moderatore
Messaggi: 969
Iscritto il: 01/05/2024, 23:26

Re: Gestire le impostazioni di rete in modo efficiente

Messaggio da FrancyDotNet »

PowerShell è uno strumento potente che consente di monitorare la connettività di rete e verificare la disponibilità di porte e protocolli. In questo articolo, vedremo alcuni esempi pratici di script PowerShell per controllare la connettività di rete utilizzando Test-NetConnection e per misurare la velocità della connessione da host a host.

:arrowright: 1. Verificare la Connettività di Base

Questo script utilizza Test-NetConnection per verificare la connettività di base a un host specifico.

Codice: Seleziona tutto

# Definisci l'host da verificare
$host = "www.google.com"

# Esegui il test di connessione
$result = Test-NetConnection -ComputerName $host

# Visualizza il risultato
if ($result.PingSucceeded) {
    Write-Output "Connessione a $host riuscita."
} else {
    Write-Output "Connessione a $host fallita."
}
:arrowright: 2. Verificare la Disponibilità di una Porta Specifica

Questo script utilizza Test-NetConnection per verificare la disponibilità di una porta specifica su un host.

Codice: Seleziona tutto

# Definisci l'host e la porta da verificare
$host = "www.google.com"
$port = 80

# Esegui il test di connessione alla porta
$result = Test-NetConnection -ComputerName $host -Port $port

# Visualizza il risultato
if ($result.TcpTestSucceeded) {
    Write-Output "Connessione alla porta $port su $host riuscita."
} else {
    Write-Output "Connessione alla porta $port su $host fallita."
}
:arrowright: 3. Verificare la Disponibilità di più Porte

Questo script verifica la disponibilità di più porte su un host specifico.

Codice: Seleziona tutto

# Definisci l'host e le porte da verificare
$host = "www.google.com"
$ports = @(80, 443, 8080)

# Esegui il test di connessione per ogni porta
foreach ($port in $ports) {
    $result = Test-NetConnection -ComputerName $host -Port $port
    if ($result.TcpTestSucceeded) {
        Write-Output "Connessione alla porta $port su $host riuscita."
    } else {
        Write-Output "Connessione alla porta $port su $host fallita."
    }
}
:arrowright: 4. Misurare la Velocità della Connessione tra Host

Questo script misura il tempo di risposta (latency) tra l'host locale e un host remoto.

Codice: Seleziona tutto

# Definisci l'host da verificare
$host = "www.google.com"

# Numero di ping da inviare
$pingCount = 10

# Esegui il test di ping e misura il tempo di risposta
$pingTimes = @()
for ($i = 1; $i -le $pingCount; $i++) {
    $pingResult = Test-Connection -ComputerName $host -Count 1
    $pingTimes += $pingResult.ResponseTime
}

# Calcola il tempo medio di risposta
$averagePingTime = ($pingTimes | Measure-Object -Average).Average

Write-Output "Tempo medio di risposta a $host: $averagePingTime ms"
:arrowright: 5. Monitoraggio Continuo della Connettività

Questo script esegue il monitoraggio continuo della connettività a un host specifico e registra i risultati in un file di log.

Codice: Seleziona tutto

# Definisci l'host e il file di log
$host = "www.google.com"
$logFile = "C:\Logs\NetworkMonitoring.log"

# Esegui il monitoraggio continuo
while ($true) {
    $result = Test-NetConnection -ComputerName $host
    $timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
    if ($result.PingSucceeded) {
        Add-Content -Path $logFile -Value "$timestamp - Connessione a $host riuscita."
    } else {
        Add-Content -Path $logFile -Value "$timestamp - Connessione a $host fallita."
    }
    Start-Sleep -Seconds 60
}
Assicurati di eseguire questi script con i permessi appropriati e di modificare le variabili come necessario per il tuo ambiente. Puoi anche programmare l'esecuzione automatica di questi script utilizzando Task Scheduler su Windows.
Rispondi

Torna a “PowerShell”