script get dei dns settati sulle schede di rete win

Questo script effettua il get dei dns settati sulle schede di rete delle macchine.

Come sorgente delle macchine su cui effettuare lla get prende gli indirizzi ip da una lista in txt

creare un file list_ip.txt ed inserire un indirizzo ip per riga

scrive in risultato in un file result.txt

Di seguito lo script in powershell:

#credenziali
$credential = Import-CliXml -Path "e:\script\cred_s720624.xml"

# Comando da eseguire su ciascun hostname

$command = "(Get-DnsClientServerAddress -AddressFamily ipv4).ServerAddresses"

# Lista di hostname
$InputFile = 'E:\folder\list_ip.txt'
$addresses = get-content $InputFile
write-host    ""
write-Host "Performing list dns set on each address..."    

# Loop attraverso la lista di hostname
foreach ($address in $addresses) {
    Write-Host "Esecuzione di '$command' su $address"
    
    # Esegui il comando sull' hostname corrente
    $result = Invoke-Command -Credential $credential -ComputerName $address -ScriptBlock {
        param($command)
        Invoke-Expression $command
    } -ArgumentList $command
    Write-Output "$address $result" | Out-File -Append "E:\folder\result.txt" -NoClobber  
}