Windows Server 2012 R2 : corriger les redémarrages intempestifs causés par htsatran.sys (NComputing vSpace)

Votre serveur Windows Server 2012 R2 redémarre sans prévenir et les minidumps pointent vers htsatran.sys ? Voici un guide opérationnel, pas à pas, pour stabiliser la machine, corriger le pilote NComputing vSpace en cause et fiabiliser la plateforme sur la durée.

Sommaire

Vue d’ensemble

Trois redémarrages brutaux en cinq jours, aucune alerte des diagnostics mémoire, et un nom revient dans les minidumps : htsatran.sys. Ce fichier n’appartient pas à Windows : c’est un pilote tiers UTMA/UTSA Virtual Transport Driver installé par NComputing vSpace pour la virtualisation de sessions. Un pilote obsolète, endommagé ou incompatible peut provoquer un bugcheck (BSOD), puis un redémarrage immédiat si l’option « Redémarrer automatiquement » est active. La correction passe par l’identification précise de la version du pilote, sa mise à jour ou son retrait, puis un contrôle d’intégrité du système et une surveillance post‑remédiation.

Symptômes typiques

  • Arrêts inopinés sans écran bleu visible (redémarrage automatique activé).
  • Événements Kernel‑Power 41 et Windows Error Reporting 1001 dans l’Observateur d’événements.
  • Minidumps C:\Windows\Minidump\*.dmp mentionnant htsatran.sys dans la pile d’appels.
  • Serveur stable quand les services NComputing sont arrêtés ou en mode sans échec.

Ce qu’est htsatran.sys

htsatran.sys est le pilote de transport virtuel utilisé par les solutions NComputing vSpace. Il n’est pas fourni par Microsoft. Comme tout pilote en mode noyau, il s’exécute avec des privilèges élevés et peut entraîner un arrêt système s’il accède à la mémoire de manière invalide, s’il déclenche une violation IRQL, ou s’il interagit mal avec d’autres pilotes (stockage, antivirus, filtrage réseau).

Plan d’action express

  1. Empêcher les redémarrages silencieux : désactivez « Redémarrer automatiquement » pour capturer le BSOD et le code d’arrêt.
  2. Figurer la version exacte du pilote et sa date de signature.
  3. Mettre à jour vSpace vers une version compatible Windows Server 2012 R2, ou désinstaller/désactiver le pilote si aucun correctif n’existe.
  4. Réparer l’image Windows : SFC, DISM, puis CHKDSK.
  5. Analyser les journaux pour corréler les horaires de redémarrage et valider le retour à la stabilité.

Tableau de réponses et solutions

Axe d’actionDétails pratiquesCommentaires
Identifier l’originehtsatran.sys provient de NComputing vSpace (UTMA/UTSA Virtual Transport Driver). Ce n’est pas un composant Windows.Un pilote tiers obsolète ou corrompu déclenche fréquemment des BSOD.
Mettre à jour ou supprimer le piloteInstallez la dernière version vSpace compatible. À défaut, arrêtez les services NComputing, démarrez en mode sans échec et renommez C:\Windows\System32\drivers\htsatran.sys pour en empêcher le chargement.Redémarrez et validez la stabilité avant de réactiver les fonctionnalités vSpace.
Vérifications systèmeExécutez sfc /scannow, DISM /Online /Cleanup-Image /RestoreHealth, puis chkdsk /f.Répare les composants Windows et les métadonnées de volume.
Analyse des journauxFiltrez dans l’Observateur d’événements : ID 41 (Kernel‑Power), ID 1001 (WER) et mention de htsatran.sys.Permet de confirmer la corrélation pilote ↔ redémarrage.
Capturer le BSODDésactivez « Redémarrer automatiquement » et conservez les minidumps.Nécessaire pour l’analyse WinDbg et l’identification du code d’arrêt.
Alternatives matériellesVérifiez SMART, firmware du contrôleur RAID, microcode et BIOS/UEFI.Un défaut d’E/S peut mettre en défaut les pilotes sensibles au timing.
Plan à moyen termeWindows Server 2012 R2 est hors support général ; seules des mises à jour ESU prolongent les correctifs de sécurité. Planifiez une migration.Optez pour Windows Server 2022/2025 ou un équivalent cloud.

Procédure détaillée pas à pas

Désactiver le redémarrage automatique et configurer les dumps

  1. Ouvrez Panneau de configurationSystèmeParamètres système avancésDémarrage et récupération.
  2. Décochez Redémarrer automatiquement.
  3. Dans Écriture des informations de débogage, choisissez Mini‑image mémoire (256 Ko) et vérifiez le dossier %SystemRoot%\Minidump.

