Diagnosticarea și rezolvarea erorilor OOMKilled și CrashLoopBackOff în containere Kubernetes

Atunci când rulezi microservicii într-un cluster Kubernetes, o problemă frecventă întâlnită în medille de producție este apariția erorilor de tip OOMKilled (Out Of Memory) urmate de starea CrashLoopBackOff. Această situație apare de obicei atunci când cererea de memorie depășește limitele setate sau aplicația are scurgeri de memorie nerezolvate.

[mai mult...]

Adaugarea utilizatorilor in Shared Mailbox prin PowerShell

  1. PROBLEMA

Un utilizator existent în tenantul Microsoft 365, cu cont activ pe domeniul organizației, trebuie să primească acces la un shared mailbox. În Microsoft 365 admin center (Teams & groups > Shared mailboxes > Members) sau în Exchange admin center (Recipients > Mailboxes > Delegation), utilizatorul nu apare în lista de selecție, iar căutarea după nume sau adresă nu returnează niciun rezultat.

Soluția este acordarea permisiunilor direct din Exchange Online PowerShell, unde obiectul poate fi identificat după UPN, adresă SMTP sau GUID, fără a depinde de selectorul grafic.

[mai mult...]

Gestionarea platilor Google Workspace

Ghid de bună practică pentru administrarea facturării Google Workspace din Admin Console.

  1. Scop si domeniu de aplicare

Documentul stabilește modul în care administratorii IT configurează, monitorizează și mențin facturarea abonamentelor Google Workspace, astfel încât serviciile de e-mail (Gmail), stocare (Drive) și colaborare să nu fie întrerupte din motive de plată.

  • se aplică organizațiilor care achiziționează Google Workspace direct de la Google;
  • pentru abonamentele achiziționate printr-un partener (reseller), facturarea și plata se fac către partener, conform capitolului 5.4;
  • nu acoperă abonamentele personale Google One asociate conturilor @gmail.com.
[mai mult...]

Cum afli la ce port de switch este conectat un PC, direct de pe statie, prin LLDP sau CDP

La interventiile pe teren apare des aceeasi problema: prizele de retea nu sunt etichetate, documentatia cablarii lipseste sau este depasita, iar in rack sunt zeci de patch-uri. Trebuie sa aflam rapid in ce switch si in ce port ajunge cablul unui anumit PC, de exemplu pentru a schimba VLAN-ul, a verifica erorile pe port sau a muta un utilizator.

Switch-urile administrabile anunta periodic pe fiecare port informatii despre ele insele, prin protocoalele LLDP (standard, folosit de majoritatea producatorilor) si CDP (specific Cisco). Aceste pachete ajung si la placa de retea a PC-ului. Daca le capturam de pe statie, aflam numele switch-ului, portul exact, VLAN-ul si adresa de management, fara sa intram in rack si fara sa avem acces la switch.

Simptome

  • Priza de perete sau patch panel-ul nu are etichete sau etichetele nu corespund realitatii;
  • Trebuie identificat portul de switch al unei statii inainte de o modificare de VLAN sau de o mutare;
  • Statia are probleme de retea intermitente si vrem sa verificam portul ei pe switch;
  • Nu avem acces la consola switch-ului sau nu stim pe care dintre switch-uri ajunge cablul.

Backup

Procedura este doar de citire: capturam pachete, nu modificam nicio configuratie pe statie sau pe switch. Nu este necesar un backup.

Inainte de a incepe, retineti:

  1. Este nevoie de un cont de Administrator pe statie.
  2. Statia trebuie sa fie conectata prin cablu. Pe Wi-Fi nu se primesc pachete LLDP sau CDP de la switch.
  3. Capturarea de trafic pe statia unui client se face doar cu acordul clientului, conform politicii interne de securitate.

Pasul 1 – Aflam adaptorul de retea si adresa MAC a statiei

Intr-o consola PowerShell pornita ca Administrator:

