Sujet : windows
-
Gestion des erreurs PowerShell dans les scripts d'administration : erreurs terminales, $ErrorActionPreference et $LASTEXITCODE
PowerShell distingue deux classes d'erreurs aux comportements différents dans un script : les erreurs terminales, que try/catch permet d'intercepter, et les erreurs non terminales, que seuls $ErrorActionPreference ou -ErrorAction peuvent transformer en arrêt. Une troisième classe, les échecs des exécutables natifs, ne suit aucune de ces deux voies, sauf si $PSNativeCommandUseErrorActionPreference est activée (PowerShell 7.4+, expérimentale en 7.3).
-
Kerberos sous Windows : klist, klist purge et setspn -L/-Q pour diagnostiquer les problèmes de SPN
Windows expose les tickets Kerberos en cache via klist et les noms de principal de service via setspn. Les SPN en double et le décalage d'horloge entre un client et un contrôleur de domaine sont les deux défaillances qui produisent le plus souvent des erreurs « impossible de s'authentifier » peu explicites, plutôt qu'un message Kerberos clair.
-
Entrées de démarrage UEFI et état de Secure Boot sous Linux et Windows
efibootmgr et bcdedit /enum firmware lisent et modifient la liste des entrées de démarrage UEFI, qui détermine ce que le micrologiciel tente de lancer et dans quel ordre ; mokutil --sb-state et Confirm-SecureBootUEFI indiquent si Secure Boot est actuellement appliqué, ce qui est distinct de la confiance accordée par shim/MOK à un module noyau tiers et en constitue un préalable.
-
Journalisation depuis les scripts d'administration : logger et systemd-cat sous Linux, Write-EventLog/New-WinEvent et Start-Transcript sous Windows
Chaque plateforme permet d'envoyer la sortie d'un script d'administration à un emplacement où une personne ou un autre outil la retrouvera plus tard, ce qui est distinct d'une simple écriture sur stdout : logger(1) ou systemd-cat vers le journal système sous Linux, le journal d'événements Windows via Write-EventLog (Windows PowerShell 5.1 uniquement) ou New-WinEvent, et Start-Transcript pour une capture brute de session. Aucun de ces mécanismes ne doit jamais recevoir de secret.
-
Échantillonner les compteurs de performance de Windows Server avec Get-Counter et les exporter en CSV
Get-Counter échantillonne des chemins de compteurs nommés à intervalle choisi, en continu ou sur un nombre fixe d'échantillons. Export-Counter (Windows PowerShell 5.1 uniquement) conserve tous les champs au format natif BLG, et relog convertit ensuite une capture en CSV, même sans la commande Export-Counter d'origine.
-
Fichiers de réponses Windows (unattend.xml) : passes de configuration et emplacements où Setup les recherche
Un fichier de réponses unattend.xml fournit des paramètres à des passes de configuration précises de Windows Setup ; windowsPE, generalize, specialize et oobeSystem sont celles que le provisionnement sollicite le plus. Setup trouve le fichier selon un ordre de recherche implicite fixe et le met en cache dans %WINDIR%\Panther ; Windows System Image Manager crée ces fichiers et peut masquer, sans les chiffrer, les mots de passe de comptes locaux.
-
Windows Event Forwarding : abonnement initié par la source, wecutil et groupe EventLog Readers
Dans un abonnement WEF initié par la source, chaque ordinateur source récupère sa configuration auprès d'un collecteur via une stratégie de groupe et lui envoie les événements correspondants. wecutil gère l'abonnement sur le collecteur, et le transfert du journal Security exige d'ajouter le compte NETWORK SERVICE au groupe EventLog Readers sur chaque source.
-
Prioriser le Patch Tuesday d’octobre 2026 selon les preuves d’exploitation et les actifs concernés
Un protocole proposé de tri des correctifs transforme une publication volumineuse en une file de déploiement par actif. L’exploitation confirmée, l’exposition et les conséquences métier déterminent l’urgence ; EPSS aide à prioriser en l’absence de preuves d’exploitation.
-
Généraliser une image Windows avec Sysprep : /generalize, /oobe, /shutdown et la limite de réarmement
Sysprep /generalize supprime d'une installation Windows les informations propres à l'ordinateur, comme le SID et les périphériques configurés, afin de pouvoir déployer l'image sur d'autres machines. Depuis Windows 8.1/Server 2012, Sysprep peut être exécuté jusqu'à 1001 fois par image (3 fois sous Windows 7/Server 2008 R2), et les échecs de généralisation laissent des traces dans les journaux Panther sous System32\Sysprep.
-
Stocker des secrets pour des scripts non supervisés : credentials systemd, DPAPI, trousseau macOS — et ce qu'il faut éviter
Chaque système d'exploitation propose un mécanisme pour fournir un secret à un script sans variable d'environnement ni argument de ligne de commande, lisibles par tout processus voisin ou journal : LoadCredential= de systemd, DPAPI sous Windows via Export-Clixml ou SecretManagement, et le trousseau macOS via security find-generic-password.
-
Rétention des journaux et budget disque sur un hôte : journald, logrotate et dimensionnement du journal d'événements Windows
`SystemMaxUse` de journald plafonne l'espace disque occupé par le journal lui-même, les paramètres `maxage` et `rotate` de logrotate limitent les fichiers archivés ailleurs, et `wevtutil sl` fixe la taille maximale d'un journal d'événements Windows. Ces trois réglages relèvent du budget disque, choisi par l'opérateur ou par un agent ; la durée de conservation imposée par des obligations légales ou organisationnelles est une décision de politique que cet article ne tranche pas.
-
Codes de sortie Windows au-delà de réussite/échec : le masque de bits de robocopy, les codes Windows Installer de msiexec et $LASTEXITCODE
robocopy regroupe plusieurs faits indépendants (fichiers copiés, fichiers en trop, divergences, échecs) dans un seul nombre inférieur à 8, à lire comme un masque de bits et non à comparer à zéro ; msiexec renvoie des codes précis de Windows Installer, où 3010 et 1641 signalent une réussite avec redémarrage en attente, et non un échec ; enfin, $LASTEXITCODE est le seul moyen fiable de connaître le code réel d'un programme natif dans PowerShell, avec des règles qui varient selon le mode d'appel du script.
-
Windows Shell CVE-2026-96951 : vérifier le correctif Windows 11 et préserver la protection des pièces jointes
Vérifier la mise à jour cumulative correspondant à la version exacte de Windows 11, effectuer le redémarrage et conserver les contrôles d’origine des pièces jointes et SmartScreen. L’absence d’avertissement ne prouve pas qu’un fichier téléchargé est sûr.
-
Windows 10 après octobre 2026 : couverture ESU des particuliers et des organisations
La page ESU de Microsoft destinée aux particuliers indique désormais une couverture jusqu'au 12 octobre 2027. Les organisations suivent des conditions ESU annuelles distinctes ; il faut donc consigner séparément l'éligibilité, l'année du programme, l'activation et les mises à jour installées pour chaque appareil Windows 10 conservé.
-
Pourquoi NTP reste nécessaire dans les machines virtuelles malgré les agents invités et les horloges paravirtualisées
Plusieurs couches aident à gérer l'heure dans une machine virtuelle (kvm-clock, agents invités, services d'intégration Hyper-V), mais aucune ne remplace un client NTP ou chrony exécuté dans l'invité. Cet article explique ce que fait réellement chaque couche et pourquoi la synchronisation de l'heure reste du ressort du système invité.
-
Comptes de service selon les familles d'OS : le moindre privilège pour les services d'arrière-plan propres à un agent
Chaque OS permet d'exécuter un service sans connexion interactive ni mot de passe géré à la main : utilisateurs système Linux avec shell nologin ou DynamicUser= de systemd, comptes virtuels et comptes de service gérés de groupe (gMSA) sous Windows, utilisateurs de démons sous macOS. Choisir le plus restreint est essentiel pour tout ce qu'un agent installe pour s'exécuter sans surveillance.
-
windows_exporter : installer le MSI avec des collecteurs activés et vérifier /metrics sous Windows
windows_exporter est distribué sous forme de MSI qui s'installe comme service Windows et accepte des propriétés d'installation pour choisir les collecteurs activés, le port d'écoute et une exception du pare-feu Windows, le tout de manière non interactive via msiexec.
-
Diagnostic des performances par processus sous Windows : Get-Process, Get-CimInstance et nombre de handles
Get-Process trie par working set ou par temps CPU cumulé ; la classe CIM Win32_PerfFormattedData_PerfProc_Process fournit à la place un pourcentage CPU calculé sous forme de taux ; un nombre de handles en hausse constante est la signature d'une fuite, et Process Explorer ou Process Monitor apportent le détail que PowerShell n'expose pas.
-
Pièges de cmd.exe et des scripts batch : moment d'évaluation de %ERRORLEVEL%, expansion différée et échappement avec le caret
Les fichiers batch subsistent dans des installateurs, des tâches planifiées héritées et des outils de fournisseurs. %ERRORLEVEL% est développé à l'analyse de la ligne et peut donc renvoyer une valeur périmée, l'expansion différée change ce comportement, et le caret est le caractère d'échappement que la plupart du code batch généré par des agents gère mal du premier coup.
-
Agents de provisionnement Windows au premier démarrage dans le cloud : EC2Launch v2, Azure VM Agent et cloudbase-init
AWS, Azure et la plupart des autres clouds embarquent dans leurs images Windows un petit agent qui traite les user data ou custom data au premier démarrage ; les agents courants sont EC2Launch v2, les agents de provisionnement et Windows VM d'Azure (qui enregistrent les custom data dans CustomData.bin sans les exécuter) et l'agent open source cloudbase-init. Chacun journalise à un emplacement différent, à vérifier lorsque le provisionnement semble avoir échoué sans bruit.
Lisible par machine : JSON