Potresti aver riscontrato un problema durante la riparazione di un'immagine Windows con DISM in modalità online tramite WUA. WAPT sta bloccando l'operazione. Probabilmente lo strumento deve utilizzare WSU.
Ecco un piccolo pacchetto che consente di aggirare il problema, a patto di preparare un'immagine con la versione corretta.
Ciò include anche un rapido controllo per segnalare eventuali danneggiamenti del sistema.
Codice: Seleziona tutto
# -*- coding: utf-8 -*-
from setuphelpers import *
def install():
if force:
if not isdir(r'c:\tmp'):
mkdirs(r'c:\tmp')
winver = windows_version(4)
with open(r"c:\tmp\install.wim", "wb") as file:
with WAPT.waptserver.get_requests_session(use_ssl_auth=True) as session:
with session.get("%s/%s" % (WAPT.waptserver.server_url, f"wapt/scripts/dism/{winver}.wim"),
timeout=WAPT.waptserver.timeout,
auth=None,
allow_redirects=True,
stream=True) as response:
if response.status_code == 404:
error(f'Version {winver} non gérée, merci de prendre contact avec le mainteneur')
for chunk in response.iter_content(chunk_size=8192):
file.write(chunk)
print(run('DISM /Online /Cleanup-image /Scanhealth', timeout=900))
print(run(r'DISM /Online /Cleanup-image /Restorehealth /Source:wim:c:\tmp\install.wim:1 /LimitAccess', timeout=900))
print(run('sfc /scannow', timeout=900))
remove_file(r'c:\tmp\install.win')
def audit():
dism = run('DISM /Online /Cleanup-image /CheckHealth')
print(dism)
if "réparable" in dism:
return "WARNING"
else:
return("OK")
Recupera il file install.wim originale da un'immagine ISO
Montare l'ISO su Windows e quindi copiare il file X:\Sources\install.wim
Quindi esportare solo la versione Windows Pro utilizzando il comando
Dism /Export-Image /SourceImageFile:"C:\install.wim" /SourceIndex:6 /DestinationImageFile:"C:\origin.wim"
È anche possibile recuperare il file WIM generato in precedenza, in modo che gli aggiornamenti richiedano meno tempo
Per fare ciò, basta copiare il vecchio file wim in origin.wim
Genera un'immagine cumulativa
Se necessario, creare la cartella c:\mount
Carica immagine
Mount-WindowsImage -Path C:\mount -ImagePath c:\origin.wim -Index 1
Scarica il rapporto cumulativo su https://www.catalog.update.microsoft.co ... -framework
È necessario solo uno dei due pacchetti, quello più grande
Aggiungere il cumulativo all'immagine
Aggiungi-WindowsPackage -percorso c:\mount -PackagePath C:\windows11.0-kbxxxxx-xxxxxxxxxxxxxxxxxxxxxxxxxxx.msu
Salva immagine
Dismount-WindowsImage -Path C:\mount -Save
Esportare l'immagine, specificando il numero di versione di Windows, ad esempio 10.0.26100.7623
DISM.exe /Export-Image /SourceImageFile:c:\origin.wim /DestinationImageFile:c:\number_version_windows.wim /SourceIndex:1
Il file origin.wim deve essere rigenerato prima di poter essere riutilizzato
Copia il file risultante sul server Wapt in /var/www/wapt/scripts/dism
Ricordati di assegnare i diritti a www-data
