Tutoriels powershell

Powershell - Gestion des disques et des volumes

Obtenir l’espace disque restant

La commande suivante permet de récupérer l’espace disque restant sur le disque C:/.

J’y applique un formatage pour que le résultat soit lisible par un humain via le paramètre /1GB.

Sans ce paramètre, le résultat donné est en Bits, ici il sera en Go.

(Get-Volume -DriveLetter C).sizeRemaining /1Gb

Vérification des erreurs de volumes

Il est possible de vérifier l’état de santé des volumes de nos disques.

Powershell - Interaction avec la couche réseau

Déterminer le nom de l’interface réseau active

Dans un premier temps, je stocke dans une variable le nom de l’interface réseau.

La variable utilisée se nomme $InterfaceName.

$InterfaceName = (Get-NetAdapter -Name * -Physical | Where {$_.Status -eq "Up"}).Name

Cette commande va permettre de sélectionner l’interface physique et non virtuelle via le paramètre -Physical la carte réseau qui est actuellement active et utilisée via l’argument de recherche Where {$_.Status -eq “Up”})

Récupération de détails concernant la carte réseau

Ensuite, la fonction Get-NetIPConfiguration permet de récupérer une bonne partie des paramètres de la carte réseau.

Powershell - Création de logs pour votre programme

Créer le fichier de log

Nous allons créer une fonction nommée CreationFichierLog.

Function CreationFichierLog
{
}

Dans un premier temps, nous allons assigner un nom à notre fichier :

$nomFichier = "fichierLog.log"

Puis tenter la création du fichier via un Try Catch :

Try { 
    New-Item -type file $nomFichier -Force
}
catch { 
    Write-Host "Impossible de créer le fichier log" -ForegroundColor Red
    Write-Host $_ # Affiche le message d'erreur généré par Powershell
}

Et retourner le nom du fichier nouvellement créé :

Powershell - Interaction avec la couche réseau

Date de publication : January 6, 2025
Temps de lecture estimé : 2 minutes
Auteur : Axel Agnan

Déterminer le nom de l’interface réseau active

Dans un premier temps, je stocke dans une variable le nom de l’interface réseau.

La variable utilisée se nomme $InterfaceName.

$InterfaceName = (Get-NetAdapter -Name * -Physical | Where {$_.Status -eq "Up"}).Name

Cette commande va permettre de sélectionner l’interface physique et non virtuelle via le paramètre -Physical la carte réseau qui est actuellement active et utilisée via l’argument de recherche Where {$_.Status -eq “Up”})

Récupération de détails concernant la carte réseau

Ensuite, la fonction Get-NetIPConfiguration permet de récupérer une bonne partie des paramètres de la carte réseau.

Cette fonction prend pour paramètre le nom de l’interface réseau précedemment trouvée.

$interfaceDetails = Get-NetIPConfiguration -InterfaceAlias $InterfaceName | Select *

Cette commande retourne un tableau contenant de nombreuses informations.

Récupérer les adresses IPv4 et IPv6

Les commandes suivantes permettent de récupérer les informations liées aux adresses IPv4 et IPv6 :

$interfaceDetails.IPv4Address
$interfaceDetails.IPv6Address

Pour obtenir seulement les adresses IP sans détail :

$interfaceDetails.IPv4Address.IPAddress
$interfaceDetails.IPv6Address.IPAddress

Récupérer les DNS en usage

La commande suivante permet d’avoir les détails liés aux DNS :

$interfaceDetails.DNSServer

Pour obtenir seulement les adresses IP des DNS :

$interfaceDetails.DNSServer.ServerAddresses

Récupérer la passerelle en usage

Les commandes suivantes permettent de récupérer les détails liés aux passerelles IPv4 et IPv6 :

$interfaceDetails.IPv4DefaultGateway
$interfaceDetails.IPv6DefaultGateway

Pour obtenir uniquement les adresses IP des passerelles sans détail :

$interfaceDetails.IPv4DefaultGateway.nexthop
$interfaceDetails.IPv6DefaultGateway.nexthop

Récupérer l’index de l’interface

Cette commande permet de récupérer le numéro d’index de l’interface réseau :

$interfaceDetails.InterfaceIndex

Récupérer la description de l’interface

Permet d’avoir les détails concernant le modèle de carte réseau (appelé détails) :

$interfaceDetails.InterfaceDescription

Vérification de l’économie d’énergie

Il est possible de vérifier si l’économie d’énergie de Windows est active sur l’interface réseau :

(Get-NetAdapterPowerManagement -Name $InterfaceName).AllowComputerToTurnOffDevice

Récupérer le statut IPv4 et IPv6

Il est possible de vérifier si les composants IPv4 et IPv6 sont actifs sur la carte réseau :

Get-NetAdapterBinding -Name $InterfaceName -ComponentID ms_tcpip4
Get-NetAdapterBinding -Name $InterfaceName -ComponentID ms_tcpip6

Récupérer le profil de connexion en usage

Cette commande permet de récupérer le type de profil assigné à la connexion active (Public, Pro, Privé) :

Get-NetConnectionProfile -InterfaceAlias $InterfaceName

Vérifier la présence de cartes réseaux virtuelles ISATAP / TEREDO

Cette commande permet de vérifier si les interfaces virtuelles ISATAP et/ou TEREDO sont actives sur l’ordinateur :

Get-NetTeredoState