Soluții

Cum remediem erorile: WHEA_UNCORRECTABLE_ERROR, CRITICAL_PROCESS_DIED in Windows Server

Aceste două erori de tip Blue Screen of Death (BSOD)—WHEA_UNCORRECTABLE_ERROR (0x00000124) și CRITICAL_PROCESS_DIED (0x000000EF)—reprezintă alerte critice în Windows Server.

Când apar împreună sau consecutiv pe un server, scenariul cel mai probabil indică o instabilitate hardware (procesor, memorie, stocare) care destabilizează sistemul până în punctul în care procese de bază ale Windows-ului (cum ar fi csrss.exe, wininit.exe sau smss.exe) crapă instantaneu.

1. Analiza celor două erori

  • WHEA_UNCORRECTABLE_ERROR: Windows Hardware Error Architecture. Este o eroare pur hardware. Înseamnă că procesorul (CPU) sau placa de bază a detectat o eroare fizică fatală (de tensiune, magistrală sau cache) pe care sistemul de operare nu o poate corecta prin software.

  • CRITICAL_PROCESS_DIED: Înseamnă că un serviciu de sistem critic, a cărui oprire forțează oprirea Windows-ului, s-a terminat brusc. Pe servere, acest lucru se întâmplă adesea când controlerul de stocare (SAS/RAID) pierde conexiunea cu discurile pe care este instalat sistemul, blocând citirea/scrierea fișierelor de sistem.

2. Plan de Acțiune Pas cu Pas 

Pasul 1: Inspectarea Hardware-ului prin IDRAC / ILO / IMM

Înainte de a modifica ceva în software, verificați logurile de management ale serverului fizic (Dell iDRAC, HPE iLO, Lenovo XClarity):

  1. Accesați consola web de management a serverului.

  2. Navigați la System Event Log (SEL) sau Hardware Logs.

  3. Căutați erori legate de:

    • CPU Machine Check Exception (MCE) — confirmă o problemă de procesor sau socket.

    • Uncorrectable ECC Memory Error — indică o plăcuță RAM defectă.

    • PCIe Bus Error — o placă de rețea, un controller RAID sau un GPU dă semne de oboseală.

    • Drive Predictive Failure / Controller cache error.

Pasul 2: Analiza Fișierelor Minidump 

Dacă serverul apucă să scrie dump-ul pe disc înainte de repornire:

  1. Descărcați WinDbg (Windows Debugger) pe o stație de lucru.

  2. Copiați fișierul C:\Windows\Minidump\xxxxx.dmp sau C:\Windows\MEMORY.DMP de pe server.

  3. Deschideți fișierul în WinDbg și rulați comanda:

!analyze -v

4. Căutați secțiunea **MODULE_NAME** și **IMAGE_NAME**. 
   * Dacă indică un driver (ex: `megasas35.sys`, `iastorac.sys`, `ntoskrnl.exe`), aveți vinovatul direct (controller stocare sau kernel destabilizat de hardware).
   * Pentru WHEA, rulați `!whea` în debugger pentru a vedea exact registrul CPU sau componenta PCIe raportată defectă.

---

## 3. Metode de Rezolvare Tehnice

### Soluția A: Verificarea și Remedierea Subsistemului de Stocare (Țintește *Critical Process Died*)
Dacă controllerul RAID pierde temporar comunicarea cu discurile din cauza unui firmware instabil sau a unei baterii de cache defecte (BBU), procesele critice mor deoarece nu mai pot citi din `C:\Windows`.

1. **Actualizați Firmware-ul unităților:** Faceți update la firmware-ul controllerului RAID și la SSD-uri/HDD-uri folosind utilitarul oficial al producătorului (ex: *Dell Lifecycle Controller*).
2. **Verificați cablurile și conexiunile:** Într-un mediu controlat (mentenanță), opriți serverul, scoateți și reintroduceți discurile în backplane, și verificați cablurile SAS interne.
3. **Dezactivați Link State Power Management (dacă e cazul):** În Power Options pe Windows Server, setați planul pe **High Performance** și asigurați-vă că PCIe Link State Power Management este pe **Off**.