En PowerShell (exécuté en tant qu’administrateur) :

New-Item -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\CrashControl' -Force | Out-Null
Set-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\CrashControl' -Name CrashDumpEnabled -Type DWord -Value 3
Set-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\CrashControl' -Name MinidumpDir -Type ExpandString -Value '%SystemRoot%\Minidump'

Identifier la présence et la version de htsatran.sys

En ligne de commande :

dir C:\Windows\System32\drivers\htsatran.sys
wmic datafile where name="C:\\Windows\\System32\\drivers\\htsatran.sys" get Version,CreationDate,LastModified

En PowerShell :

$p = 'C:\Windows\System32\drivers\htsatran.sys'
If (Test-Path $p) {
  $f = Get-Item $p
  $sig = Get-AuthenticodeSignature $p
  [PSCustomObject]@{
    Fichier   = $f.FullName
    Version   = $f.VersionInfo.FileVersion
    Date      = $f.LastWriteTime
    Signataire= $sig.SignerCertificate.Subject
    EtatSig   = $sig.Status
  } | Format-List
} else {
  Write-Host 'htsatran.sys introuvable.'
}

Note : un statut de signature « Valid » n’exclut pas une incompatibilité de version avec le noyau ou d’autres pilotes.

Mettre à jour ou supprimer proprement le pilote NComputing vSpace

Option 1 – Mise à jour recommandée. Téléchargez et installez la dernière version de vSpace compatible avec Windows Server 2012 R2. Redémarrez, puis vérifiez la nouvelle version de htsatran.sys. Contrôlez le journal des correctifs (release notes) pour les fix BSOD/transport/UTSA.

Option 2 – Désactivation temporaire en environnement de production. Si aucune version corrigée n’est disponible :

  1. Arrêtez les services vSpace/NComputing : sc stop "vSpaceService" sc stop "NComputingRemoteAccess" & rem selon les noms présents
  2. Démarrez en mode sans échec : bcdedit /set {default} safeboot minimal shutdown /r /t 0 Après correction, désactivez : bcdedit /deletevalue {default} safeboot
  3. Renommez le pilote pour empêcher son chargement : takeown /f C:\Windows\System32\drivers\htsatran.sys icacls C:\Windows\System32\drivers\htsatran.sys /grant Administrators:F ren C:\Windows\System32\drivers\htsatran.sys htsatran.sys.disabled
  4. Redémarrez en mode normal et validez la stabilité pendant 48‑72 h.

Option 3 – Désinstallation contrôlée. Sauvegardez la configuration vSpace puis désinstallez via Programmes et fonctionnalités. Supprimez les résidus (Program Files\NComputing, services, pilotes) et redémarrez. Réinstallez uniquement si nécessaire, avec une version vérifiée.

Impact fonctionnel : renommer/supprimer le pilote peut interrompre les postes clients NComputing. Planifiez un créneau de maintenance et informez les utilisateurs.

Réparer l’image et le système de fichiers

Dans une console administrateur :

sfc /scannow
DISM /Online /Cleanup-Image /ScanHealth
DISM /Online /Cleanup-Image /RestoreHealth
chkdsk C: /f

Bonnes pratiques : exécutez chkdsk en dehors des heures de bureau (un redémarrage peut être requis). Conservez un export de C:\Windows\Logs\CBS\CBS.log et DISM.log pour le dossier d’incident.

Analyser les journaux d’événements

Utilisez l’Observateur d’événements pour corréler les incidents :

  • Système : Kernel‑Power ID 41 (perte d’alimentation ou échec système), BugbCheck ID 1001.
  • Applications et services : erreurs provenant du service NComputing ou du pilote de transport.

En PowerShell, pour les 7 derniers jours :

$from = (Get-Date).AddDays(-7)
Get-WinEvent -FilterHashtable @{LogName='System'; Id=41,1001; StartTime=$from} |
  Select-Object TimeCreated, Id, ProviderName, LevelDisplayName, Message |
  Format-Table -AutoSize

Capturer et lire le minidump avec WinDbg

  1. Installez WinDbg (version classique) sur une station d’analyse.
  2. Ouvrez un fichier .dmp depuis %SystemRoot%\Minidump.
  3. Exécutez : .symfix; .reload !analyze -v lmvm htsatran kv

Interprétation rapide : si la pile d’appels montre htsatran.sys proche de la faute et que d’autres pilotes réseau/filtre sont impliqués, suspectez un conflit de versions. Un processing IRP ou un bugcheck 0xD1/0xA/0x3B avec ce module renforce l’hypothèse pilote.

