KRAUGH.IT / Maintenance Toolkit

Maintenance Toolkit 4.1.2

Eccezioni Winget per singolo computer

Scopo e percorso

La 4.0.6 permette all’amministratore di proteggere specifici ID dagli aggiornamenti avviati direttamente dal modulo Winget su un singolo PC. La regola non viene applicata agli altri computer.

C:\ProgramData\Kraugh\MaintenanceToolkit\exceptions\winget-exception.json

Il percorso è identico con EXE, BAT, PS1, esecuzione interattiva amministrativa o attività SYSTEM. Le versioni precedenti alla 4.0.6 ignorano il file.

1. Identifica il computer e gli ID

Usa il nome locale del destinatario senza dominio e gli ID esatti riconosciuti da Winget sulla macchina. Un nome visualizzato nell’elenco programmi non basta: verifica gli identificatori nell’export JSON Winget. Il modello seguente contiene segnaposto e non può essere usato senza adattamento.

{
  "schemaVersion": "1.0",
  "computerName": "TARGET-PC",
  "mode": "exclude_packages",
  "excludedPackageIds": [
    "Vendor.ProtectedPackage"
  ]
}

Scarica il modello JSON →

2. Crea e proteggi il file

  1. Sul PC destinatario, con privilegi amministrativi, crea la cartella exceptions nel percorso indicato e salva il JSON come UTF-8.
  2. Sostituisci TARGET-PC e gli ID segnaposto. schemaVersion deve essere la stringa 1.0.
  3. Per cartella e file imposta proprietario Administrators (SID S-1-5-32-544) oppure SYSTEM (S-1-5-18), rimuovi l’ereditarietà e assegna FullControl soltanto a questi due soggetti. Non usare collegamenti o reparse point.
  4. Verifica che SYSTEM possa leggere la policy. Il file non deve essere modificabile dagli utenti ordinari e non deve entrare nei pacchetti pubblici.

3. Scegli la modalità

ModalitàEffetto
exclude_packagesEsclude gli ID elencati; l’array deve contenere almeno un ID.
block_moduleBlocca tutto il modulo Winget; usa excludedPackageIds: []. Gli altri moduli rimangono indipendenti.

Gli ID sono confrontati senza distinzione tra maiuscole e minuscole. Wildcard, duplicati e opzioni da riga di comando non sono ammessi. Nome macchina errato, schema non supportato, JSON invalido, permessi non conformi o lettura fallita bloccano il modulo: nessun ripiego sull’aggiornamento globale.

4. Verifica il piano prima degli aggiornamenti

MT valida l’intero export JSON, esclude gli ID protetti e invoca aggiornamenti individuali con --id --exact --source --skip-dependencies, senza --all o --force. Non crea né rimuove pin permanenti. Verifica il piano in sola lettura prima di attivare la manutenzione.

Un export con codice 0 può segnalare programmi non associati a una fonte: questi programmi restano fuori dal piano. I pacchetti ammessi sono candidati installati, non necessariamente aggiornamenti disponibili. Il successo di un comando non equivale alla verifica individuale della versione installata.

5. Controlla risultati e copertura

Le eccezioni producono WARN e copertura partial, non una falsa conferma di aggiornamento completo. Consulta il riepilogo, winget-exceptions-status.json nella cartella della sessione e maintenance.data.wingetExceptions nello snapshot inventario per DMT.

Un aggiornamento MSI pilota alla 4.0.6 sotto SYSTEM ha conservato policy e task GPO. Ricontrolla la conservazione nella tua distribuzione. Le prove del piano sono state svolte in sola lettura; non certificano tutti gli installer selettivi. In caso di errore o timeout, il riepilogo può non conservare un riavvio richiesto durante il passaggio: controlla gli esiti dei singoli comandi.

Limiti della protezione

La regola controlla gli obiettivi diretti di Winget e disabilita la sua gestione delle dipendenze. Non garantisce che un installer non modifichi prerequisiti incorporati, né blocca autoaggiornamenti delle applicazioni, Microsoft Update, OEM o comandi esterni. Per sospendere tutte le operazioni del modulo scegli block_module; gli altri motori vanno valutati separatamente.

windows_update-exception.json e altre eccezioni future non sono implementati nella 4.0.6. Il comportamento di eventuali pin non bloccanti con aggiornamenti espliciti va verificato prima dell’uso.

Modifica o rimozione

Conserva un backup prima di cambiare gli ID e rivalida la policy. Per rimuovere volontariamente tutte le eccezioni archivia il file fuori da exceptions: alla successiva esecuzione riprende il flusso Winget normale. Non lasciare un file vuoto o malformato. Non eliminare o modificare la policy mentre MT sta lavorando.

Maintenance Toolkit 4.1

Novità 4.1.2. Aggiornamento MT con consenso, pianificazione SYSTEM e scelta della lingua. Il primo passaggio dalla 4.0.6 è manuale.

Il menu Languages (H) permette di scegliere italiano, inglese, francese, spagnolo, tedesco, cinese semplificato e giapponese. Le cinque nuove traduzioni coprono menu e funzioni 4.1; alcune diagnostiche storiche usano il fallback inglese. Documentazione e sito sono disponibili in italiano e inglese.

Aggiornamento MT, pianificazione SYSTEM e gestione standalone/GPO →

4.1.2: correzione verificata del rilevamento installazione

Percorsi di disinstallazione non validi di programmi estranei non bloccano più il riconoscimento di MT in Windows PowerShell 5.1. Registrazioni MT non valide restano bloccate. Sulle installazioni 4.1.1 interessate serve il passaggio manuale a MSI/ZIP verificato. I pacchetti finali firmati hanno superato installazione MSI da zero, passaggi manuali MSI/ZIP da 4.0.6 e 4.1.1 su Windows 11 / PowerShell 5.1, SelfTest installato, conservazione dati/task, rifiuto di script alterato e recupero ZIP con file bloccato. Nessuna manutenzione o riavvio automatico. Queste prove non certificano Windows 10, GPO reale/SMB aziendale o Winget selettivo reale. Le installazioni gestite restano affidate alla GPO. Disponibili sette lingue UI, con traduzioni parziali e fallback inglese; documentazione solo italiano/inglese. I pacchetti pubblici precedenti restano invariati.