Cum actualizezi toate programele instalate in Windows cu o singura comanda

Configurare noua (How To)

Situatie

Pe o statie de lucru Windows sunt instalate zeci de aplicatii: browser, PDF reader, arhivator, player video, utilitare. Fiecare are propriul mecanism de actualizare, iar multe nu se actualizeaza automat sau cer confirmarea utilizatorului. Rezultatul este un PC plin de aplicatii vechi, cu vulnerabilitati deja cunoscute si publicate, iar verificarea manuala a fiecarui program consuma mult timp.

Windows include insa un manager de pachete oficial, winget (Windows Package Manager), cu care toate aplicatiile suportate pot fi listate si actualizate dintr-o singura comanda, fara sa cautam manual fiecare instalator pe internet.

Backup

Inainte de o actualizare in masa:

  1. Creati un punct de restaurare (PowerShell rulat ca Administrator):
    Checkpoint-Computer -Description "Inainte de winget upgrade" -RestorePointType MODIFY_SETTINGS
  2. Salvati lista aplicatiilor instalate si versiunile lor curente, ca sa puteti reveni la o versiune anume:
    winget list > "%USERPROFILE%\Desktop\aplicatii-inainte.txt"
  3. Inchideti aplicatiile care urmeaza sa fie actualizate (browser, client de mail, Office). Instalarea peste o aplicatie deschisa poate esua sau poate cere restart.

Solutie

Pasi de urmat

Pasul 1 – Verificam ca winget este disponibil

Deschidem PowerShell sau Terminal si rulam:

winget --version

Daca apare un numar de versiune (ex. v1.9.x), totul este in regula. Daca primim eroarea “winget is not recognized”, inseamna ca lipseste pachetul App Installer: il instalam sau il actualizam din Microsoft Store, apoi inchidem si redeschidem terminalul. Pe Windows 11 si pe Windows 10 versiunea 1809 sau mai noua, complet actualizat, winget este deja preinstalat.

La prima rulare winget cere acceptarea termenilor sursei de pachete – raspundem cu Y.

Pasul 2 – Vedem ce se poate actualiza

winget upgrade

Comanda afiseaza un tabel cu coloanele Name, Id, Version, Available si Source: aplicatia, identificatorul ei unic, versiunea instalata si versiunea disponibila. Identificatorul din coloana Id (ex. Mozilla.Firefox, 7zip.7zip, VideoLAN.VLC) este cel pe care il folosim in comenzile urmatoare.

La finalul listei apare uneori mesajul ca exista aplicatii cu versiune necunoscuta. Sunt programe instalate manual, pentru care winget nu poate citi versiunea din registri. Le vedem cu:

winget upgrade --include-unknown

Pasul 3 – Actualizam o singura aplicatie (recomandat prima data)

Inainte de o actualizare in masa, este bine sa testam pe o aplicatie:

winget upgrade --id Mozilla.Firefox

Optiunea --id face potrivirea exacta pe identificator. Fara ea, winget cauta si dupa nume si poate gasi mai multe rezultate, caz in care ne cere sa fim mai specifici.

Daca vrem ca instalarea sa ruleze fara ferestre si fara clickuri:

winget upgrade --id Mozilla.Firefox --silent --accept-package-agreements --accept-source-agreements

Pasul 4 – Actualizam toate aplicatiile dintr-o singura comanda

winget upgrade --all --silent --accept-package-agreements --accept-source-agreements

Semnificatia optiunilor:

  • --all – actualizeaza tot ce apare in lista de la Pasul 2;
  • --silent – instalare tacuta, fara ferestre de dialog;
  • --accept-package-agreements si --accept-source-agreements – accepta automat licentele, altfel comanda se opreste si asteapta raspuns.

Daca vrem sa includem si aplicatiile cu versiune necunoscuta, adaugam --include-unknown. Atentie: acestea se reinstaleaza complet, deci procesul dureaza mai mult.

winget upgrade --all --include-unknown --silent --accept-package-agreements --accept-source-agreements

Pasul 5 – Excludem aplicatiile care nu trebuie actualizate (pin)

Exista aplicatii care trebuie sa ramana pe o versiune anume, pentru ca o aplicatie interna depinde de ea. Le blocam cu pin, iar --all le va sari:

winget pin add --id Oracle.JavaRuntimeEnvironment

Verificam lista blocajelor:

winget pin list

Cand blocajul nu mai este necesar:

winget pin remove --id Oracle.JavaRuntimeEnvironment

Pasul 6 – Programam actualizarea automata saptamanala

Ca sa nu tinem minte sa rulam comanda, o programam in Task Scheduler. Intr-un PowerShell rulat ca Administrator:

schtasks /create /tn "Winget Update Saptamanal" /tr "powershell -NoProfile -WindowStyle Hidden -Command \"winget upgrade --all --silent --accept-package-agreements --accept-source-agreements\"" /sc weekly /d MON /st 12:00 /rl highest /f

Verificam ca task-ul a fost creat si il putem rula manual pentru test:

schtasks /query /tn "Winget Update Saptamanal"
schtasks /run /tn "Winget Update Saptamanal"

Daca task-ul trebuie sters:

schtasks /delete /tn "Winget Update Saptamanal" /f

Observatie: task-ul ruleaza doar cand statia este pornita. Din Task Scheduler putem bifa optiunea de a rula task-ul cat mai repede dupa o rulare ratata.

Tip solutie

Permanent

Impact colateral

Actualizarea unei aplicatii o poate inchide fortat, deci munca nesalvata din ea se pierde. Rulati comanda cand nu lucrati in aplicatiile respective.
Unele instalari resteaza asocierile de fisiere sau browserul implicit, iar altele cer restart de sistem.
Aplicatiile instalate din Microsoft Store se actualizeaza prin sursa msstore, nu prin winget; nu apar in lista daca Store-ul le-a actualizat deja.
Aplicatiile instalate de administrator pentru toti utilizatorii cer terminal rulat ca Administrator, altfel actualizarea esueaza cu eroare de permisiuni.
Nu rulati --all pe servere de productie in timpul programului de lucru: unele pachete opresc servicii in timpul instalarii.

Plan de restaurare in caz de nefunctionare

Daca dupa actualizare o aplicatie nu mai functioneaza corect:

  1. Identificam versiunea veche in fisierul salvat la Plan de backup (aplicatii-inainte.txt).
  2. Verificam ce versiuni sunt disponibile pentru pachet:
    winget show --id Mozilla.Firefox --versions
  3. Instalam inapoi versiunea care functiona:
    winget install --id Mozilla.Firefox --version 128.0 --force
  4. Blocam pachetul, ca sa nu fie actualizat din nou la urmatoarea rulare:
    winget pin add --id Mozilla.Firefox
  5. Daca problema este la nivel de sistem, revenim la punctul de restaurare creat inainte de actualizare (System Restore).

Voteaza

(7 din 9 persoane apreciaza acest articol)

Despre Autor

Leave A Comment?