Skip to content

Scripts PowerShell

Collection de scripts PowerShell pour l'administration Windows et cross-platform. 23 scripts disponibles.


Audit & Découverte

Script Description Niveau
Invoke-ServerAudit.ps1 God Script - Audit complet serveur (Markdown)

Système

Script Description Niveau
Get-SystemInfo.ps1 Informations système complètes
Test-DiskSpace.ps1 Vérification espace disque avec alertes
Get-PendingReboot.ps1 Détection redémarrages en attente
Export-EventLogs.ps1 Export journaux Windows (CSV/JSON/EVTX)

Réseau

Script Description Niveau
Test-NetworkConnectivity.ps1 Test de connectivité réseau

Sécurité & Certificats

Script Description Niveau
Test-SSLCertificates.ps1 Vérification certificats SSL/TLS multi-endpoints
Audit-LocalAdmins.ps1 Audit des administrateurs locaux

Fichiers & Backup

Script Description Niveau
Backup-Directory.ps1 Backup avec rotation
Find-LargeFiles.ps1 Recherche fichiers volumineux

Active Directory & Utilisateurs

Script Description Niveau
New-BulkUsers.ps1 Création utilisateurs en masse (AD + Local)

Services

Script Description Niveau
Get-ServiceStatus.ps1 Gestion des services Windows

Patch Management

Script Description Niveau
Get-WindowsUpdateStatus.ps1 Diagnostic complet WU/WSUS/SCCM
Invoke-PrePatchPreparation.ps1 Préparation pré-patching (nettoyage, vérifications)
Repair-WindowsUpdate.ps1 Réparation automatique Windows Update
Get-PatchCompliance.ps1 Rapport conformité patchs avec scoring

Infrastructure Windows

Script Description Niveau
Test-WSUSHealth.ps1 Vérification santé serveur WSUS
Test-ADHealth.ps1 Vérification complète Active Directory
Test-DNSServer.ps1 Vérification serveur DNS Windows
Test-DHCPServer.ps1 Vérification serveur DHCP Windows
Test-SQLServer.ps1 Vérification instance SQL Server
Test-IISHealth.ps1 Vérification serveur IIS
Test-PKIHealth.ps1 Vérification PKI / AD CS

Template de Script

#Requires -Version 5.1
<#
.SYNOPSIS
    Description courte du script.

.DESCRIPTION
    Description détaillée du script et de son fonctionnement.

.PARAMETER Param1
    Description du paramètre 1.

.PARAMETER Param2
    Description du paramètre 2.

.EXAMPLE
    .\Script-Name.ps1 -Param1 "Value"
    Description de l'exemple.

.NOTES
    Author: ShellBook
    Version: 1.0
    Date: 2024-01-01
#>

[CmdletBinding()]
param(
    [Parameter(Mandatory = $false)]
    [string]$Param1 = "Default",

    [Parameter(Mandatory = $false)]
    [switch]$Verbose
)

#region Configuration
$ErrorActionPreference = 'Stop'
Set-StrictMode -Version Latest
#endregion

#region Functions
function Write-Log {
    param(
        [string]$Message,
        [ValidateSet('Info', 'Warning', 'Error')]
        [string]$Level = 'Info'
    )

    $timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
    $colors = @{
        'Info'    = 'Green'
        'Warning' = 'Yellow'
        'Error'   = 'Red'
    }

    Write-Host "[$timestamp] [$Level] $Message" -ForegroundColor $colors[$Level]
}
#endregion

#region Main
try {
    Write-Log "Script démarré" -Level Info

    # Code principal ici

    Write-Log "Script terminé" -Level Info
}
catch {
    Write-Log "Erreur: $_" -Level Error
    exit 1
}
#endregion

Bonnes Pratiques PowerShell

Paramètres

# Utiliser CmdletBinding pour les fonctionnalités avancées
[CmdletBinding(SupportsShouldProcess)]
param(
    [Parameter(Mandatory, ValueFromPipeline)]
    [ValidateNotNullOrEmpty()]
    [string]$Path,

    [Parameter()]
    [ValidateRange(1, 100)]
    [int]$Threshold = 80
)

Gestion d'erreurs

try {
    # Code à risque
    $result = Get-Item -Path $Path -ErrorAction Stop
}
catch [System.IO.FileNotFoundException] {
    Write-Warning "Fichier non trouvé: $Path"
}
catch {
    Write-Error "Erreur inattendue: $_"
    throw
}
finally {
    # Nettoyage
}

Output Formaté

# Créer des objets pour un output propre
[PSCustomObject]@{
    Name      = $item.Name
    Size      = "{0:N2} MB" -f ($item.Length / 1MB)
    Modified  = $item.LastWriteTime
    Status    = "OK"
}

Voir Aussi