Utiliser Driver Verifier avec prudence

Uniquement en pré‑production ou en créneau contrôlé : Driver Verifier provoque volontairement le crash lorsqu’un pilote viole des règles du noyau.

verifier /standard /driver htsatran.sys

Pour arrêter la vérification :

verifier /reset

Si vous bouclez sur un BSOD au démarrage, entrez en mode sans échec et exécutez verifier /reset, puis renommez le pilote incriminé.

Hypothèses matérielles à écarter

  • Stockage : contrôlez les erreurs disk, storport, nvme dans le journal Système. Vérifiez l’état SMART, le firmware du contrôleur RAID, le cache batterie et les pilotes de stockage.
  • BIOS/UEFI : mettez à jour le microcode, vérifiez les paramètres C‑states/économie d’énergie si la charge est sensible au timing.
  • Alimentation : consultez les journaux BMC/iLO/DRAC, vérifiez la redondance PSU et l’onduleur.
  • Mémoire : les diagnostics Windows peuvent passer à côté d’intermittences ; un test hors OS (ex. démarrage sur un outil dédié) reste conseillé.

Surveillance continue après remédiation

  • Reliability Monitor : lancez « View reliability history » et suivez la courbe. L’objectif est un indice ≥ 9 après 7 jours.
  • Export planifié des événements clés (41, 1001, erreurs pilote) et des compteurs de performances (latence DPC, files d’attente disque).
  • Seuils d’alerte : 0 redémarrage inattendu sur 7 jours ; aucune erreur critique corrélée à htsatran.sys.

Scripts utiles prêts à l’emploi

Audit rapide et remédiation douce : ce script PowerShell (à lancer en administrateur) consigne les infos, désactive poliment vSpace, renomme le pilote et exécute SFC/DISM. Il n’efface rien de définitif.

# Dossier de collecte
$stamp = Get-Date -Format 'yyyyMMdd-HHmmss'
$logRoot = "C:\Admin\Incident-htsatran\$stamp"
New-Item -ItemType Directory -Path $logRoot -Force | Out-Null

# 1) Info pilote

$drv = 'C:\Windows\System32\drivers\htsatran.sys'
if (Test-Path $drv) {
$info = Get-Item $drv
$sig  = Get-AuthenticodeSignature $drv
$obj  = [PSCustomObject]@{
Fichier   = $info.FullName
Version   = $info.VersionInfo.FileVersion
Taille    = $info.Length
Date      = $info.LastWriteTime
Signataire= $sig.SignerCertificate.Subject
EtatSig   = $sig.Status
}
$obj | Export-Csv "$logRoot\htsatran-info.csv" -NoTypeInformation -Encoding UTF8
}

# 2) Journal événements critique 7 jours

$from = (Get-Date).AddDays(-7)
Get-WinEvent -FilterHashtable @{LogName='System'; Id=41,1001; StartTime=$from} |
Export-Csv "$logRoot\Events-System-41-1001.csv" -NoTypeInformation -Encoding UTF8

# 3) Désactivation services NComputing si présents

'vSpaceService','NComputingRemoteAccess' | ForEach-Object {
if (Get-Service -Name $_ -ErrorAction SilentlyContinue) {
Stop-Service $_ -Force -ErrorAction SilentlyContinue
Set-Service $_ -StartupType Disabled
Add-Content "$logRoot\actions.log" "Service $_ arrêté et désactivé."
}
}

# 4) Renommage préventif du pilote

if (Test-Path $drv) {
try {
$dest = "$drv.disabled"
Copy-Item $drv "$logRoot\htsatran-backup.sys" -ErrorAction Stop
takeown /f $drv | Out-Null
icacls $drv /grant Administrators:F | Out-Null
Rename-Item $drv -NewName ([System.IO.Path]::GetFileName($dest)) -ErrorAction Stop
Add-Content "$logRoot\actions.log" "Pilote renommé en $dest."
} catch {
Add-Content "$logRoot\actions.log" "Échec renommage: $($_.Exception.Message)"
}
}

# 5) Config dumps mini et pas de redémarrage automatique

New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\CrashControl' -Force | Out-Null
Set-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\CrashControl' CrashDumpEnabled 3
Set-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\CrashControl' MinidumpDir '%SystemRoot%\Minidump'

# 6) SFC/DISM

sfc /scannow | Out-File "$logRoot\sfc.log" -Encoding UTF8
DISM /Online /Cleanup-Image /RestoreHealth | Out-File "$logRoot\dism.log" -Encoding UTF8