Get-NetAdapter | Where-Object Status -eq 'Up' | Format-Table Name, InterfaceDescription, MacAddress, LinkSpeed -AutoSize

Notam numele adaptorului pe cablu (de exemplu “Ethernet”) si adresa MAC. Adresa MAC este utila la Pasul 5, daca LLDP si CDP nu sunt disponibile.

Pasul 2 – Metoda 1: captura cu Wireshark (cea mai clara)

Daca pe statie se poate instala Wireshark (impreuna cu driverul Npcap, inclus in kit):

  1. Deschidem Wireshark ca Administrator si selectam adaptorul Ethernet de la Pasul 1.
  2. In campul de filtru de captura (capture filter) introducem:
ether proto 0x88cc or ether dst 01:00:0c:cc:cc:cc
  1. Pornim captura si asteptam intre 30 si 90 de secunde. Switch-urile trimit LLDP implicit la 30 de secunde si CDP la 60 de secunde.
  2. Cand apare un pachet, il selectam si deschidem in panoul de detalii sectiunea “Link Layer Discovery Protocol” sau “Cisco Discovery Protocol”.

Campurile de interes sunt:

  • System Name / Device ID – numele switch-ului;
  • Port ID / Port Description – portul exact, de exemplu GigabitEthernet1/0/14;
  • Port VLAN ID / Native VLAN – VLAN-ul de date al portului;
  • Management Address – adresa IP de administrare a switch-ului;
  • System Description – modelul si versiunea de firmware.

Pasul 3 – Metoda 2: captura cu pktmon, fara instalare

Pe Windows 10 (versiunea 2004 sau mai noua), Windows 11 si Windows Server 2019/2022/2025 exista utilitarul integrat pktmon. Este util cand pe statia clientului nu avem voie sa instalam programe. Intr-un CMD pornit ca Administrator:

mkdir C:\Temp
pktmon filter remove
pktmon filter add LLDP -d 0x88CC
pktmon filter add CDP -m 01-00-0C-CC-CC-CC
pktmon start --capture --pkt-size 0 --file-name C:\Temp\vecin-switch.etl

Asteptam 90 de secunde, apoi oprim captura si o convertim in format pcapng:

pktmon stop
pktmon etl2pcap C:\Temp\vecin-switch.etl --out C:\Temp\vecin-switch.pcapng
pktmon filter remove

Fisierul vecin-switch.pcapng se copiaza pe laptopul tehnicianului si se deschide in Wireshark. Interpretarea campurilor este cea de la Pasul 2.

Pasul 4 – Metoda 3: modulul PowerShell PSDiscoveryProtocol

Daca statia are acces la PowerShell Gallery, modulul PSDiscoveryProtocol afiseaza rezultatul direct in consola, fara Wireshark:

Install-Module -Name PSDiscoveryProtocol -Scope CurrentUser
$Pachet = Invoke-DiscoveryProtocolCapture -Type LLDP
Get-DiscoveryProtocolData -Packet $Pachet

Pentru un switch Cisco cu CDP activ, inlocuim -Type LLDP cu -Type CDP. Comanda asteapta pana primeste un pachet, deci poate dura pana la un minut. Rezultatul contine direct numele switch-ului, portul, VLAN-ul si adresa de management.

Pasul 5 – Daca nu apare niciun pachet: cautam adresa MAC pe switch

Daca dupa 2 minute de captura nu apare niciun pachet LLDP sau CDP, protocolul este dezactivat pe port sau intre PC si switch exista un echipament care nu il transmite. In acest caz, cautam adresa MAC a statiei (de la Pasul 1) in tabela de adrese a switch-ului principal. Pe Cisco, de exemplu, pentru MAC-ul 00-1A-2B-3C-4D-5E:

show mac address-table address 001a.2b3c.4d5e

Daca portul gasit este un uplink catre alt switch, repetam comanda pe switch-ul urmator, pana ajungem la un port de acces.

