- Panoramica
- Convenzioni di variabile
- Step 1: Selezione del target (/Online oppure /Image)
- Step 2: Verifica delle funzionalità (/Get-Features, /Get-FeatureInfo)
- Step 3: Abilitazione/Disabilitazione delle funzionalità (/Enable-Feature, /Disable-Feature)
- Step 4: Verifica delle Capabilities (/Get-Capabilities, /Get-CapabilityInfo)
- Step 5: Aggiunta/Rimozione di Capabilities (/Add-Capability, /Remove-Capability)
- Step 6: Ripristino immagine e gestione component store (/Cleanup-Image)
- Step 7: Informazioni sull’immagine (/Get-ImageInfo)
- Step 8: Montare e smontare immagini offline
- Step 9: Integrazione di driver, pacchetti e language pack
- Step 10: Cattura, esportazione e applicazione di immagini
- Step 11: Comandi equivalenti in PowerShell
- Riepilogo
Panoramica
In questo articolo trattiamo in parallelo DISM (Deployment Image Servicing and Management) e PowerShell (wrapper delle API DISM), organizzando per argomento le operazioni ricorrenti, le opzioni chiave e gli esempi pronti all’uso.
Convenzioni di variabile
| Variabile | Esempio | Note |
|---|---|---|
<<IMAGE_PATH>> |
C:\mount o E:\Windows |
Percorso Windows offline per /Image: (cartella montata o directory Windows su altro disco) |
<<FEATURE_NAME>> |
NetFx3 |
Nome della funzionalità di Windows |
<<CAPABILITY_NAME>> |
OpenSSH.Client~~~~0.0.1.0 |
Nome della funzionalità aggiuntiva (FoD: Features on Demand) |
<<WIM_PATH>> |
D:\sources\install.wim |
File immagine WIM/ESD |
<<INDEX>> |
1 |
Indice dell’immagine |
<<MOUNT_DIR>> |
C:\mount |
Directory di montaggio |
<<DRIVER_DIR>> |
D:\drivers |
Cartella contenente INF dei driver |
<<PACKAGE_PATH>> |
C:\Updates\kb5005565.cab |
File pacchetto di aggiornamento |
<<LANG_PACK>> |
C:\LP\ja-jp\lp.cab |
CAB del language pack |
<<SOURCE_PATH>> |
D:\sources\sxs |
Percorso sorgente (es. NetFx3) |
<<APPLY_DIR>> |
C:\ |
Destinazione di applicazione/estrazione |
<<SCRATCH_DIR>> |
C:\Temp\Scratch |
Directory di lavoro |
<<LOG_PATH>> |
C:\Temp\dism.log |
Percorso log |
Quasi tutti i comandi accettano anche
/ScratchDir:<<SCRATCH_DIR>>e/LogPath:<<LOG_PATH>>.
Step 1: Selezione del target (/Online oppure /Image)
Molti comandi DISM richiedono la specifica esplicita del target.
| Opzione | Significato | Esempio |
|---|---|---|
/Online |
Sistema Windows attualmente in esecuzione | dism /Online /Cleanup-Image /CheckHealth |
/Image:<<IMAGE_PATH>> |
Windows offline o immagine montata | dism /Image:C:\mount /Add-Driver /Driver:D:\drivers /Recurse |
Step 2: Verifica delle funzionalità (/Get-Features, /Get-FeatureInfo)
Descrizione
Elenca le funzionalità disponibili e il loro stato (Enabled / Disabled / DisabledWithPayloadRemoved).
Opzioni principali
| Opzione | Significato | Esempio |
|---|---|---|
/Online |
Target: sistema corrente | dism /Online /Get-Features |
/Image:<<IMAGE_PATH>> |
Target: ambiente offline | dism /Image:C:\mount /Get-Features |
/Get-Features |
Elenco funzionalità | dism /Online /Get-Features /Format:Table |
/Get-FeatureInfo |
Dettagli di una funzionalità | dism /Online /Get-FeatureInfo /FeatureName:NetFx3 |
/FeatureName:<<FEATURE_NAME>> |
Nome funzionalità | NetFx3 |
/Format:Table |
Uscita tabellare | dism /Online /Get-Features /Format:Table |
Esempi
# Elenca tutte le funzionalità con stato
dism /Online /Get-Features /Format:Table
# Dettagli della funzionalità NetFx3
dism /Online /Get-FeatureInfo /FeatureName:NetFx3
Se lo stato è
DisabledWithPayloadRemoved, i binari sono stati rimossi: occorre indicare/Source.
Step 3: Abilitazione/Disabilitazione delle funzionalità (/Enable-Feature, /Disable-Feature)
Descrizione
Abilita o disabilita funzionalità come .NET Framework 3.5 o SMB 1.0.
Opzioni principali
| Opzione | Significato | Esempio |
|---|---|---|
/Online |
Target: sistema corrente | dism /Online /Enable-Feature /FeatureName:NetFx3 |
/FeatureName:<<FEATURE_NAME>> |
Funzionalità da gestire | NetFx3 |
/All |
Abilita anche le dipendenze | |
/Source:<<SOURCE_PATH>> |
Sorgente per payload rimossi | dism /Online /Enable-Feature /FeatureName:NetFx3 /Source:D:\sources\sxs |
/LimitAccess |
Non usare Windows Update/WSUS | |
/Enable-Feature |
Abilita funzionalità | dism /Online /Enable-Feature /FeatureName:SMB1Protocol |
/Disable-Feature |
Disabilita funzionalità | dism /Online /Disable-Feature /FeatureName:SMB1Protocol |
/LogPath:<<LOG_PATH>> |
Log |
Esempi
# Abilita .NET Framework 3.5 da sorgente locale, senza Internet
dism /Online /Enable-Feature /FeatureName:NetFx3 /All /LimitAccess /Source:<<SOURCE_PATH>> /LogPath:<<LOG_PATH>>
# Disabilita SMB1 per rafforzare la sicurezza
dism /Online /Disable-Feature /FeatureName:SMB1Protocol /LogPath:<<LOG_PATH>>
Step 4: Verifica delle Capabilities (/Get-Capabilities, /Get-CapabilityInfo)
Descrizione
Elenca e verifica lo stato delle FoD (Features on Demand), ad es. RSAT, OpenSSH.Client, Language.Basic.
Opzioni principali
| Opzione | Significato | Esempio |
|---|---|---|
/Online |
Sistema corrente | dism /Online /Get-Capabilities |
/Image:<<IMAGE_PATH>> |
Ambiente offline | dism /Image:C:\mount /Get-Capabilities |
/Get-Capabilities |
Elenco Capabilities | dism /Online /Get-Capabilities /Format:Table |
/Get-CapabilityInfo |
Dettagli di una Capability | dism /Online /Get-CapabilityInfo /CapabilityName:OpenSSH.Client~~~~0.0.1.0 |
/Format:Table |
Uscita tabellare | dism /Online /Get-Capabilities /Format:Table |
Esempi
# Elenco completo delle Capabilities disponibili
dism /Online /Get-Capabilities /Format:Table
# Dettaglio di una Capability
dism /Online /Get-CapabilityInfo /CapabilityName:<<CAPABILITY_NAME>>
Le Capabilities si possono aggiungere tramite Windows Update, WSUS o ISO FoD/percorsi di rete.
Step 5: Aggiunta/Rimozione di Capabilities (/Add-Capability, /Remove-Capability)
Descrizione
Aggiunge o rimuove componenti on-demand come OpenSSH o gli strumenti RSAT.
Opzioni principali
| Opzione | Significato | Esempio |
|---|---|---|
/Online |
Sistema corrente | dism /Online /Add-Capability |
/CapabilityName:<<CAPABILITY_NAME>> |
Capabilità da gestire | OpenSSH.Client~~~~0.0.1.0 |
/Source:<<SOURCE_PATH>> |
Sorgente (ISO FoD o condivisione) | dism /Online /Add-Capability /CapabilityName:OpenSSH.Client~~~~0.0.1.0 /Source:D:\ /LimitAccess |
/LimitAccess |
Usa solo la sorgente specificata | |
/LogPath:<<LOG_PATH>> |
Log |
Esempi
# Aggiunge OpenSSH.Client
dism /Online /Add-Capability /CapabilityName:<<CAPABILITY_NAME>> /LogPath:<<LOG_PATH>>
# Rimuove componenti RSAT non necessari
dism /Online /Remove-Capability /CapabilityName:<<CAPABILITY_NAME>> /LogPath:<<LOG_PATH>>
Step 6: Ripristino immagine e gestione component store (/Cleanup-Image)
Descrizione
Rileva/ripara danni al WinSxS (component store) e ottimizza lo spazio.
Opzioni principali
| Opzione | Significato | Esempio |
|---|---|---|
/Online |
Sistema corrente | dism /Online /Cleanup-Image /CheckHealth |
/CheckHealth |
Verifica rapida | |
/ScanHealth |
Scansione approfondita | |
/RestoreHealth |
Riparazione | dism /Online /Cleanup-Image /RestoreHealth |
/Source:<<SOURCE_PATH>> |
Sorgente per la riparazione | |
/LimitAccess |
Evita Windows Update | |
/StartComponentCleanup |
Pulisce aggiornamenti obsoleti | |
/ResetBase |
Congela lo stato (rollback non possibile) | |
/AnalyzeComponentStore |
Analisi dimensioni store |
Esempi
# Verifica rapida
dism /Online /Cleanup-Image /CheckHealth
# Scansione completa
dism /Online /Cleanup-Image /ScanHealth
# Riparazione con sorgente locale
dism /Online /Cleanup-Image /RestoreHealth /Source:<<SOURCE_PATH>> /LimitAccess /LogPath:<<LOG_PATH>>
# Pulizia e consolidamento aggiornamenti
dism /Online /Cleanup-Image /StartComponentCleanup /ResetBase /LogPath:<<LOG_PATH>>
Step 7: Informazioni sull’immagine (/Get-ImageInfo)
Opzioni principali
| Opzione | Significato | Esempio |
|---|---|---|
/Get-ImageInfo |
Info sulle immagini in WIM/ESD | dism /Get-ImageInfo /ImageFile:install.wim |
/ImageFile:<<WIM_PATH>> |
File WIM target | |
/Index:<<INDEX>> |
Indice da interrogare | |
/LogPath:<<LOG_PATH>> |
Log |
Esempio
# Verifica edizioni e indici di install.wim
dism /Get-ImageInfo /ImageFile:<<WIM_PATH>> /LogPath:<<LOG_PATH>>
Step 8: Montare e smontare immagini offline
Opzioni principali
| Opzione | Significato | Esempio |
|---|---|---|
/Mount-Wim |
Monta WIM | |
/WimFile:<<WIM_PATH>> |
File WIM di origine | |
/Index:<<INDEX>> |
Indice da montare | |
/MountDir:<<MOUNT_DIR>> |
Cartella di montaggio | |
/ReadOnly |
Montaggio in sola lettura | |
/Get-MountedWimInfo |
Stato dei montaggi | |
/Unmount-Wim |
Smonta | |
/Commit |
Salva modifiche | |
/Discard |
Scarta modifiche |
Esempi
# Monta per la modifica
dism /Mount-Wim /WimFile:<<WIM_PATH>> /Index:<<INDEX>> /MountDir:<<MOUNT_DIR>>
# Verifica stato di montaggio
dism /Get-MountedWimInfo
# Salva e smonta
dism /Unmount-Wim /MountDir:<<MOUNT_DIR>> /Commit
Step 9: Integrazione di driver, pacchetti e language pack
Opzioni principali
| Opzione | Significato | Esempio |
|---|---|---|
/Online |
Target: sistema corrente | |
/Image:<<MOUNT_DIR>> |
Target: immagine offline | |
/Add-Driver |
Aggiunge driver | |
/Driver:<<DRIVER_DIR>> |
Cartella INF | |
/Recurse |
Include sottocartelle | |
/Add-Package |
Aggiunge aggiornamenti/L.P. | |
/PackagePath:<<PACKAGE_PATH>> |
Percorso pacchetto | |
/Set-AllIntl:ja-JP |
Imposta locale/lingua |
Note:
/Add-Driverè solo offline./Add-Packagee/Set-AllIntlsono possibili sia online sia offline.
Esempi
# Integrazione driver
dism /Image:<<MOUNT_DIR>> /Add-Driver /Driver:<<DRIVER_DIR>> /Recurse
# Integrazione aggiornamenti
dism /Image:<<MOUNT_DIR>> /Add-Package /PackagePath:<<PACKAGE_PATH>>
# Aggiunta language pack e locale
dism /Image:<<MOUNT_DIR>> /Add-Package /PackagePath:<<LANG_PACK>>
dism /Image:<<MOUNT_DIR>> /Set-AllIntl:ja-JP
Step 10: Cattura, esportazione e applicazione di immagini
Opzioni principali
| Opzione | Significato | Esempio |
|---|---|---|
/Capture-Image |
Cattura una cartella in WIM | |
/ImageFile:<<WIM_PATH>> |
Output WIM | |
/CaptureDir:<<APPLY_DIR>> |
Directory sorgente | |
/Name:"<nome>" |
Nome immagine | |
/Export-Image |
Esporta/comprime WIM esistente | |
/Apply-Image |
Applica WIM | |
/Compress:max |
Compressione massima | |
/ApplyDir:<<APPLY_DIR>> |
Directory di destinazione |
Esempi
# Cattura configurazione corrente
dism /Capture-Image /ImageFile:D:\Custom.wim /CaptureDir:<<APPLY_DIR>> /Name:"Custom Image"
# Esporta con massima compressione
dism /Export-Image /SourceImageFile:<<WIM_PATH>> /SourceIndex:<<INDEX>> /DestinationImageFile:D:\install_compressed.wim /Compress:max
# Applica l’immagine
dism /Apply-Image /ImageFile:<<WIM_PATH>> /Index:<<INDEX>> /ApplyDir:<<APPLY_DIR>>
Step 11: Comandi equivalenti in PowerShell
Tabella di corrispondenza
| Ambito | Comando DISM | Cmdlet PowerShell | Scopo |
|---|---|---|---|
| Funzionalità (lista/dettagli) | /Get-Features, /Get-FeatureInfo |
Get-WindowsOptionalFeature |
Elenco e dettaglio |
| Abilita/Disabilita funzionalità | /Enable-Feature, /Disable-Feature |
Enable-WindowsOptionalFeature, Disable-WindowsOptionalFeature |
Gestione feature |
| Capabilities (lista/dettagli) | /Get-Capabilities, /Get-CapabilityInfo |
Get-WindowsCapability |
Elenco e dettaglio |
| Aggiungi/Rimuovi Capabilities | /Add-Capability, /Remove-Capability |
Add-WindowsCapability, Remove-WindowsCapability |
FoD |
| Pacchetti (info/integrazione) | /Get-Packages, /Add-Package |
Get-WindowsPackage, Add-WindowsPackage |
Aggiornamenti/L.P. |
| Driver (info/integrazione/rimozione) | /Get-Drivers, /Add-Driver, /Remove-Driver |
Get-WindowsDriver, Add-WindowsDriver, Remove-WindowsDriver |
Soprattutto offline |
| Info/Monte WIM | /Get-ImageInfo, /Mount-Wim, /Unmount-Wim |
Get-WindowsImage, Mount-WindowsImage, Dismount-WindowsImage |
Gestione WIM |
11.1 Funzionalità (Features)
Get-WindowsOptionalFeature
| Opzione | Significato | Esempio |
|---|---|---|
-Online |
Sistema corrente | Get-WindowsOptionalFeature -Online -FeatureName <<FEATURE_NAME>> |
-Path <<IMAGE_PATH>> |
Target offline | Get-WindowsOptionalFeature -Path <<IMAGE_PATH>> |
-FeatureName <<FEATURE_NAME>> |
Nome funzionalità | -FeatureName NetFx3 |
# Elenco (online)
Get-WindowsOptionalFeature -Online
# Dettaglio (offline)
Get-WindowsOptionalFeature -Path <<IMAGE_PATH>> -FeatureName <<FEATURE_NAME>>
Enable-/Disable-WindowsOptionalFeature
| Opzione | Significato | Esempio |
|---|---|---|
-Online / -Path <<IMAGE_PATH>> |
Selezione target | Enable-WindowsOptionalFeature -Online |
-FeatureName <<FEATURE_NAME>> |
Nome funzionalità | -FeatureName NetFx3 |
-All |
Includi dipendenze | -All |
-Source <<SOURCE_PATH>> |
Sorgente payload | -Source <<SOURCE_PATH>> |
# Abilita NetFx3 con sorgente
Enable-WindowsOptionalFeature -Online -FeatureName NetFx3 -All -Source <<SOURCE_PATH>>
# Disabilita SMB1
Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
11.2 Capabilities
Get-WindowsCapability
| Opzione | Significato | Esempio |
|---|---|---|
-Online |
Sistema corrente | Get-WindowsCapability -Online |
-Name <<CAPABILITY_NAME>> |
Supporta wildcard | Get-WindowsCapability -Online -Name OpenSSH.* |
-Path <<IMAGE_PATH>> |
Target offline | Get-WindowsCapability -Path <<IMAGE_PATH>> |
# Elenco (online)
Get-WindowsCapability -Online
# Filtro su una capability
Get-WindowsCapability -Online -Name <<CAPABILITY_NAME>>
Add-/Remove-WindowsCapability
| Opzione | Significato | Esempio |
|---|---|---|
-Online / -Path <<IMAGE_PATH>> |
Target | Add-WindowsCapability -Online |
-Name <<CAPABILITY_NAME>> |
Nome capability | -Name OpenSSH.Client~~~~0.0.1.0 |
-Source <<SOURCE_PATH>> |
Sorgente FoD | -Source <<SOURCE_PATH>> |
# Aggiunta (online, con sorgente se necessario)
Add-WindowsCapability -Online -Name <<CAPABILITY_NAME>>
# Rimozione
Remove-WindowsCapability -Online -Name <<CAPABILITY_NAME>>
11.3 Pacchetti (aggiornamenti e language pack)
Get-WindowsPackage
| Opzione | Significato | Esempio |
|---|---|---|
-Online / -Path <<IMAGE_PATH>> |
Target | Get-WindowsPackage -Online |
-PackagePath <<PACKAGE_PATH>> |
Info su un pacchetto | Get-WindowsPackage -Online -PackagePath <<PACKAGE_PATH>> |
# Elenca pacchetti installati (online)
Get-WindowsPackage -Online
Add-WindowsPackage
| Opzione | Significato | Esempio |
|---|---|---|
-Online / -Path <<IMAGE_PATH>> |
Target | Add-WindowsPackage -Online -PackagePath <<PACKAGE_PATH>> |
-PackagePath <<PACKAGE_PATH>> |
.cab (consigliato) / .msu |
# Integrazione aggiornamento (online)
Add-WindowsPackage -Online -PackagePath <<PACKAGE_PATH>>
# Integrazione language pack (offline)
Add-WindowsPackage -Path <<IMAGE_PATH>> -PackagePath <<LANG_PACK>>
11.4 Driver
Get-WindowsDriver
| Opzione | Significato | Esempio |
|---|---|---|
-Online / -Path <<IMAGE_PATH>> |
Target | Get-WindowsDriver -Path <<IMAGE_PATH>> |
-All |
Mostra tutti i driver | -All |
# Elenca i driver di un’immagine offline
Get-WindowsDriver -Path <<IMAGE_PATH>> -All
Add-/Remove-WindowsDriver
| Opzione | Significato | Esempio |
|---|---|---|
-Path <<IMAGE_PATH>> |
Target immagine | Add-WindowsDriver -Path <<IMAGE_PATH>> -Driver <<DRIVER_DIR>> -Recurse |
-Driver <<DRIVER_DIR>> |
Cartella INF | |
-Recurse |
Include sottocartelle | |
-Driver <<oem*.inf>> (Remove) |
INF da rimuovere | Remove-WindowsDriver -Path <<IMAGE_PATH>> -Driver oem1.inf |
# Aggiunta (offline)
Add-WindowsDriver -Path <<IMAGE_PATH>> -Driver <<DRIVER_DIR>> -Recurse
# Rimozione (offline)
Remove-WindowsDriver -Path <<IMAGE_PATH>> -Driver oem1.inf
Importante:
Add-/Remove-WindowsDrivernon supporta-Online; l’uso corretto è offline.
11.5 Info e montaggio immagini
Get-WindowsImage
| Opzione | Significato | Esempio |
|---|---|---|
-ImagePath <<WIM_PATH>> |
Percorso WIM/ESD | Get-WindowsImage -ImagePath <<WIM_PATH>> |
-Index <<INDEX>> |
Solo indice specifico | -Index <<INDEX>> |
# Elenco indici di install.wim
Get-WindowsImage -ImagePath <<WIM_PATH>>
Mount-/Dismount-WindowsImage
| Opzione | Significato |
|---|---|
-ImagePath <<WIM_PATH>> |
WIM sorgente |
-Index <<INDEX>> |
Indice da montare |
-Path <<MOUNT_DIR>> |
Cartella di montaggio |
-ReadOnly |
Montaggio in sola lettura |
-ScratchDirectory <<SCRATCH_DIR>> |
Directory di lavoro |
-Save (Dismount) |
Salva modifiche |
-Discard (Dismount) |
Scarta modifiche |
# Monta
Mount-WindowsImage -ImagePath <<WIM_PATH>> -Index <<INDEX>> -Path <<MOUNT_DIR>>
# Salva e smonta
Dismount-WindowsImage -Path <<MOUNT_DIR>> -Save
Riepilogo
- DISM: gestione di basso livello di componenti OS, WIM, aggiornamenti e driver.
- PowerShell (API DISM): stesse capacità con scripting per inventariare, selezionare e automatizzare.
- Capabilities (FoD): funzionalità on-demand (OpenSSH, RSAT, language pack).
