PowerShell/Réseau
Réseau
Vidéo de référence :
- chaine YouTube de PowerShell Engineer : https://www.youtube.com/@PowerShellEngineer
- 21 One Line PowerShell Networking Commands : https://www.youtube.com/watch?v=lgginAiOEXo
Get-NetAdapter
Liste des périphériques réseaux :
Get-NetAdapterGet-NetAdapter | ? { $_.Status -eq "up"}Get-NetAdapter | Format-Table -AutosizeGet-NetAdapter | Select-Object -Property Name, MacAddress
Rename-NetAdapter
Renommer une interface réseau :
Rename-NetAdapter -Name AncienNom -NewName NouveauNomRename-NetAdapter -Name Ethernet -NewName Wifi-Orange-boxRename-NetAdapter -Name "Ethernet 2" -NewName Wifi-Orange-Airbox
Get-NetIPAddress
Liste de toutes les interfaces réseaux, physiques ou virtuelles:
Get-NetIPAddressGet-NetIPAddress | Format-Table -Autosize
Test-Connection
L'équivalent de la commande ping :
Test-Connection -ComputerName www.google.fr- en plus court :
Test-Connection www.google.fr
Clear-DnsClientCache
Clear-DnsClientCache
Pour actualiser le cache DNS :
Get-DnsClientCache
Get-NetAdapterAdvancedProperty
Liste des propriétés avancée de l'interface nommée "Ethernet" :
Get-NetAdapterAdvancedProperty -Name Ethernet
(Source : it-connect.fr)
Ping
Ping sur une seule adresse, avec résultat dans un fichier
# Test de ping avec enregistrement dans un fichier
$IP = "192.168.1.1"
$Fichier = "ping-$IP.log"
$Dossier = "C:\Support\"
if (!(test-path $Dossier)) { New-Item $Dossier -ItemType "directory" }
Ping -t $IP | Foreach{"{0};{1}" -f (Get-Date -Format "yyyyMMdd-HHmmss"), $_} | Out-File "$Dossier\$Fichier" -Encoding utf8
Le résultat sera un fichier créé :
- nom du fichier :
ping-192.168.1.1.log; - dossier :
C:\Support\ - contenu du fichier :
20221226-224738;Envoi d'une requête 'Ping' 192.168.1.1 avec 32 octets de données : 20221226-224739;Réponse de 192.168.1.1 : octets=32 temps=2 ms TTL=64 20221226-224740;Réponse de 192.168.1.1 : octets=32 temps=4 ms TTL=64 20221226-224741;Réponse de 192.168.1.1 : octets=32 temps=4 ms TTL=64 20221226-224742;Réponse de 192.168.1.1 : octets=32 temps=4 ms TTL=64 20221226-224743;Réponse de 192.168.1.1 : octets=32 temps=4 ms TTL=64 20221226-224744;Réponse de 192.168.1.1 : octets=32 temps=4 ms TTL=64 ...
Ping sur une plage
Plage d'adresses
<#
Description : ping sur une plage IP, avec la commande PowerShell "Test-Connection", sur la plage 192.168.1.1 à 192.168.1.254
Usage : exercice en PowerShell
Auteur : fylip22
Version : 1.0
Révisions :
- 1.0 (28/03/2024) : création du script
#>
# indiquer le début de la plage IP sous la forme "xxx.xxx.xxx."
$ipPlage = "192.168.1."
# génération d'une liste avec la première valeur "192.168.1.1" et la dernière valeur "192.168.1.254"
$ressourceListe = (1..254).ForEach{"{0}{1}" -f $ipPlage, $_}
Clear-Host
Write-Host "Début du traitement"
foreach ($ressource in $ressourceListe ) {
Write-Host ("test sur IP {0} : " -f $ressource) -nonewline
Test-Connection -ComputerName $ressource -count 1 -Quiet
}
Write-Host "Fin du traitement"
Plage d'éléments
<#
Description : ping sur une plage d'élément, avec la commande PowerShell "Test-Connection"
Usage : exercice en PowerShell
Auteur : fylip22
Source : inspiré par le script de It-Connect, https://www.it-connect.fr/comment-faire-un-ping-sur-plusieurs-machines-avec-powershell/
Version : 1.0
Révisions :
- 1.0 (11/12/2024) : création du script
#>
# indiquer une liste
## liste d'IP
$liste = (1..3).foreach{"{0}{1}" -f "192.168.1.", $_ }
## liste d'ordinateurs
$liste = @("php001","php100","php101")
## liste d'ordinateurs de la forme PHPnnn
$liste = (1..26).ForEach{"{0}{1:d3}" -f "PHP", $_}
Clear-Host
$horodatage = Get-Date -UFormat "%Y%m%d-%H%M%S" ; Write-Host "$horodatage ; Début du traitement pour les éléments de $($liste[0]) à $($liste[-1])"
foreach ($element in $liste) {
$resultat = Test-Connection -ComputerName $element -Count 1 -ErrorAction SilentlyContinue
$horodatage = Get-Date -UFormat "%Y%m%d-%H%M%S"
if($resultat) { Write-Host "$horodatage ; $element ; $($resultat.IPV4Address) ; en ligne" -ForegroundColor Green }
else { Write-Host "$horodatage ; $element ; - ; hors ligne" -ForegroundColor Red }
}
$horodatage = Get-Date -UFormat "%Y%m%d-%H%M%S" ; Write-Host "$horodatage ; Fin du traitement"
Code wifi
Pour récupérer le code wifi d'une connexion existante :
netsh wlan show profiles name="Livebox-6F5C" key=clear
avec :
Livebox-6F5Ccomme nom du réseau sans fil (SSID ou nom de la box)
Une partie du résultat, et le mot de passe à l'entrée "Contenu de la clé " :
Paramètres de sécurité
-----------------
Authentification : WPA2 - Personnel
Chiffrement : CCMP
Authentification : WPA2 - Personnel
Chiffrement : GCMP
Clé de sécurité : Présent
Contenu de la clé : 45C2094726B2A1BB281C4F030A