Pasul 6 – Notam rezultatul si etichetam priza

Trecem in documentatia clientului corespondenta priza – patch panel – switch – port – VLAN si etichetam priza la fata locului. La urmatoarea interventie nu mai este nevoie de captura.

Impact colateral

Switch-urile neadministrabile (unmanaged) nu trimit LLDP sau CDP. Daca statia este legata printr-un astfel de switch de birou, informatia primita, daca exista, este a switch-ului din amonte, nu a portului real.

Daca PC-ul este conectat prin portul de PC al unui telefon IP, LLDP sau CDP primit poate fi al telefonului, nu al switch-ului.Unele placi de retea de server (de exemplu Intel din seria X710/XL710) au un agent LLDP in firmware care consuma pachetele LLDP inainte sa ajunga la sistemul de operare. In acest caz captura nu arata nimic, chiar daca switch-ul trimite LLDP.

In unele retele LLDP si CDP sunt dezactivate intentionat pe porturile de acces, din motive de securitate. Nu se activeaza pe switch fara acordul administratorului de retea.

Instalarea Wireshark instaleaza si driverul Npcap. Pe statiile cu politici stricte de aplicatii, instalarea poate fi blocata sau poate necesita aprobare. Filtrele pktmon raman active pana sunt sterse. De aceea procedura se incheie cu pktmon filter remove.

Plan de restaurare in caz de nefunctionare

Procedura nu modifica nicio configuratie, deci restaurarea inseamna doar curatarea instrumentelor folosite:

  1. Daca o captura pktmon a ramas pornita, o oprim si stergem filtrele:
pktmon stop
pktmon filter remove
  1. Stergem fisierele de captura din C:\Temp (vecin-switch.etl si vecin-switch.pcapng) dupa ce le-am analizat.
  2. Daca Wireshark si Npcap nu trebuie sa ramana pe statie, le dezinstalam din Settings > Apps > Installed apps.
  3. Daca am instalat modulul PowerShell, il eliminam:
Uninstall-Module -Name PSDiscoveryProtocol
[mai mult...]

Revizuirea periodica a conturilor inactive din Active Directory si dezactivarea controlata cu PowerShell

In orice domeniu Active Directory se aduna in timp conturi care nu mai sunt folosite: angajati plecati carora nu li s-a inchis contul, conturi de test, conturi create pentru colaboratori externi sau stagiari. Aceste conturi raman active, au parole care nu se mai schimba si reprezinta o poarta de intrare usor de exploatat, pentru ca nimeni nu observa daca sunt folosite de altcineva.

Standardul ISO/IEC 27001:2022 cere revizuirea periodica a drepturilor de acces (controlul A.5.18) si eliminarea accesului care nu mai este necesar. Procedura de mai jos produce un raport lunar cu conturile inactive de peste 90 de zile, il trece printr-o aprobare si apoi dezactiveaza conturile aprobate intr-un mod controlat si reversibil. Raportul si fisierul aprobat raman ca dovada de audit.

Backup

  1. Verificati daca este activat Active Directory Recycle Bin. Fara el, un cont sters ulterior nu mai poate fi recuperat cu toate atributele:
Get-ADOptionalFeature -Filter 'Name -like "Recycle Bin Feature"' | Select-Object Name, EnabledScopes

Daca EnabledScopes este gol, functia nu este activa. Activarea ei este ireversibila si se face separat, cu acordul administratorului de domeniu.

  1. Exportati starea actuala a tuturor conturilor de utilizator, inainte de orice modificare:
