Page 1 sur 1

[PowerShell] SysNetManager_AAZ.ps1 Automatiser les diagnostics réseau et la configuration système

Posté : lun. 20 janv. 2025 10:28
par pboulanger
Bonjour,

Le script SysNetManager_AAZ.ps1, développé pour TEAM-AAZ, est un outil interactif conçu pour simplifier les tâches d'administration réseau et système.

Il permet de diagnostiquer le réseau, surveiller les connexions, gérer les utilisateurs locaux, configurer le pare-feu, vérifier les mises à jour, et afficher les informations système. Un assistant pratique et rapide pour optimiser votre gestion informatique.

A noter que ce script, sauf pour le choix 5 (Vérification des mises à jour du système), ne nécessite pas d'être lancé avec les droits administrateurs.

Le code commenté

Code : Tout sélectionner

# Nom : SysNetManager_AAZ.ps1
# Développé par : PiB pour TEAM-AAZ
# Version : 1.0.0.0.a
# Date : Janvier 2025
# Objectif : Automatiser les diagnostics réseau et la configuration système

# Fonction 1 : Diagnostic réseau rapide
function Perform-NetworkDiagnostics {
    Write-Host "`n=== Diagnostic Réseau ===`n" -ForegroundColor Cyan

    # Vérification de la connectivité Internet
    Write-Host "Test de connectivité Internet en cours..."
    Test-Connection -ComputerName google.com -Count 3 | Select-Object Address, Status | Format-Table

    # Affichage de la configuration IP
    Write-Host "`nConfiguration IP actuelle :"
    Get-NetIPConfiguration | Select-Object InterfaceAlias, IPv4Address, IPv6Address, DefaultGateway, DNSServer | Format-Table
}

# Fonction 2 : Surveillance des connexions réseau actives
function Monitor-ActiveConnections {
    Write-Host "`n=== Connexions Réseau Actives ===`n" -ForegroundColor Cyan

    # Affichage des connexions réseau actives
    Get-NetTCPConnection | Sort-Object State | Format-Table LocalAddress, LocalPort, RemoteAddress, RemotePort, State
}

# Fonction 3 : Gestion des utilisateurs locaux
function Manage-LocalAccounts {
    Write-Host "`n=== Gestion des Utilisateurs Locaux ===`n" -ForegroundColor Cyan

    # Liste des utilisateurs locaux
    Write-Host "Utilisateurs locaux disponibles :"
    Get-LocalUser | Select-Object Name, Enabled | Format-Table

    # Option pour créer un nouvel utilisateur
    $createUser = Read-Host "`nSouhaitez-vous créer un nouvel utilisateur ? (O/N)"
    if ($createUser -eq "O") {
        $userName = Read-Host "Nom de l'utilisateur"
        $password = Read-Host "Mot de passe (saisie masquée)" -AsSecureString
        New-LocalUser -Name $userName -Password $password -PasswordNeverExpires -UserMayNotChangePassword -AccountNeverExpires
        Write-Host "Utilisateur '$userName' créé avec succès." -ForegroundColor Yellow
    }
}

# Fonction 4 : Configuration rapide du pare-feu
function Configure-WindowsFirewall {
    Write-Host "`n=== Configuration Rapide du Pare-feu ===`n" -ForegroundColor Cyan

    # Activer ou désactiver le pare-feu
    $firewallAction = Read-Host "Voulez-vous activer (A) ou désactiver (D) le pare-feu ?"
    if ($firewallAction -eq "A") {
        Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled True
        Write-Host "Pare-feu activé sur tous les profils." -ForegroundColor Yellow
    } elseif ($firewallAction -eq "D") {
        Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled False
        Write-Host "Pare-feu désactivé sur tous les profils." -ForegroundColor Red
    } else {
        Write-Host "Choix non valide." -ForegroundColor Red
    }
}

# Fonction 5 : Vérification des mises à jour système
function Check-SystemUpdates {
    Write-Host "`n=== Vérification des Mises à Jour ===`n" -ForegroundColor Cyan

    # Charger le module PSWindowsUpdate
    Install-Module -Name PSWindowsUpdate -Force -ErrorAction SilentlyContinue
    Import-Module PSWindowsUpdate

    # Rechercher et afficher les mises à jour disponibles
    Get-WindowsUpdate -ListOnly | Out-GridView -Title "Mises à jour disponibles"
}

# Fonction 6 : Informations système
function Display-SystemInfo {
    Write-Host "`n=== Informations Système ===`n" -ForegroundColor Cyan

    # Affichage des informations de base
    Write-Host "Informations système de base :"
    Get-ComputerInfo | Select-Object CsName, WindowsVersion, WindowsBuildLabEx, OsArchitecture | Format-Table

    # Mémoire et processeur
    Write-Host "`nDétails mémoire et processeur :"
    Get-CimInstance -ClassName Win32_Processor | Select-Object Name, NumberOfCores, MaxClockSpeed | Format-Table
    Get-CimInstance -ClassName Win32_OperatingSystem | Select-Object @{Name="Mémoire Totale (MB)";Expression={$_.TotalVisibleMemorySize/1MB -as [int]}}, @{Name="Mémoire Libre (MB)";Expression={$_.FreePhysicalMemory/1MB -as [int]}} | Format-Table
}