### Soluția B: Remedierea Instabilității CPU și RAM (Țintește *WHEA*)
1. **Resetare setări BIOS/UEFI:** Intrați în BIOS-ul serverului și asigurați-vă că nu există profile de overclocking activate (rare pe servere, dar posibile prin funcții de tip „Performance Mode” agresive) sau setări greșite de tensiune. Setați profilul pe **Custom** sau **Standard Reliable Performance**.
2. **Testare RAM extinsă:** Programați o fereastră de mentenanță și rulați un test de memorie bare-metal (cum ar fi *MemTest86+* sau utilitarul de diagnostic nativ al serverului HPE/Dell) timp de câteva ore.
3. **Microcode Update:** Asigurați-vă că BIOS-ul serverului este la ultima versiune. Update-urile de BIOS aduc patch-uri de microcod pentru procesoarele Intel/AMD care rezolvă erorile matematice interne ce generează WHEA.

### Soluția C: Verificarea Integrității Fișierelor de Sistem (OS Level)
Dacă hardware-ul este 100% intact în loguri, dar fișierele de sistem au fost corupte în timpul unui update sau din cauza unei opriri bruște de curent:

1. Deschideți **Command Prompt** ca Administrator și executați comanda DISM pentru a repara imaginea de sistem:
   ```cmd
   DISM /Online /Cleanup-Image /RestoreHealth
  1. Rulați System File Checker pentru a înlocui fișierele critice corupte:

    DOS

    sfc /scannow
    
3. Verificați starea discului logici pentru corupții ale sistemului de fișiere NTFS/ReFS:
   ```cmd
chkdsk C: /f /r

(Notă: Va necesita repornirea serverului și poate dura mult în funcție de mărimea volumului).

[mai mult...]

Delayed mesaj de eroare când încercați să accesați un folder partajat care nu mai există în Windows

Această problemă este una clasică de rețea în sistemele de operare Windows și apare deoarece subsistemul de rețea (MUP – Multiple UNC Provider) și serviciul Workstation (LanmanWorkstation) încearcă în mod repetat să interogheze calea UNC care nu mai este disponibilă, așteptând ca protocolul SMB (Server Message Block) să atingă pragul de timeout înainte de a returna eroarea către utilizator sau aplicație.

Iată o soluție IT detaliată, structurată pe pași de diagnosticare și metode de rezolvare (prin Registry, curățare cache și automatizare).

1. Diagnosticarea Cauzei Rădăcină 

Când accesați un folder partajat care a fost șters sau serverul gazdă este oprit, Windows nu renunță instantaneu. El trece prin următoarele etape:

  1. Rezoluția de nume: Încearcă să rezolve numele serverului prin DNS, LLMNR și NetBIOS.

  2. Negocierea SMB: Încearcă să deschidă o sesiune TCP pe portul 445.

  3. MUP Cache Timeout: Windows reține rutele UNC valide și invalide într-un cache local. Până când acest cache nu expiră sau nu este forțat să renunțe, sistemul va părea “înghețat” (de obicei între 30 de secunde și 2 minute).

2. Soluții Tehnice de Rezolvare

Metoda A: Curățarea conexiunilor persistente și a mapărilor “fantomă”

De multe ori, Windows reține folderul în lista de scurtături (Quick Access), în Network Locations sau ca drive mapat care nu a fost deconectat corect.

  1. Deschideți Command Prompt (cmd) cu drepturi de Administrator.

  2. Rulați următoarea comandă pentru a vedea conexiunile active/缓存:

net use

3. Dacă folderul sau litera de drive aferentă apare în listă, ștergeți-o forțat:
   ```cmd
   net use * /delete /yes

(Notă: Această comandă va șterge toate mapările curente; dacă doriți doar una specifică, înlocuiți * cu litera drive-ului, ex: net use Z: /delete).

4. Curățați cache-ul de rezoluție de nume:

DOS

ipconfig /flushdns
nbtstat -R

Metoda B: Optimizarea Timpului de Timeout prin Windows Registry 

Putem scurta perioada în care Windows insistă să caute un folder partajat inactiv modificând valorile de timeout din regiștri.

  1. Apăsați Win + R, tastați regedit și apăsați Enter.

  2. Navigați către următoarea cale:

    Plaintext

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters
    
3. În panoul din dreapta, verificați dacă există următoarele valori **DWORD (32-bit)**. Dacă nu există, dați click dreapta -> *New* -> *DWORD (32-bit) Value* și numiți-le exact așa:
   * **`KeepConn`** -> Această valoare determină cât timp o conexiune inactivă rămâne deschisă. Setați-o pe **Hexadecimal** și puneți valoarea `5` (reprezintă 5 secunde).
   * **`ExtendedSessTimeout`** -> Timpul de așteptare pentru răspunsul SMB. Setați-o pe **Decimal** și puneți valoarea `10` (10 secunde, reducând-o de la valoarea standard de 45-60s).

4. Navigați apoi la cheia responsabilă de MUP (Multiple UNC Provider):
   ```text
   HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Mup\Parameters
  1. Creați sau modificați valoarea DWORD:

    • UnknownNameTimeout -> Setați-o pe Decimal cu valoarea 5. Aceasta spune sistemului că dacă un nume UNC nu este găsit, să rețină că este invalid doar pentru 5 secunde, prevenind blocajele lungi la reîncercare.

  2. Reporniți calculatorul pentru ca modificările să aibă efect.