New-Item -ItemType Directory -Force -Path "C:\Audit\AD" | Out-Null
Get-ADUser -Filter * -Properties Enabled, Description, DistinguishedName, LastLogonTimestamp |
    Select-Object SamAccountName, Name, Enabled, Description, DistinguishedName,
        @{N='UltimaLogare';E={ if ($_.LastLogonTimestamp) { [DateTime]::FromFileTime($_.LastLogonTimestamp) } }} |
    Export-Csv "C:\Audit\AD\stare-conturi-$(Get-Date -Format yyyy-MM-dd).csv" -NoTypeInformation -Encoding UTF8
  1. Procedura se ruleaza dintr-o consola PowerShell pornita ca Administrator, pe un server sau o statie care are modulul ActiveDirectory (RSAT), cu un cont care are drept de modificare pe conturile vizate.

Pasul 1 – Pregatim grupul de exceptii si OU-ul de carantina

Unele conturi nu se logheaza interactiv niciodata, dar sunt necesare: conturi de serviciu, conturi pentru scanere sau aplicatii, conturi de urgenta (break-glass). Le punem intr-un grup dedicat, ca scriptul sa le ignore:

New-ADGroup -Name "GRP-Exceptii-Inactivitate" -GroupScope Global -GroupCategory Security `
    -Description "Conturi excluse din revizuirea conturilor inactive. Fiecare membru trebuie justificat."
Add-ADGroupMember -Identity "GRP-Exceptii-Inactivitate" -Members "svc-backup","svc-scanner"

Cream si OU-ul in care vor fi mutate conturile dezactivate (inlocuiti DC=firma,DC=local cu domeniul vostru):

New-ADOrganizationalUnit -Name "Conturi Dezactivate" -Path "DC=firma,DC=local" -ProtectedFromAccidentalDeletion $true

Important: daca domeniul este sincronizat cu Microsoft Entra ID (Entra Connect / Cloud Sync) si sincronizarea este filtrata pe OU-uri, OU-ul “Conturi Dezactivate” trebuie inclus in sincronizare. Altfel, la mutare, utilizatorul este sters din Entra ID, iar casuta lui de mail ajunge in starea soft-deleted.

Pasul 2 – Generam raportul cu conturile inactive

Salvam scriptul de mai jos ca C:\Scripts\Raport-ConturiInactive.ps1:

Import-Module ActiveDirectory

$Zile     = 90
$Prag     = (Get-Date).AddDays(-$Zile)
$Folder   = "C:\Audit\AD"
$Raport   = Join-Path $Folder "conturi-inactive-$(Get-Date -Format yyyy-MM-dd).csv"
$Sistem   = @('krbtgt','Administrator','Guest','DefaultAccount')

New-Item -ItemType Directory -Force -Path $Folder | Out-Null

$Exceptii = Get-ADGroupMember -Identity "GRP-Exceptii-Inactivitate" -Recursive |
    Select-Object -ExpandProperty SamAccountName

$Inactive = Get-ADUser -Filter 'Enabled -eq $true' `
        -Properties LastLogonTimestamp, whenCreated, PasswordLastSet, Description, ServicePrincipalName, Manager |
    Select-Object SamAccountName, Name, Description, whenCreated, PasswordLastSet, DistinguishedName,
        @{N='UltimaLogare';E={ if ($_.LastLogonTimestamp) { [DateTime]::FromFileTime($_.LastLogonTimestamp) } }},
        @{N='AreSPN';E={ [bool]$_.ServicePrincipalName }},
        @{N='Manager';E={ if ($_.Manager) { (Get-ADUser $_.Manager).Name } }} |
    Where-Object {
        ((-not $_.UltimaLogare) -or ($_.UltimaLogare -lt $Prag)) -and
        ($_.whenCreated -lt $Prag) -and
        (-not $_.AreSPN) -and
        ($_.SamAccountName -notin $Exceptii) -and
        ($_.SamAccountName -notin $Sistem)
    } |
    Sort-Object UltimaLogare

$Inactive | Export-Csv $Raport -NoTypeInformation -Encoding UTF8
Write-Host "Conturi inactive de peste $Zile zile: $($Inactive.Count). Raport: $Raport"

