--Script pour Déploiement Agent GLPI-- # Ouvrir ICMP Echo Request (ping) uniquement pour le serveur PDQ New-NetFirewallRule -DisplayName "Allow ICMPv4-In from PDQ Server" -Protocol ICMPv4 -IcmpType 8 -Direction Inbound -Action Allow -RemoteAddress PDQServerIP -Profile Domain,Private,Public -Description "Autorise le ping depuis serveur PDQ Deploy" -ErrorAction SilentlyContinue # Ouvrir SMB TCP 445 uniquement pour le serveur PDQ New-NetFirewallRule -DisplayName "Allow SMB TCP 445-In from PDQ Server" -Direction Inbound -Protocol TCP -LocalPort 445 -Action Allow -RemoteAddress PDQServerIP -Profile Domain,Private,Public -Description "Autorise SMB/partage fichiers depuis serveur PDQ Deploy" -ErrorAction SilentlyContinue # Optionnel : ouvrir les ports TCP 6336 et 7337 si tu utilises MD-Inventory et Deploy Server New-NetFirewallRule -DisplayName "Allow TCP 6336-In from PDQ Server" -Direction Inbound -Protocol TCP -LocalPort 6336 -Action Allow -RemoteAddress PDQServerIP -Profile Domain,Private,Public -Description "PDQ Deploy port 6336" -ErrorAction SilentlyContinue New-NetFirewallRule -DisplayName "Allow TCP 7337-In from PDQ Server" -Direction Inbound -Protocol TCP -LocalPort 7337 -Action Allow -RemoteAddress PDQServerIP -Profile Domain,Private,Public -Description "PDQ Inventory port 7337" -ErrorAction SilentlyContinue # Vérification de la création des règles Write-Output "Règles firewall créées" Get-NetFirewallRule -DisplayName "PDQ Server" | Format-Table -AutoSize # Chemin pour exporter la configuration du pare-feu $exportPath = "C:\wfw" # Création du dossier si besoin if (-not (Test-Path -Path $exportPath)) { New-Item -Path $exportPath -ItemType Directory } # Export de la configuration du pare-feu netsh advfirewall export "$exportPath\firewall_config.wfw" Write-Output "La configuration du pare-feu a été exportée dans $exportPath" # Règles OUTBOUND pour GLPI Agent New-NetFirewallRule -DisplayName "Allow GLPI Agent TCP 62354-Out to GLPI Server" -Direction Outbound -Protocol TCP -RemotePort 62354 -Action Allow -RemoteAddress GLPIServerIP -Profile Domain,Private,Public -Description "Sortant agent GLPI vers serveur" -ErrorAction SilentlyContinue # Ports HTTP/HTTPS OUTBOUND vers serveur GLPI (optionnel accès web) New-NetFirewallRule -DisplayName "Allow GLPI HTTP TCP 80-Out to GLPI Server" -Direction Outbound -Protocol TCP -RemotePort 80 -Action Allow -RemoteAddress GLPIServerIP -Profile Domain,Private,Public -Description "Sortant HTTP GLPI agent" -ErrorAction SilentlyContinue New-NetFirewallRule -DisplayName "Allow GLPI HTTPS TCP 443-Out to GLPI Server" -Direction Outbound -Protocol TCP -RemotePort 443 -Action Allow -RemoteAddress GLPIServerIP -Profile Domain,Private,Public -Description "Sortant HTTPS GLPI agent" -ErrorAction SilentlyContinue # Vérification des règles créées Write-Output "Règles firewall INBOUND PDQ Deploy créées" Get-NetFirewallRule -DisplayName "PDQ Server" | Format-Table -AutoSize Write-Output "Règles firewall OUTBOUND GLPI créées" Get-NetFirewallRule -DisplayName "GLPI" | Format-Table -AutoSize --Script pour Ping des machines-- # ScanIPMES.ps1 # Script PowerShell pour scanner les adresses IP d'un sous-réseau et vérifier la connectivité # Définition du sous-réseau à scanner $subnet = "192.168.1" $startIP = 1 $endIP = 254 # Tableau pour stocker les résultats $results = @() # Boucle sur chaque adresse IP du sous-réseau for ($i = $startIP; $i -le $endIP; $i++) { $ip = "$subnet.$i" Write-Host "Test de connexion à $ip..." -ForegroundColor Yellow # Test de connectivité avec Test-Connection (ping) $ping = Test-Connection -ComputerName $ip -Count 1 -Quiet -ErrorAction SilentlyContinue # Ajout du résultat au tableau $results += [PSCustomObject]@{ IP = $ip Status = if ($ping) { "UP" } else { "DOWN" } } } # Affichage des résultats $results | Format-Table -AutoSize # Export des résultats dans un fichier CSV $results | Export-Csv -Path "ScanIPMES_Resultats.csv" -NoTypeInformation -Encoding UTF8 Write-Host "Scan terminé. Résultats exportés dans ScanIPMES_Resultats.csv" -ForegroundColor Green --Script Automatisation MAJ Windows-- # Forcer la stratégie d'exécution (temporaire pour session) Set-ExecutionPolicy RemoteSigned -Scope Process -Force # Installer PSWindowsUpdate si pas présent (nécessite droits admin) Install-Module PSWindowsUpdate -Force # Importer le module Import-Module PSWindowsUpdate # Rechercher les mises à jour $updates = Get-WindowsUpdate -MicrosoftUpdate -AcceptAll # Filtrer uniquement la Feature Update Windows 11 24H2 $featureUpdates = $updates | Where-Object { $_.Title -match 'Windows 11' -and $_.Title -match '24H2' } # Installer et redémarrer automatiquement if ($featureUpdates) { $featureUpdates | Install-WindowsUpdate -AcceptAll -AutoReboot } else { Write-Host "Aucune mise à jour de montée de version Windows 11 24H2 trouvée." } --Script nettoyage fichier temporaire utilisateur et Temporaire systèmes hors fichiers ouverts-- --Script CMD (.bat)-- @echo off echo Nettoyage des fichiers temporaires utilisateur... rd /s /q "%temp%" md "%temp%" echo Nettoyage des fichiers temporaires système... rd /s /q "C:\Windows\Temp" md "C:\Windows\Temp" echo Nettoyage terminé. pause --powershell-- Write-Output "Nettoyage des fichiers temporaires utilisateur..." Remove-Item -Path "$env:TEMP\*" -Force -Recurse -ErrorAction SilentlyContinue Write-Output "Nettoyage des fichiers temporaires système..." Remove-Item -Path "C:\Windows\Temp\*" -Force -Recurse -ErrorAction SilentlyContinue Write-Output "Nettoyage terminé." Ces deux versions effectuent la suppression récursive et forcée des fichiers temporaires utilisateurs et système. La version CMD recrée les dossiers temporaires, ce que PowerShell ne fait pas car les dossiers système existent déjà