Metoda C: Curățarea Istoricului din File Explorer 

Dacă folderul partajat buclucaș se află în istoricul Explorer-ului, Windows va încerca să-i verifice starea în fundal de fiecare dată când deschideți „This PC” sau File Explorer, provocând acel delay.

  1. Deschideți File Explorer.

  2. Dați click pe cele trei puncte (…) din bara de sus (sau View -> Options în funcție de versiunea de Windows) și selectați Options.

  3. În tab-ul General, mergeți la secțiunea Privacy.

  4. Faceți click pe butonul Clear de lângă Clear File Explorer history.

  5. Debifați (opțional, pentru a preveni reapariția) opțiunile:

    • Show recently used files

    • Show frequently used folders

  6. Apăsați Apply și OK.

Metoda D: Eliminarea Credențialelor Stocate 

Dacă ați avut drepturi de acces salvate pentru acel folder partajat, Windows va încerca să trimită credențialele serverului vechi, așteptând confirmarea autentificării.

  1. Apăsați tasta Windows și tastați Credential Manager

  2. Selectați Windows Credentials

  3. Căutați în listă adresa IP sau numele serverului care găzduia folderul șters

  4. Expandați intrarea respectivă și dați click pe Remove.

3. Plan de prevenție pentru Administratorii de Rețea 

Dacă gestionați o rețea de calculatoare (Active Domain) și problema apare la mai mulți utilizatori din cauza unui server vechi de fișiere dezafectat:

  • Dezactivare prin GPO: Modificați scripturile de Logon sau Politica de Group Policy Preferences (GPP) care mapau acel folder. Schimbați acțiunea resursei din rețea pe Delete în loc de Update sau Create.

  • Implementare DFS (Distributed File System): Pe viitor, folosiți căi DFS (ex: \\domeniu\partajare\folder).

  • Dacă folderul fizic se mută sau dispare, administratorul modifică doar ținta (target-ul) în serverul DFS, iar utilizatorul final primește eroarea instantaneu sau este redirecționat fără delay-uri în rețea.

[mai mult...]

Remediere: VBA runtime error 1004

Eroarea VBA Runtime Error 1004 apare cel mai des în Excel, când o macrocomandă încearcă să facă o acțiune pe care Excel nu o poate executa: selectare greșită, sheet inexistent, fișier blocat, range invalid, workbook protejat etc.

Cele mai frecvente cauze și remedieri

1. Macro-ul încearcă să selecteze un sheet care nu este activ

Exemplu problematic:

Worksheets("Sheet1").Range("A1").Select

Dacă Sheet1 nu este activ, poate da eroare.

Remediere:

Worksheets("Sheet1").Activate
Worksheets("Sheet1").Range("A1").Select

Sau mai bine, fără Select:

Worksheets("Sheet1").Range("A1").Value = "Test"

2. Numele sheet-ului este greșit

Verifică dacă sheet-ul există exact cu același nume.

Exemplu:

Worksheets("Date").Range("A1").Value = "OK"

Dacă foaia se numește de fapt Data, DATE sau Date cu spațiu la final, apare eroarea.

Remediere:

Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("Date")
ws.Range("A1").Value = "OK"

3. Range-ul este invalid

Exemplu problematic:

Range("A0").Select

sau:

Range("A1:A").Select

Remediere:

Range("A1").Select
Range("A1:A100").Select

Pentru ultimul rând:

Dim lastRow As Long
lastRow = Cells(Rows.Count, "A").End(xlUp).Row
Range("A1:A" & lastRow).Select

4. Workbook-ul sau sheet-ul este protejat

Dacă foaia este protejată, macro-ul nu poate modifica celule.

Remediere:

Worksheets("Date").Unprotect Password:="parola"
Worksheets("Date").Range("A1").Value = "Test"
Worksheets("Date").Protect Password:="parola"

Dacă nu are parolă:

Worksheets("Date").Unprotect

5. Fișierul este deschis Read-Only

Verifică dacă fișierul Excel este deschis în mod Read-Only sau dacă este pe un share unde nu ai drepturi de scriere.

Remedieri:

- salvează fișierul local;
- verifică drepturile pe folder;
- închide fișierul de pe alte calculatoare;
- verifică dacă nu este blocat de OneDrive / SharePoint / antivirus.

6. Macro-ul folosește ActiveWorkbook în loc de ThisWorkbook

Dacă ai mai multe fișiere Excel deschise, ActiveWorkbook poate indica alt fișier.

Problematic:

ActiveWorkbook.Worksheets("Date").Range("A1").Value = "Test"

Mai sigur:

ThisWorkbook.Worksheets("Date").Range("A1").Value = "Test"

7. Copiere / lipire eșuată

Eroarea 1004 apare des la:

Selection.PasteSpecial Paste:=xlPasteValues

Remediere mai stabilă:

Worksheets("Sursa").Range("A1:A10").Copy
Worksheets("Destinatie").Range("A1").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False

Sau fără clipboard:

Worksheets("Destinatie").Range("A1:A10").Value = _
Worksheets("Sursa").Range("A1:A10").Value
[mai mult...]

Remediere Java Runtime Environment not found

Eroarea “Java Runtime Environment Not Found” apare când aplicația nu găsește Java instalat sau caută o versiune greșită de Java.

Remediere rapidă pe Windows

1. Verifică dacă Java este instalat

Deschide Command Prompt și scrie:

java -version

Dacă primești mesaj de tip:

'java' is not recognized...

înseamnă că Java nu este instalat sau nu este pus în PATH.

2. Instalează Java

Pentru aplicații obișnuite care cer doar Java Runtime, poți instala Java 8 Runtime de pe pagina oficială Java. Oracle menționează că Java 8 este pentru utilizatorii care au nevoie să ruleze aplicații desktop/laptop bazate pe Java.

Caută:

Java 8 download Windows

sau intră pe pagina oficială Java / Oracle.

Pentru aplicații mai noi, poți instala un JDK/JRE modern, de exemplu Eclipse Temurin, unde poți alege versiunea și tipul de pachet JDK/JRE.

Recomandare practică:

Pentru aplicații vechi: Java 8, 32-bit sau 64-bit în funcție de aplicație.
Pentru aplicații noi: Java 17 sau Java 21.

3. Verifică dacă aplicația cere Java 32-bit sau 64-bit

Asta este foarte important.

Dacă aplicația este veche, de multe ori cere Java 32-bit, chiar dacă Windows-ul este 64-bit.

Instalări tipice:

Java 64-bit:
C:\Program Files\Java\

Java 32-bit:
C:\Program Files (x86)\Java\

Dacă aplicația caută Java 32-bit și tu ai instalat doar 64-bit, eroarea poate continua.

4. Setează JAVA_HOME

După instalare, verifică unde este instalat Java. Exemplu:

C:\Program Files\Java\jre1.8.0_491

sau:

C:\Program Files\Eclipse Adoptium\jdk-17...

Apoi:

Start → search: Environment Variables → Edit the system environment variables

Intră la:

Environment Variables

La System variables, adaugă:

Variable name: JAVA_HOME
Variable value: C:\Program Files\Java\jre1.8.0_491

sau calea unde ai Java instalat.

Apoi la variabila Path, adaugă:

%JAVA_HOME%\bin

Închide și redeschide aplicația.

5. Testează din nou

În Command Prompt:

java -version

Ar trebui să apară ceva de genul:

java version "1.8.0_491"

sau versiunea instalată.

6. Dacă eroarea apare într-o aplicație veche

Instalează ambele variante, dacă nu știi ce cere aplicația:

Java 8 32-bit
Java 8 64-bit

Apoi repornește PC-ul.

[mai mult...]