Ce face filtrul:

  • pastreaza doar conturile active care nu s-au logat in ultimele 90 de zile sau nu s-au logat niciodata;
  • ignora conturile create in ultimele 90 de zile (angajati noi care inca nu au inceput);
  • ignora conturile cu SPN (de regula conturi de serviciu), conturile din grupul de exceptii si conturile de sistem.

Rulam scriptul:

C:\Scripts\Raport-ConturiInactive.ps1

Pasul 3 – Revizuim si aprobam lista

Raportul nu se aplica automat. Il deschidem in Excel si il trimitem managerului fiecarui utilizator sau departamentului HR spre confirmare. Pentru fiecare cont se decide:

  • se dezactiveaza;
  • se pastreaza, cu justificare (de exemplu concediu prelungit), caz in care contul se adauga temporar in grupul de exceptii.

Liniile aprobate pentru dezactivare se salveaza intr-un fisier separat, de exemplu C:\Audit\AD\conturi-inactive-2026-10-01-aprobat.csv. Acest fisier, impreuna cu emailul de aprobare, este dovada pentru auditul ISO 27001.

Pasul 4 – Simulam dezactivarea cu -WhatIf

Inainte de modificarea reala, rulam procedura in mod simulare. PowerShell afiseaza ce ar face, fara sa schimbe nimic:

$Aprobate   = Import-Csv "C:\Audit\AD\conturi-inactive-2026-10-01-aprobat.csv"
$Carantina  = "OU=Conturi Dezactivate,DC=firma,DC=local"

foreach ($c in $Aprobate) {
    Disable-ADAccount -Identity $c.SamAccountName -WhatIf
    Move-ADObject -Identity $c.DistinguishedName -TargetPath $Carantina -WhatIf
}

Verificam ca lista afisata contine exact conturile aprobate.

Pasul 5 – Dezactivam si mutam conturile aprobate

$Aprobate   = Import-Csv "C:\Audit\AD\conturi-inactive-2026-10-01-aprobat.csv"
$Carantina  = "OU=Conturi Dezactivate,DC=firma,DC=local"
$Data       = Get-Date -Format yyyy-MM-dd
$Jurnal     = "C:\Audit\AD\jurnal-dezactivare-$Data.csv"

$Rezultat = foreach ($c in $Aprobate) {
    try {
        Disable-ADAccount -Identity $c.SamAccountName -ErrorAction Stop
        Set-ADUser -Identity $c.SamAccountName -Description "Dezactivat $Data - inactiv peste 90 zile - revizuire periodica acces" -ErrorAction Stop
        Move-ADObject -Identity $c.DistinguishedName -TargetPath $Carantina -ErrorAction Stop
        [pscustomobject]@{ Cont = $c.SamAccountName; OU_Original = $c.DistinguishedName; DescriereOriginala = $c.Description; Status = 'Dezactivat'; Data = $Data }
    }
    catch {
        [pscustomobject]@{ Cont = $c.SamAccountName; OU_Original = $c.DistinguishedName; DescriereOriginala = $c.Description; Status = "Eroare: $($_.Exception.Message)"; Data = $Data }
    }
}

$Rezultat | Export-Csv $Jurnal -NoTypeInformation -Encoding UTF8
$Rezultat | Format-Table Cont, Status -AutoSize

Jurnalul pastreaza OU-ul si descrierea originala ale fiecarui cont, necesare pentru restaurare.

Pasul 6 – Programam raportul lunar

Programam doar generarea raportului, nu si dezactivarea. Dezactivarea ramane un pas manual, facut dupa aprobare:

schtasks /Create /TN "Raport conturi AD inactive" /TR "powershell.exe -NoProfile -ExecutionPolicy Bypass -File C:\Scripts\Raport-ConturiInactive.ps1" /SC MONTHLY /D 1 /ST 08:00 /RU SYSTEM

Task-ul ruleaza in prima zi a fiecarei luni la ora 08:00 si salveaza raportul in C:\Audit\AD.