# Menu principal
function Show-Menu {
    Clear-Host
    Write-Host "=============================================" -ForegroundColor Cyan
    Write-Host "  SysNetManager_AAZ - Outil d'Administration  " -ForegroundColor Cyan
    Write-Host "  Développé par PiB pour TEAM-AAZ            " -ForegroundColor Cyan
    Write-Host "  Version : 1.0.0.0.a - Janvier 2025        " -ForegroundColor Cyan
    Write-Host "=============================================" -ForegroundColor Cyan
    Write-Host "1. Diagnostic réseau rapide"
    Write-Host "2. Surveillance des connexions réseau"
    Write-Host "3. Gestion des utilisateurs locaux"
    Write-Host "4. Configuration rapide du pare-feu"
    Write-Host "5. Vérification des mises à jour système (nécessite une connexion en Administrateur) "
    Write-Host "6. Informations système"
    Write-Host "7. Quitter"
    Write-Host ""
    $choice = Read-Host "Entrez votre choix"
    return $choice
}

# Boucle principale
do {
    $userChoice = Show-Menu

    switch ($userChoice) {
        "1" { Perform-NetworkDiagnostics }
        "2" { Monitor-ActiveConnections }
        "3" { Manage-LocalAccounts }
        "4" { Configure-WindowsFirewall }
        "5" { Check-SystemUpdates }
        "6" { Display-SystemInfo }
        "7" { Write-Host "Au revoir ! Merci d'avoir utilisé SysNetManager_AAZ." -ForegroundColor Yellow }
        default { Write-Host "Choix invalide, veuillez réessayer." -ForegroundColor Red }
    }

    if ($userChoice -ne "7") {
        Read-Host "Appuyez sur Entrée pour continuer..."
    }
} while ($userChoice -ne "7")
Ce que fait ce script
  • Diagnostic réseau rapide :
    • Vérifie la connectivité Internet avec un ping vers google.com.
    • Affiche la configuration réseau actuelle (IP, passerelle, DNS, etc.).
  • Surveillance des connexions réseau actives :
    • Liste toutes les connexions réseau TCP actives avec leurs adresses locales, ports distants et états.
  • Gestion des utilisateurs locaux :
    • Affiche la liste des utilisateurs locaux et leur statut (activé/désactivé).
    • Offre la possibilité de créer un nouvel utilisateur avec un mot de passe sécurisé.
  • Configuration rapide du pare-feu Windows :
    • Permet d’activer ou de désactiver le pare-feu pour tous les profils (domaine, public, privé).
  • Vérification des mises à jour système :
    • Installe et utilise le module PowerShell PSWindowsUpdate.
    • Recherche les mises à jour disponibles et les affiche dans une interface graphique.
  • Informations système :
    • Fournit les informations système de base (nom de l'ordinateur, version de Windows, architecture).
    • Détaille les caractéristiques du processeur (nombre de cœurs, vitesse maximale).
    • Affiche la mémoire totale et libre du système en Mo.
  • Interface utilisateur :
    • Menu principal interactif :
      • Propose un menu avec 7 choix numérotés correspondant à chaque fonctionnalité.
      • Permet de revenir au menu principal après chaque action.
      • Affiche les informations sur le script : nom, auteur, version et date.
    • Boucle principale :
      • Exécute le menu jusqu’à ce que l’utilisateur choisisse l’option "Quitter".
Comment s'en servir ?
  • Enregistrer le code dans un fichier txt avec l'extension .ps1 par exemple SysNetManager_AAZ.ps1
  • Clic droit sur l'icône du fichier et commande Exécuter avec PowerShell
  • Des messages de confirmation apparaissent au fur et à mesure de l'exécution du script
  • Le script se ferme à la fin des opérations.
En espérant que cela vous rende service,

Re: [PowerShell] SysNetManager_AAZ.ps1 Automatiser les diagnostics réseau et la configuration système

Posté : mar. 21 janv. 2025 00:24
par curieuxdino
Bizz ... j'ai tenté de l'utiliser et voila qu'une fenêtre Shell s'ouvre --- et se referme immédiatement. Rien de plus. Qu'est ce que je fais qui ne va pas.

Je l'ai nommé "Test" aux fins desquelles je voulais l'utiliser avec une extention .ps1

Merci

Re: [PowerShell] SysNetManager_AAZ.ps1 Automatiser les diagnostics réseau et la configuration système

Posté : mar. 21 janv. 2025 10:05
par pboulanger
Bonjour
Tu as encodé ton fichier avec quel code page ... Cela fonction avec le code page ANSI (Windows-1252) c'est le code natif de Windows.
Ne fonctionne pas avec le code page UTF 8 avec ou sans Boom.
Bonne journée

Re: [PowerShell] SysNetManager_AAZ.ps1 Automatiser les diagnostics réseau et la configuration système

Posté : mer. 22 janv. 2025 01:54
par curieuxdino
Merci Pierre, mais je n'ai pas l'ombre d'une idée de ce à quoi tu fais allusion.
J'ai ouvert un document texte avec Windows 11 puis j'ai collé le texte et ai enregistré en ps1.
Voila.
:-(

Re: [PowerShell] SysNetManager_AAZ.ps1 Automatiser les diagnostics réseau et la configuration système

Posté : mer. 22 janv. 2025 10:50
par pboulanger
Bonjour,

Regarde Ici viewtopic.php?t=44865

Bonne journée

Re: [PowerShell] SysNetManager_AAZ.ps1 Automatiser les diagnostics réseau et la configuration système

Posté : mer. 22 janv. 2025 22:30
par disc0
Merci mister pboulanger pour le script :hai: