PowerShell pour administrateurs Commandes PowerShell essentielles pour administrer un VPS Windows HolyCloud au quotidien. ~9 min de lecture Débutant #windows #powershell #administration #vps PowerShell pour administrateurs PowerShell est le shell moderne de Windows Server. Sur un VPS HolyCloud, il permet d'automatiser la gestion des services, du réseau, des utilisateurs et des mises à jour sans passer uniquement par l'interface graphique. Prérequis Session RDP ou console sur le VPS Windows Compte membre du groupe Administrators Politique d'exécution adaptée (voir ci-dessous) Lancer PowerShell en administrateur Menu Démarrer → tapez PowerShell. Clic droit → Exécuter en tant qu'administrateur. Vérifiez la version : $PSVersionTable.PSVersion Get-Host | Select-Object Version PowerShell 5.1 est inclus par défaut ; PowerShell 7 (pwsh) peut être installé en parallèle pour les scripts cross-plateforme. Politique d'exécution des scripts Get-ExecutionPolicy -List Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine RemoteSigned : scripts locaux autorisés ; scripts téléchargés doivent être signés. Navigation et fichiers Get-Location Set-Location C:\inetpub\wwwroot Get-ChildItem -Force New-Item -Path 'C:\Logs' -ItemType Directory Copy-Item 'C:\source\app.config' -Destination 'C:\app\' Remove-Item 'C:\Temp\old.log' -Force Informations système Get-ComputerInfo | Select-Object CsName, WindowsProductName, OsBuildNumber, OsLastBootUpTime Get-CimInstance Win32_Processor | Select-Object Name, NumberOfLogicalProcessors Get-CimInstance Win32_OperatingSystem | Select-Object TotalVisibleMemorySize, FreePhysicalMemory Get-Volume Services Windows Get-Service | Where-Object { $_.Status -eq 'Running' } | Sort-Object DisplayName Get-Service W3SVC, TermService Restart-Service W3SVC -Force Stop-Service 'Spooler' -Force Set-Service 'Spooler' -StartupType Disabled Processus et performances Get-Process | Sort-Object CPU -Descending | Select-Object -First 10 Name, CPU, WS Stop-Process -Name 'notepad' -Force -ErrorAction SilentlyContinue Get-Counter '\Processor(_Total)\% Processor Time' -SampleInterval 2 -MaxSamples 5 Réseau Get-NetIPAddress -AddressFamily IPv4 | Where-Object { $_.IPAddress -notlike '127.*' } Get-NetTCPConnection -State Listen | Select-Object LocalAddress, LocalPort, OwningProcess Test-NetConnection -ComputerName 8.8.8.8 -Port 53 Resolve-DnsName www.holycloud.fr Utilisateurs locaux Get-LocalUser $Secure = Read-Host -AsSecureString 'Nouveau mot de passe' New-LocalUser -Name 'deploy' -Password $Secure -Description 'Compte deploiement' Add-LocalGroupMember -Group 'Administrators' -Member 'deploy' Mises à jour Windows (aperçu) Install-Module PSWindowsUpdate -Force -Scope AllUsers Get-WindowsUpdate Install-WindowsUpdate -AcceptAll -AutoReboot Planifiez les redémarrages en fenêtre de maintenance. Journal des événements Get-WinEvent -LogName System -MaxEvents 20 | Format-Table TimeCreated, Id, LevelDisplayName, Message -Wrap Get-WinEvent -FilterHashtable @{LogName='Application'; Level=2; StartTime=(Get-Date).AddDays(-1)} Niveau 2 = Erreur. Pipeline et export CSV Get-Service | Where-Object { $_.StartType -eq 'Automatic' } | Select-Object Name, Status, DisplayName | Export-Csv -Path 'C:\Reports\services-auto.csv' -NoTypeInformation -Encoding UTF8 Variables et scripts simples Fichier C:\Scripts\Disk-Alert.ps1 : param([int]$SeuilGo = 10) $Disque = Get-PSDrive C $LibreGo = [math]::Round($Disque.Free / 1GB, 2) if ($LibreGo -lt $SeuilGo) { Write-Warning "Espace disque C: faible ($LibreGo Go libres)" } Exécution : & 'C:\Scripts\Disk-Alert.ps1' -SeuilGo 15 Aide intégrée Get-Command *-NetFirewall* Get-Help New-NetFirewallRule -Examples Update-Help -Force -ErrorAction SilentlyContinue Bonnes pratiques Utilisez -WhatIf sur les cmdlets destructives quand c'est supporté. Loggez les scripts de production vers C:\Logs\. Ne stockez pas de mots de passe en clair dans les scripts ; préférez SecretManagement ou saisie interactive. Testez sur un snapshot avant changements massifs. Dépannage | Problème | Solution | |----------|----------| | « running scripts is disabled » | Set-ExecutionPolicy RemoteSigned | | Accès refusé | Lancer PowerShell en administrateur | | Module introuvable | Install-Module / Import-Module | | Caractères UTF-8 cassés | [Console]::OutputEncoding = [Text.UTF8Encoding]::UTF8 | Besoin d'aide ? Pour des scripts d'automatisation liés à l'infrastructure HolyCloud (API, snapshots), consultez la documentation VPS ou le support avec votre cas d'usage précis. Suite de la lecture Article précédent Pare-feu Windows (règles entrantes) Lire Article suivant Première connexion RDP Lire