Pasul 7 – Stergerea definitiva (dupa perioada de retentie)

Conturile din “Conturi Dezactivate” se pastreaza o perioada stabilita in politica interna, de regula 30-90 de zile. Abia apoi se sterg, tot pe baza unei liste aprobate. Daca Recycle Bin este activ, un cont sters mai poate fi recuperat pe durata configurata in domeniu (implicit 180 de zile).

Impact colateral

Atributul LastLogonTimestamp se replica intre controllerele de domeniu cu o intarziere de pana la aproximativ 14 zile. De aceea pragul se tine la 90 de zile sau mai mult, nu la 15-30 de zile.

Utilizatorii care lucreaza doar in Microsoft 365 (Outlook Web, Teams, OneDrive din browser) pot aparea inactivi in AD-ul local, desi lucreaza zilnic. Inainte de aprobare, verificati in Entra ID ultima autentificare in cloud pentru conturile din raport.

Un cont dezactivat in AD si sincronizat cu Entra ID este blocat si in Microsoft 365: utilizatorul nu mai are acces la mail, Teams si OneDrive. Datele raman pastrate. Conturile folosite de aplicatii, scanere sau task-uri programate, care nu au SPN si nu sunt in grupul de exceptii, pot fi dezactivate gresit si opresc serviciul respectiv. Revizuirea din Pasul 3 exista tocmai pentru a prinde aceste cazuri.

Mutarea intr-un OU nou schimba politicile GPO aplicate contului si poate scoate contul din scopul sincronizarii cu Entra ID, daca OU-ul nu este inclus.

Plan de restaurare in caz de nefunctionare

  1. Pentru un singur cont dezactivat gresit, il reactivam si il mutam inapoi in OU-ul original, folosind jurnalul din Pasul 5:
$Jurnal = Import-Csv "C:\Audit\AD\jurnal-dezactivare-2026-10-01.csv"
$c = $Jurnal | Where-Object Cont -eq "ion.popescu"

$OU_Parinte = ($c.OU_Original -split ',', 2)[1]
Enable-ADAccount -Identity $c.Cont
if ($c.DescriereOriginala) { Set-ADUser -Identity $c.Cont -Description $c.DescriereOriginala } else { Set-ADUser -Identity $c.Cont -Clear Description }
Move-ADObject -Identity (Get-ADUser $c.Cont).DistinguishedName -TargetPath $OU_Parinte
  1. Pentru toate conturile din jurnal, rulam acelasi bloc intr-o bucla foreach ($c in $Jurnal).
  2. Daca un cont a fost deja sters si Recycle Bin este activ, il recuperam cu Get-ADObject -Filter 'SamAccountName -eq "ion.popescu"' -IncludeDeletedObjects | Restore-ADObject.
  3. Dupa restaurare, contul trebuie adaugat in grupul GRP-Exceptii-Inactivitate, daca motivul inactivitatii este justificat, ca sa nu apara din nou in raportul urmator.
[mai mult...]

Script dezarhivare automata arhive multiple dintr-un folder si mutare arhive dupa dezarhivare si verificare

Urmează aceste instrucțiuni pentru a procesa toate arhivele dintr-un folder, una câte una, eliminând riscul de a pierde fișiere.

Pasul 1: Pregătirea terenului

Scriptul folosește 7-Zip pentru a citi fișierele .rar și .zip și pentru a-ți afișa procentele.Asigură-te că ai programul instalat. Dacă nu îl ai, descarcă-l gratuit de pe 7-zip.org.Lasă-l să se instaleze în calea lui standard: C:\Program Files\7-Zip.

Pasul 2: Crearea fișierului de comandă (Scriptul)

Deschide aplicația Notepad (M text) pe calculatorul tău. Copiază textul codului de aici

@echo off
setlocal enabledelayedexpansion

cd /d “%~dp0”
echo Se porneste scriptul de dezarhivare ULTRA-SIGUR…
echo =========================================================
echo.