Write-Host "Collecte terminée dans $logRoot. Redémarrez le serveur pour valider." 

Feuille de route de migration

Statut du produit : Windows Server 2012 R2 est en fin de support général ; des Extended Security Updates payants prolongent uniquement la publication de correctifs de sécurité sur une période limitée. Pour réduire le risque d’instabilité logicielle et améliorer la sécurité, planifiez une migration.

  • Cible : Windows Server 2022 ou 2025 (suivant vos exigences matérielles et applicatives).
  • Compatibilité applicative : validez le support vSpace/NComputing ou envisagez des alternatives (RDS, AVD) selon votre contexte.
  • Étapes : inventaire des rôles et dépendances → bac à sable pour tests pilotes → mise à niveau ou side‑by‑side → bascule planifiée avec retour arrière.
  • Métriques de réussite : 0 BSOD en 30 jours, indice de fiabilité ≥ 9, taux d’incidents P1 = 0.

Guide de diagnostic avancé

Corrélation temporelle

Extrayez sur une même ligne de temps les événements 41/1001, les erreurs de pilote réseau/transport et les alertes I/O ; une co‑occurrence récurrente avant le bugcheck suggère un enchaînement causal (conflit filtre réseau, congestion DPC, latence disque).

Indices techniques à surveiller dans WinDbg

  • Bugcheck 0xD1/0xA : accès mémoire invalide à IRQL élevé ; source fréquente : pilote réseau ou transport.
  • Bugcheck 0x3B : exception système ; souvent un appel invalide de routine noyau.
  • !stacks 2 et !irpfind : recherchent des IRP suspects liés à htsatran.sys.
  • lmvm htsatran : confirme la version, l’horodatage (TimeDateStamp) et l’adresse de chargement.

Matrice décisionnelle

Condition observéeAction recommandéeRaison principaleImpact utilisateur
BSOD mentionnant htsatran.sys, version ancienneMise à jour vSpace/htsatran.sysCorrectifs de stabilité noyauInterruption courte pour redémarrage
Pas de version corrigée disponibleDésactivation/renommage du piloteIsolation de la cause racineFonctions NComputing indisponibles
Redémarrages persistent après retraitEnquête stockage/BIOS, tests matérielsÉcarter défaillance I/O ou microcodeNécessite fenêtres de maintenance
Serveur stabilisé 72 h sans htsatran.sysConfirmer RCA, plan migration/upgradeDurabilité et sécuritéPlanification projet

Chronologie d’intervention type

  • Heure 0 : désactiver redémarrage auto, configurer minidumps, collecter journaux, renseigner version de htsatran.sys.
  • Heure 1 : mise à jour vSpace ou désactivation/renommage du pilote. Redémarrage contrôlé.
  • Jour 1 : exécuter SFC/DISM/CHKDSK, mettre à jour BIOS/firmware si nécessaire.
  • Jours 2‑3 : surveillance renforcée, validation de stabilité, préparation plan de migration si RCA confirmée.

Questions fréquentes

Est‑ce un malware ? Non. htsatran.sys est normalement signé par NComputing. Vérifiez la signature Authenticode et le hachage si un doute subsiste.

Puis‑je supprimer le fichier ? En production, préférez renommer pour pouvoir revenir en arrière. Une suppression définitive peut empêcher le service de démarrer et requérir une réparation plus lourde.

Les tests mémoire sont propres ; est‑ce bien logiciel ? Très probablement si l’arrêt disparaît sans le pilote. Gardez néanmoins une vérification matérielle minimale (SMART, contrôleur RAID, BIOS).

Quelle durée d’observation après correction ? Au moins 72 heures sans redémarrage inattendu, puis une semaine avec l’Indice de fiabilité dans le vert.

Que faire si un antivirus injecte un pilote de filtrage réseau ? Mettez à jour l’antivirus et testez la désactivation du module réseau/IDS pour écarter une interaction avec le transport virtuel vSpace.

Conclusion

Les redémarrages intempestifs imputés à htsatran.sys résultent presque toujours d’un pilote NComputing vSpace inadapté ou d’un conflit avec un autre module noyau. Le traitement efficace suit un triptyque clair : stabiliser (capturer le BSOD et empêcher le redémarrage automatique), corriger (mettre à jour ou retirer le pilote, réparer l’image Windows), surveiller (journaux, fiabilité, compteurs). À moyen terme, la migration hors Windows Server 2012 R2 s’impose pour rester supporté, améliorer la sécurité et réduire le risque de régressions pilotes. En appliquant la procédure ci‑dessus, vous éliminerez la cause racine et durcirez la plateforme pour la suite.

Sommaire