set “7zip_path=C:\Program Files\7-Zip\7z.exe”
set “folder_siguranta=_Arhive_Procesate”

rem Verificam daca 7-Zip este instalat
if not exist “!7zip_path!” (
echo EROARE: Nu s-a gasit 7-Zip la C:\Program Files\7-Zip\7z.exe
goto final
)

rem Cream folderul de siguranta daca nu exista deja
if not exist “!folder_siguranta!” mkdir “!folder_siguranta!”

for %%F in (*.zip *.rar) do (
set “nume_arhiva=%%~nF”
set “fisier_complet=%%F”

rem Ignoram arhivele care au fost deja mutate in folderul de siguranta
if not “%%F”==”!folder_siguranta!” (
echo.
echo ———————————————————
echo [PROCESARE] Se extrage: !fisier_complet!
echo ———————————————————

if not exist “!nume_arhiva!” mkdir “!nume_arhiva!”

rem Extragere cu afisare procente (%)
“!7zip_path!” x “!fisier_complet!” -o”!nume_arhiva!” -y

if !errorlevel! equ 0 (
if exist “!nume_arhiva!” (
rem Verificam daca folderul destinatie NU este gol
dir /b /a “!nume_arhiva!” | findstr “^” >nul
if !errorlevel! equ 0 (
echo.
echo [SUCCES] Extras complet.
echo [SIGURANTA] Se muta arhiva in: !folder_siguranta!\!fisier_complet!

rem MUTARE in loc de STERGERE (Fisierele tale sunt 100% in siguranta)
move /y “!fisier_complet!” “!folder_siguranta!\” >nul
) else (
echo.
echo [ATENTIE] Folderul !nume_arhiva! este gol. Arhiva NU a fost mutata.
)
)
) else (
echo.
echo [EROARE] Extractia a esuat. Arhiva ramane pe loc.
)
)
)

:final
echo.
echo =========================================================
echo GATA! Toate arhivele au fost mutate in folderul: !folder_siguranta!
pause

și lipește-l în Notepad.

Mergi în meniul de sus la

File ➡️ Save As… (Salvare ca). La secțiunea Encoding (jos, lângă butonul de salvare), schimbă din UTF-8 în ANSI (foarte important pentru a preveni erorile).

La Save as type, selectează All Files (.). Pune-i numele dezarhivare_sigura.bat și apasă Save.

Pasul 3:Rularea și ProcesareaMută fișierul proaspăt creat (dezarhivare_sigura.bat) în folderul exact unde se află toate arhivele tale .zip și .rar.

Fă dublu-clic pe fișierul dezarhivare_sigura.bat pentru a-l lansa

Ce se va întâmpla pe ecranul tău 
Faza 1: Scanarea. O fereastră neagră se va deschide. Scriptul detectează prima arhivă din listă.
Faza 2: Extragerea. Va apărea textul [PROCESARE] și vei vedea programul cum numără în timp real progresul: 0%… 25%… 70%… 100%.
Faza 3: Verificarea. În background, scriptul se asigură că noul folder cu numele arhivei a fost creat și că conține fișierele tale (nu este gol).
Faza 4: Curățenia. Dacă totul este în regulă, pe ecran apare mesajul [SUCCES] Extras complet. Se sterge DOAR arhiva: …. În acest moment, fișierul .zip sau .rar este șters definitiv pentru a-ți elibera spațiu, iar scriptul trece automat la următoarea arhivă.

Ce se întâmplă dacă o arhivă are probleme? Dacă o arhivă este coruptă, descărcată incomplet sau dă o eroare, scriptul va afișa mesajul [EROARE]. Scutul de siguranță se activează instantaneu, dezarhivarea se oprește pentru acel fișier, iar arhiva originală NU va fi ștearsă, fiind lăsată neatinsă ca să nu pierzi nicio informație.

[mai mult...]