OSDBuilder es un módulo PowerShell creado por David Segura que permite hacer offline servicing de la imagen WIM de un sistema operativo Windows (Windows 10, Windows 2016, Windows 2019).
La principal ventaja de OSDBuilder respecto a otros métodos existentes para actualizar una imagen WIM es el uso de tareas (Tasks) que se pueden ejecutar de forma desatendida cuando sea necesario (por ejemplo cada Patch Tuesday).
Estas tareas permiten instalar actualizaciones (CU, SSU, .NET, etc.), habilitar y deshabilitar características de Windows, eliminar aplicaciones universales que no se necesiten, agregar múltiples paquetes de lenguajes, etc.
La imagen WIM resultante se puede utilizar en multiples escenarios:
- Crear un fichero ISO para instalar el SO en una máquina virtual
- Crear un USB para instalar el SO en un equipo físico
- Importarla en Microsoft Deployment Toolkit (MDT) para desplegarla de forma automatizada usando LTI, ZTI o UDI
- Importarla en Microsoft Endpoint Manager: Configuration Manager (MEMCM), el antiguo SCCM o Config Manager, para lo mismo
- Etc.
La instalación de OSDBuilder se realiza de la siguiente manera:
- Ejecutar PowerShell desde una cuenta con permisos de Administrador
- Ejecutar el cmdlet
Install-Module
para instalar desde la PowerShell Gallery:
Install-Module -Name OSDBuilder -Force
Nota: Si hubiese algún problema para descargar el módulo es recomendable revisar la configuración del cifrado TLS 1.2 en PowerShell (ver Anexo).
- Cerrar y abrir PowerShell para que cargue los nuevos módulos instalados
OSDBuilder también instalará dos módulos complementarios:
- OSDSUS, el módulo que contiene el catálogo de actualizaciones de WSUS (también usado por OSDUpdate y por WIMWitch de Donna Ryan)
- OSD, un módulo con funciones auxiliares que pueden ser de utilidad durante el despliegue de un sistema operativo
Antes de comenzar a utilizar OSDBuilder, es recomendable configurar el entorno de trabajo para indicarle dónde se crearán los directorios para el contenido, las actualizaciones, los sistemas operativos, etc.
En esta documentación se cambiará el directorio por defecto de OSDBuilder (C:\OSDBuilder
) a otro disco con más espacio y más rápido (V:\OSDBuilder
) mediante el siguiente comando:
# Cambiar el directorio raíz de OSDBuilder sin crearlo todavía
OSDBuilder -SetPath V:\OSDBuilder
Al ejecutar el comando anterior se puede observar que OSDBuilder indica los directorios para cada tipo de contenido:
PS C:\WINDOWS\system32> OSDBuilder -SetPath V:\OSDBuilder
VERBOSE: Initializing OSDBuilder ...
OSDBuilder 20.7.6.1 | OSDSUS 20.9.8.1 | OSD 20.8.19.1
Home V:\OSDBuilder
-Content V:\OSDBuilder\Content
-ContentPacks V:\OSDBuilder\ContentPacks
-FeatureUpdates V:\OSDBuilder\FeatureUpdates
-OSImport V:\OSDBuilder\OSImport
-OSMedia V:\OSDBuilder\OSMedia
-OSBuilds V:\OSDBuilder\OSBuilds
-PEBuilds V:\OSDBuilder\PEBuilds
-Mount V:\OSDBuilder\Mount
-Tasks V:\OSDBuilder\Tasks
-Templates V:\OSDBuilder\Templates
-Updates V:\OSDBuilder\Updates
Aunque ahora ya se podría comenzar a trabajar con OSDBuilder, se puede afinar aún más la configuración para tener diferentes entornos (Dev y Prod) que compartan contenido (Share) y así minimizar el espacio en disco.
Esto se consigue creando un fichero de configuración global OSDBuilder.json
en el directorio C:\ProgramData\OSDeploy
. El contenido de este fichero es el siguiente:
{
"PathContent": "V:\\OSDBuilder\\Share\\Content",
"PathContentPacks": "V:\\OSDBuilder\\Share\\ContentPacks",
"PathFeatureUpdates": "V:\\OSDBuilder\\Share\\FeatureUpdates",
"PathOSImport": "V:\\OSDBuilder\\Share\\OSImport",
"PathOSMedia": "V:\\OSDBuilder\\Share\\OSMedia",
"PathMount": "V:\\OSDBuilder\\Share\\Mount",
"PathUpdates": "V:\\OSDBuilder\\Share\\Updates"
}
Si se inicializa OSDBuilder se puede observar que algunos directorios (los indicados en el fichero OSDBuilder.json
) han cambiado su ubicación:
PS C:\WINDOWS\system32> Get-OSDBuilder -Initialize
VERBOSE: Initializing OSDBuilder ...
OSDBuilder 20.7.6.1 | OSDSUS 20.9.8.1 | OSD 20.8.19.1
Home V:\OSDBuilder
-Content V:\OSDBuilder\Share\Content
-ContentPacks V:\OSDBuilder\Share\ContentPacks
-FeatureUpdates V:\OSDBuilder\Share\FeatureUpdates
-OSImport V:\OSDBuilder\Share\OSImport
-OSMedia V:\OSDBuilder\Share\OSMedia
-OSBuilds V:\OSDBuilder\OSBuilds
-PEBuilds V:\OSDBuilder\PEBuilds
-Mount V:\OSDBuilder\Share\Mount
-Tasks V:\OSDBuilder\Tasks
-Templates V:\OSDBuilder\Templates
-Updates V:\OSDBuilder\Share\Updates
Nota: El fichero
OSDBuilder.json
se puede utilizar no solo para indicar los directorios de trabajo sino para fijar cualquier valor del entorno indicado en la variable$SetOSDBuilder
.
A continuación se procede a crear los directorios correspondientes a los diferentes entornos (Dev y Prod) y unos scripts auxiliares para cambiar a cada uno de ellos.
- Crear los directorios correspondientes a los diferentes entornos:
New-Item -Force -ItemType Directory -Path V:\OSDBuilder
New-Item -Force -ItemType Directory -Path V:\OSDBuilder\Share
New-Item -Force -ItemType Directory -Path V:\OSDBuilder\Dev
New-Item -Force -ItemType Directory -Path V:\OSDBuilder\Prod
- Crear un fichero
SetHome.ps1
en los directoriosDev
yProd
con el siguiente contenido:
OSDBuilder -SetHome $PSScriptRoot
Pause
Cada vez que se quiera cambiar de entorno de trabajo (Dev y Prod) será necesario:
- Ejecutar el script
SetHome.ps1
del entorno con el que se quiere trabajar usando la opción Run with PowerShell del Explorador de archivos
Por ejemplo, después de ejecutar el script del directorio Prod
, el entorno queda preparado de la siguiente manera:
PS C:\WINDOWS\system32> Get-OSDBuilder
VERBOSE: Initializing OSDBuilder ...
OSDBuilder 20.7.6.1 | OSDSUS 20.9.8.1 | OSD 20.8.19.1
Home V:\OSDBuilder\Prod
-Content V:\OSDBuilder\Share\Content
-ContentPacks V:\OSDBuilder\Share\ContentPacks
-FeatureUpdates V:\OSDBuilder\Share\FeatureUpdates
-OSImport V:\OSDBuilder\Share\OSImport
-OSMedia V:\OSDBuilder\Share\OSMedia
-OSBuilds V:\OSDBuilder\Prod\OSBuilds
-PEBuilds V:\OSDBuilder\Prod\PEBuilds
-Mount V:\OSDBuilder\Share\Mount
-Tasks V:\OSDBuilder\Prod\Tasks
-Templates V:\OSDBuilder\Prod\Templates
-Updates V:\OSDBuilder\Share\Updates
A continuación ya se puede abrir PowerShell como Administrador y ejecutar Get-OSDBuilder
para crear la estructura interna de los directorios:
Get-OSDBuilder -CreatePaths
Nota: Si se observa la estructura de directorios interna mediante el comando
tree.exe V:\OSDBuilder
se pueden ver los directorios para las tareas, las plantillas, los SO importados, los scripts, los paquetes de lenguaje, etc.
V:\OSDBuilder>tree
Folder PATH listing for volume DISK_V
Volume serial number is XXXXXXXX XXXX:XXXX
V:.
├───Dev
├───Prod
│ ├───OSBuilds
│ ├───PEBuilds
│ ├───Tasks
│ └───Templates
└───Share
├───Content
│ ├───ADK
│ │ ├───Windows 10 1903
│ │ │ └───Windows Preinstallation Environment
│ │ └───Windows 10 2004
│ │ └───Windows Preinstallation Environment
│ ├───DaRT
│ │ └───DaRT 10
│ ├───Drivers
│ ├───ExtraFiles
│ ├───IsoExtract
│ │ ├───Windows 10 1903 FOD x64
│ │ ├───Windows 10 1903 Language
│ │ ├───Windows 10 2004 FOD x64
│ │ ├───Windows 10 2004 Language
│ │ ├───Windows Server 2019 1809 FOD x64
│ │ └───Windows Server 2019 1809 Language
│ ├───OneDrive
│ ├───Packages
│ ├───Scripts
│ ├───StartLayout
│ └───Unattend
├───ContentPacks
│ └───_Global
│ ├───Media
│ │ ├───ALL
│ │ └───x64
│ ├───OSCapability
│ │ ├───1903 x64
│ │ ├───1903 x64 RSAT
│ │ ├───1909 x64
│ │ ├───1909 x64 RSAT
│ │ ├───2004 x64
│ │ └───2004 x64 RSAT
│ ├───OSDrivers
│ │ ├───ALL
│ │ └───x64
│ ├───OSExtraFiles
│ │ ├───ALL
│ │ ├───ALL Subdirs
│ │ ├───x64
│ │ └───x64 Subdirs
│ ├───OSLanguageFeatures
│ │ ├───1903 x64
│ │ ├───1909 x64
│ │ └───2004 x64
│ ├───OSLanguagePacks
│ │ ├───1903 x64
│ │ ├───1909 x64
│ │ └───2004 x64
│ ├───OSLocalExperiencePacks
│ │ ├───1903 x64
│ │ ├───1909 x64
│ │ └───2004 x64
│ ├───OSPackages
│ │ ├───1903 x64
│ │ ├───1909 x64
│ │ └───2004 x64
│ ├───OSPoshMods
│ │ ├───ProgramFiles
│ │ └───System
│ ├───OSRegistry
│ │ ├───ALL
│ │ └───x64
│ ├───OSScripts
│ │ ├───ALL
│ │ └───x64
│ ├───OSStartLayout
│ │ ├───ALL
│ │ └───x64
│ ├───PEADK
│ │ ├───1903 x64
│ │ ├───1909 x64
│ │ └───2004 x64
│ ├───PEADKLang
│ │ ├───1903 x64
│ │ ├───1909 x64
│ │ └───2004 x64
│ ├───PEDaRT
│ ├───PEDrivers
│ │ ├───ALL
│ │ └───x64
│ ├───PEExtraFiles
│ │ ├───ALL
│ │ ├───ALL Subdirs
│ │ ├───x64
│ │ └───x64 Subdirs
│ ├───PEPoshMods
│ │ ├───ProgramFiles
│ │ └───System
│ ├───PERegistry
│ │ ├───ALL
│ │ └───x64
│ └───PEScripts
│ ├───ALL
│ └───x64
├───FeatureUpdates
├───Mount
├───OSImport
├───OSMedia
└───Updates
Para comenzar a trabajar con OSDBuilder es esencial importar los Sistemas Operativos (OSMedia) a los que se aplicarán las tareas de configuración y actualización.
Antes de importar un Sistema Operativo es necesario montar el ISO que lo contiene utilizando el cmdlet Mount-DiskImage
:
# Directorio que contiene los ISO de Windows 10
$WindowsISO = "E:\EQUIPS\ISOs\Win10"
# Windows 10 1903
Mount-DiskImage -ImagePath "$WindowsISO\1903\SW_DVD9_Win_Pro_10_1903_64BIT_Spanish_Pro_Ent_EDU_N_MLF_X22-02936.iso"
# Windows 10 1909
Mount-DiskImage -ImagePath "$WindowsISO\1909\SW_DVD9_Win_Pro_10_1909_64BIT_Spanish_Pro_Ent_EDU_N_MLF_X22-17418.iso"
# Windows 10 2004
Mount-DiskImage -ImagePath "$WindowsISO\2004\SW_DVD9_Win_Pro_10_2004.1_64BIT_Spanish_Pro_Ent_EDU_N_MLF_-2_X22-31428.iso"
# Directorio que contiene los ISO
$ISOs = "E:\EQUIPS\ISOs"
# Windows Server 2016
Mount-DiskImage -ImagePath "$ISOs\Win2016\SW_DVD9_Win_Server_STD_CORE_2016_64Bit_English_-4_DC_STD_MLF_X21-70526.iso"
# Windows Server 2019
Mount-DiskImage -ImagePath "$ISOs\Win2019\SW_DVD9_Win_Server_STD_CORE_2019_64Bit_English_DC_STD_MLF_X21-96581.iso"
Nota: Si tenemos más de un ISO en un directorio concreto y queremos montarlos todos al mismo tiempo se puede usar el cmdlet
Get-ChildItem
de PowerShell:
# Directorio que contiene los ISO de Windows 10
$WindowsISO = "E:\EQUIPS\ISOs\Win10"
# Montar todos los ISO que se encuentren por debajo
Get-ChildItem -Path "$WindowsISO" *.iso -Recurse | ForEach-Object {Mount-DiskImage -ImagePath $_.FullName}
Para importar un sistema operativo (OSMedia) se utiliza el cmdlet Import-OSMedia
:
Import-OSMedia
Este comando analiza las unidades montadas desde los ISO en búsqueda de sistemas operativos Windows. A continuación los muestra en una GridView desde la que se pueden seleccionar aquellos que se quieren importar.
Nota: Desde hace unos años, los ISO de Windows 10 incorporan diferentes ediciones del Sistema Operativo. En nuestro caso hay que importar la edición Education (equivale a la versión Enterprise en entornos educativos) o la Pro Education (necesaria para las activaciones nominales de Windows).
PS C:\WINDOWS\system32> Import-OSMedia
2020-09-24-131406 Validating OSDBuilder Content
2020-09-24-131406 Validating Administrator Rights and Elevation
========================================================================================
2020-09-24-131406 Media: Scan F:\Sources\install.wim
ImageIndex 1: Windows 10 Education
ImageIndex 2: Windows 10 Education N
ImageIndex 3: Windows 10 Enterprise
ImageIndex 4: Windows 10 Enterprise N
ImageIndex 5: Windows 10 Pro
ImageIndex 6: Windows 10 Pro N
ImageIndex 7: Windows 10 Pro Education
ImageIndex 8: Windows 10 Pro Education N
ImageIndex 9: Windows 10 Pro for Workstations
ImageIndex 10: Windows 10 Pro N for Workstations
(...)
También es posible importar una EditionId concreta sin necesidad de seleccionarla de una lista, por ejemplo:
# Ediciones 'Education' de Windows 10
Import-OSMedia -EditionId Education -SkipGrid
# Ediciones 'Pro Education' de Windows 10
Import-OSMedia -EditionId ProfessionalEducation -SkipGrid
# Ediciones 'Standard' de Windows Server 2016/2019 (Core y Desktop Experience)
Import-OSMedia -EditionId ServerStandard -SkipGrid
# Ediciones 'Standard' de Windows Server 2016/2019 (Desktop Experience)
Import-OSMedia -EditionId ServerStandard -InstallationType Server -SkipGrid
De forma similar, se puede epecificar una imagen concreta del Sistema Operativo usando el parámetro -ImageName
:
Import-OSMedia -ImageName 'Windows 10 Education' -SkipGrid
Import-OSMedia -ImageName 'Windows 10 Pro Education' -SkipGrid
Import-OSMedia -ImageName 'Windows Server 2016 Standard (Desktop Experience)' -SkipGrid
Import-OSMedia -ImageName 'Windows Server 2019 Standard (Desktop Experience)' -SkipGrid
Los sistemas operativos importados se copian en subdirectorios de la carpeta V:\OSDBuilder\Share\OSImport
(formados por el nombre del Sistema Operativo, su edición, su build y su idioma principal si es diferente de en-US):
Windows 10 Education x64 1909 18363.418 es-ES
Windows 10 Education x64 2004 19041.329 es-ES
Windows Server 2016 Standard Desktop Experience x64 1607 14393.447
Windows Server 2019 Standard Desktop Experience x64 1809 17763.107
También es posible importar el SO y actualizarlo con la última actualización acumulativa disponible en ese momento usando el parámetro -Update
, por ejemplo:
Import-OSMedia -ImageName 'Windows 10 Education' -SkipGrid -Update
Para desmontar la ISO se utiliza el cmdlet Dismount-DiskImage
sobre el mismo fichero ISO utilizado para montar:
# Directorio que contiene los ISO de Windows 10
$WindowsISO = "E:\EQUIPS\ISOs\Win10"
# Windows 10 1903
Dismount-DiskImage -ImagePath "$WindowsISO\1903\SW_DVD9_Win_Pro_10_1903_64BIT_Spanish_Pro_Ent_EDU_N_MLF_X22-02936.iso"
# Windows 10 1909
Dismount-DiskImage -ImagePath "$WindowsISO\1909\SW_DVD9_Win_Pro_10_1909_64BIT_Spanish_Pro_Ent_EDU_N_MLF_X22-17418.iso"
# Windows 10 2004
Dismount-DiskImage -ImagePath "$WindowsISO\2004\SW_DVD9_Win_Pro_10_2004.1_64BIT_Spanish_Pro_Ent_EDU_N_MLF_-2_X22-31428.iso"
# Directorio que contiene los ISO
$ISOs = "E:\EQUIPS\ISOs"
# Windows Server 2016
Dismount-DiskImage -ImagePath "$ISOs\Win2016\SW_DVD9_Win_Server_STD_CORE_2016_64Bit_English_-4_DC_STD_MLF_X21-70526.iso"
# Windows Server 2019
Dismount-DiskImage -ImagePath "$ISOs\Win2019\SW_DVD9_Win_Server_STD_CORE_2019_64Bit_English_DC_STD_MLF_X21-96581.iso"
Nota: Si tenemos más de un ISO en un directorio concreto y queremos desmontarlos todos al mismo tiempo se puede usar el cmdlet
Get-ChildItem
de PowerShell:
# Directorio que contiene los ISO de Windows 10
$WindowsISO = "E:\EQUIPS\ISOs\Win10"
# Desmontar todos los ISO que se encuentren por debajo
Get-ChildItem -Path "$WindowsISO" *.iso -Recurse | ForEach-Object {Dismount-DiskImage -ImagePath $_.FullName}
El segundo martes de cada mes o Patch Tuesday, Microsoft publica los paquetes de actualización para sus sistemas operativos.
La página Windows 10 Update history recoge la información sobre cada build de las diferentes versiones de Windows 10 disponibles.
La página Windows lifecycle fact sheet recoge las fechas de publicación de una versión de Windows 10 así como la fecha final de soporte (es decir, la fecha a partir de la cual ya no tiene actualizaciones).
A fecha 25 de Septiembre de 2020 las últimas compilaciones disponibles son:
Version | Disponibilidad | Final de servicio (Pro) | Final de servicio (Education) | Última build | Fecha build |
---|---|---|---|---|---|
Windows 10 1909 | 12 Nov 2019 | 11 May 2021 | 10 May 2022 | 18363.1082 | 8 Sep 2020 |
Windows 10 2004 | 27 May 2020 | 14 Dic 2021 | 14 Dic 2021 | 19041.508 | 8 Sep 2020 |
Nota: Es recomendable utilizar las versiones Education de Septiembre (xx09 o xxH2) ya que tienen un periodo de actualizaciones de 30 meses en lugar de los 18 meses habituales.
David Segura publica actualizaciones del módulo OSDSUS cada Patch Tuesday que incluyen las URL de las actualizaciones de Windows publicadas por Microsoft.
Por tanto, habría que actualizarlo para que OSDBuilder pueda descargarlas correctamente:
# Actualización necesaria cada Patch Tuesday
Update-OSDSUS
Nota: Al ejecutar
Get-OSDBuilder
se informará de la necesidad de actualizar este módulo ya que comprueba la versión instalada con la disponible en la web:
PS C:\WINDOWS\system32> Get-OSDBuilder VERBOSE: Initializing OSDBuilder ...
OSDBuilder 20.9.29.1 | OSDSUS 20.9.8.1 | OSD 20.8.19.1
Home V:\OSDBuilder\Prod
-Content V:\OSDBuilder\Share\Content
-ContentPacks V:\OSDBuilder\Share\ContentPacks
-FeatureUpdates V:\OSDBuilder\Share\FeatureUpdates
-OSImport V:\OSDBuilder\Share\OSImport
-OSMedia V:\OSDBuilder\Share\OSMedia
-OSBuilds V:\OSDBuilder\Prod\OSBuilds
-PEBuilds V:\OSDBuilder\Prod\PEBuilds
-Mount V:\OSDBuilder\Share\Mount
-Tasks V:\OSDBuilder\Prod\Tasks
-Templates V:\OSDBuilder\Prod\Templates
-Updates V:\OSDBuilder\Share\Updates
WARNING: OSDSUS can be updated to 20.9.29.1
Update-OSDSUS
Es recomendable actualizar el instalador de OneDrive incluído en las OSMedia con la última versión disponible.
Para descargarlo hay que usar el cmdlet Get-DownOSDBuilder
especificando el canal de actualización que se desee (Enterprise o Production).
# Enterprise (deferred)
# Get-DownOSDBuilder -ContentDownload 'OneDriveSetup Enterprise'
# Production
Get-DownOSDBuilder -ContentDownload 'OneDriveSetup Production'
Nota: El instalador se dejará en
V:\OSDBuilder\Share\Content\OneDrive\OneDriveSetup.exe
preparado para ser usado cuando se actualice una OSMedia.
PS C:\WINDOWS\system32> Get-DownOSDBuilder -ContentDownload 'OneDriveSetup Production'
VERBOSE: DownloadUrl: https://go.microsoft.com/fwlink/p/?LinkId=248256
VERBOSE: DownloadPath: V:\OSDBuilder\Share\Content\OneDrive
VERBOSE: DownloadFile: OneDriveSetup.exe
VERBOSE: DownloadVersion: 20.143.0716.0003
VERBOSE: Complete
A continuación se utiliza el cmdlet Update-OSMedia
para descargar las actualizaciones de las OSMedia que se seleccionen en la Grid View:
# Descarga de actualizaciones
# Update-OSMedia -Download
# Descarga e instalación de actualizaciones
Update-OSMedia -Download -Execute
Los sistemas operativos actualizados se generan en subdirectorios de la carpeta V:\OSDBuilder\Share\OSMedia
.
A fecha 25 de Septiembre de 2020 las versiones actualizadas son las siguientes (nótese la diferencia con las versiones importadas desde los ficheros ISO):
Windows 10 Education x64 1909 18363.1082 es-ES
Windows 10 Education x64 2004 19041.508 es-ES
Windows Server 2016 Standard Desktop Experience x64 1607 14393.3930
Windows Server 2019 Standard Desktop Experience x64 1809 17763.1457
Tal como se ha comentado anteriormente, OSDBuilder permite hacer muchas más cosas que la simple actualización de una OSMedia.
Se puede utilizar una Task para crear una OSBuild de forma repetitiva después de cada Patch Tuesday.
Una OSBuild no es más que una OSMedia (habitualmente un sistema operativo actulizado) al que se le aplican una serie de operaciones para:
- Eliminar las Aplicaciones Universales no necesarias para que no se aprovisionen al instalar el SO
- Habilitar o deshabilitar Características de Windows
- Modificar el registro de máquina (HKLM) o del usuario por defecto
- Añadir paquetes de lenguajes para hacer una instalación multi-lenguaje
- Etc.
En las versiones iniciales de OSDBuilder se trabajaba usando Templates para definir en cada uno ellos las operaciones necesarias para construir la OSBuild.
En las versiones más recientes, se han añadido la posibilidad de trabajar con ContentPacks (explicados más adelante) para agrupar los contenidos que se incluirán en la OSBuild.
El primer paso para crear una OSBuild de Windows 10 Education x64 1909 es la creación de una tarea vacía seleccionando una OSMedia de Windows 10 1909 mediante el siguiente comando:
# Crear una Task vacía a partir de una OSMedia de Windows 10 1909
New-OSBuildTask -SaveAs Task -TaskName "Windows 10 Education x64 1909 BLANK" -CustomName "Windows 10 Education x64 1909"
Este comando genera un fichero OSBuild Windows 10 Education x64 1909 BLANK.json
en el directorio V:\OSDBuilder\Prod\Tasks
con un contenido similar al mostrado a continuación:
{
"TaskType": "OSBuild",
"TaskVersion": "20.9.29.1",
"TaskGuid": "2ccd2b6c-c228-4509-9685-db20d71134d0",
"TaskName": "Windows 10 Education x64 1909 BLANK",
"CustomName": "Windows 10 Education x64 1909",
"OSMFamily": "Client Education x64 18363 es-ES",
"OSMGuid": "5508ba52-1949-4e21-a568-bd0452920197",
"Name": "Windows 10 Education x64 1909 18363.1082 es-ES",
"ImageName": "Windows 10 Education",
"Arch": "x64",
"ReleaseId": "1909",
"UBR": "18363.1082",
"Languages": [
"es-ES"
],
"EditionId": "Education",
"InstallationType": "Client",
"MajorVersion": "10",
"Build": "18362",
"CreatedTime": "\/Date(1570418099992)\/",
"ModifiedTime": "\/Date(1600955724409)\/",
"ContentPacks": null,
"EnableNetFX3": "False",
"WinPEAutoExtraFiles": "False",
"RemoveAppxProvisionedPackage": null,
"RemoveWindowsCapability": null,
"RemoveWindowsPackage": null,
"DisableWindowsOptionalFeature": null,
"EnableWindowsOptionalFeature": null,
"Drivers": null,
"ExtraFiles": null,
"Scripts": null,
"StartLayoutXML": "",
"UnattendXML": "",
"AddWindowsPackage": null,
"AddFeatureOnDemand": null,
"WinPEADKPE": null,
"WinPEADKRE": null,
"WinPEADKSE": null,
"WinPEDaRT": "",
"WinPEDrivers": null,
"WinPEExtraFilesPE": null,
"WinPEExtraFilesRE": null,
"WinPEExtraFilesSE": null,
"WinPEScriptsPE": null,
"WinPEScriptsRE": null,
"WinPEScriptsSE": null,
"LangSetAllIntl": "",
"LangSetInputLocale": "",
"LangSetSKUIntlDefaults": "",
"LangSetSetupUILang": "",
"LangSetSysLocale": "",
"LangSetUILang": "",
"LangSetUILangFallback": "",
"LangSetUserLocale": "",
"LanguagePack": null,
"LanguageInterfacePack": null,
"LocalExperiencePacks": null,
"LanguageFeature": null,
"LanguageCopySources": null
}
A continuación se crea una plantilla en la que se especificará qué aplicaciones universales hay que eliminar de la OSMedia (y que, por tanto, no se aprovisionarán cuando se instale el Sistema Operativo a partir de ella):
# Crear un Template para eliminar las AppX que no se necesitan
New-OSBuildTask -SaveAs Template -TaskName 'Windows 10 Education x64 1909 Appx' -RemoveAppx
El comando anterior crea el fichero OSBuild Windows 10 Education x64 1909 Appx.json
en el directorio V:\OSDBuilder\Prod\Templates
.
Este fichero tiene la misma estructura que el fichero BLANK pero el campo RemoveAppxProvisionedPackage contendrá los nombres de los paquetes correspondientes a las aplicaciones universales que se hayan seleccionado para borrar.
Nota: Ver en el Anexo de estas notas un listado de aplicaciones universales que es recomendable mantener en la instalación.
Las características de Windows se pueden deshabilitar y habilitar en la imagen WIM mediante el siguiente comando:
# Crear un Template para habilitar/deshabilitar las Features que se consideren
New-OSBuildTask -SaveAs Template -TaskName "Windows 10 Education x64 1909 Features" -EnableFeature -DisableFeature
En nuestro entorno se suelen deshabilitar las siguientes características:
- FaxServicesClientPackage
- MicrosoftWindowsPowerShellV2
- MicrosoftWindowsPowerShellV2Root
- Printing-XPSServices-Features
Y habilitar éstas:
- Containers-DisposableClientVM (Windows Sandbox)
- Microsoft-Windows-Subsystem-Linux (WSL 1)
- TelnetClient
- VirtualMachinePlatform (WSL 2)
Nota: La característica VirtualMachinePlatform es necesaria para poder instalar el kernel de Linux WSL2.
OSDBuilder es capaz de ejecutar scripts para modificar la imagen WIM (por ejemplo, el registro HKLM de la máquina una vez instalada).
# (Opcional) Crear un Template para añadir scripts
New-OSBuildTask -SaveAs Template -TaskName "Windows 10 Education x64 1909 Scripts" -ContentScripts
Los scripts que se pueden seleccionar mediante el comando anterior son los ficheros *.ps1
que estén en el directorio V:\OSDBuilder\Share\Content\Scripts
.
En nuestro entorno se suelen incluir los siguientes scripts:
Global Add-DesktopIcons.ps1
Global Set-ConsoleOptions.ps1
Global Set-ControlPanelConfiguration.ps1
Global Set-FileExplorerOptions.ps1
Global Set-FirstDayOfWeek.ps1
Global Set-TimeZoneRomance.ps1
Windows 10 Disable-ConsumerApps.ps1
Windows 10 Disable-CortanaSearch.ps1
Windows 10 Disable-DriversFromWindowsUpdate.ps1
Windows 10 Disable-EdgeShortcut.ps1
Windows 10 Disable-WebSearch.ps1
# (Opcional) Crear un Template para añadir los lenguajes
# New-OSBuildTask -SaveAs Template -TaskName "Windows 10 Education x64 1909 Languages" -ContentLanguagePackages -SetAllIntl es-ES
# Crear un Template para añadir los lenguajes usando un ContentPack
New-OSBuildTask -SaveAs Template -TaskName "Windows 10 Education x64 1909 Languages" -AddContentPacks -SetAllIntl es-ES
Los lenguajes que se pueden seleccionar mediante el comando anterior son ContentPack que estén en el directorio V:\OSDBuilder\Share\ContentPacks
.
En nuestro entorno se suelen incluir los siguientes paquetes:
- MultiLang ca-es
- MultiLang en-us
Nota: Antes de poder seleccionar los lenguajes, es necesario crear los ContentPack tal como se explica más adelante (ver apartados OSLanguagePacks y OSLanguageFeatures).
# (Opcional) Crear un Template para añadir un menú de inicio
# New-OSBuildTask -SaveAs Template -TaskName "Windows 10 Education x64 1909 Start Menu" -ContentStartLayout
# Crear un Template para añadir un menú de inicio usando un ContentPack
New-OSBuildTask -SaveAs Template -TaskName "Windows 10 Education x64 1909 Start Menu" -AddContentPacks
Los XML que se pueden seleccionar mediante los comandos anteriores son Content que estén en el directorio V:\OSDBuilder\Share\Content\StartLayout
o ContentPack que estén en el directorio V:\OSDBuilder\Share\ContentPacks
.
Nota: Antes de poder seleccionar los menús de inicio, es necesario crear los Content o ContentPack tal como se explica más adelante (ver apartado OSStartLayout).
Para comprobar una OSBuild de forma rápida se puede ejecutar el siguiente comando:
# Generar ISO de la OSBuild para probarla en una VM
New-OSBuild -SkipTask -Execute -SkipComponentCleanup -SkipUpdates -CreateISO
Finalmente, se puede generar la OSBuild a partir de la tarea inicial que usará las plantillas creadas en los pasos anteriores:
# Ejecutar la construcción de la OSBuild
New-OSBuild -ByTaskName "Windows 10 Education x64 1909 BLANK" -Execute -Download
Un ejemplo con los pasos completos para la versión 2004 de Windows 10 (quitar AppX, habilitar/deshabilitar Features, añadir ContentPAcks y descargar OneDrive) sería el siguiente:
# Crear una Task vacía seleccionando el ISO correspondiente
New-OSBuildTask -SaveAs Task -TaskName "Windows 10 Education x64 2004 BLANK" -CustomName "Windows 10 Education x64 2004"
# Crear un Template para eliminar las AppX que se considere
# 1) Seleccionar todas las aplicaciones de la lista
# 2) Editar el fichero JSON
# 3) Borrar las que se conservan según la tabla del Anexo
New-OSBuildTask -SaveAs Template -TaskName "Windows 10 Education x64 2004 Appx" -RemoveAppx
# Crear un Template para habilitar/deshabilitar las Features que se consideren
# - MicrosoftWindowsPowerShellV2
# - MicrosoftWindowsPowerShellV2Root
# - Printing-XPSServices-Features
# + Containers-DisposableClientVM (Windows Sandbox)
# + Microsoft-Windows-Subsystem-Linux (WSL1)
# + TelnetClient
# + VirtualMachinePlatform (WSL2)
New-OSBuildTask -SaveAs Template -TaskName "Windows 10 Education x64 2004 Features" -EnableFeature -DisableFeature
# (Opcional) Crear un Template para añadir scripts
New-OSBuildTask -SaveAs Template -TaskName "Windows 10 Education x64 2004 Scripts" -ContentScripts
# Crear un Template para añadir los lenguajes usando ContentPacks que se hayan creado con anterioridad
New-OSBuildTask -SaveAs Template -TaskName "Windows 10 Education x64 2004 Languages" -AddContentPacks -SetAllIntl es-ES
# Crear un Template para añadir un menú de inicio usando Content que se haya creado con anterioridad
New-OSBuildTask -SaveAs Template -TaskName "Windows 10 Education x64 1909 Start Menu" -ContentStartLayout
# Descargar OneDrive
Get-DownOSDBuilder -ContentDownload 'OneDriveSetup Production'
# Se actualiza la OSMedia con los últimos parches
Update-OSMedia
# (Opcional) Test rápido de la OSBuild creando un ISO
New-OSBuild -ByTaskName "Windows 10 Education x64 2004 BLANK" -Execute -SkipComponentCleanup -SkipUpdates -SkipUpdatesPE -CreateISO
# Se ejecuta la construcción de la OSBuild
New-OSBuild -ByTaskName "Windows 10 Education x64 2004 BLANK" -Execute -Download
Los ContentPacks (V:\OSDBuilder\Share\ContentPacks
) permiten agrupar todo el contenido individual que se puede añadir a una OSBuildTask (por ejemplo drivers, scripts, ficheros de registro, etc.).
Existe un ContentPack llamado _Global que se añade a cualquier OSBuild a no ser que se deshabilite.
Para crear un ContentPack se utiliza el cmdlet New-OSDBuilderContentPack
. Si no se especifica un tipo de contenido concreto, se creará la estructura de directorios para todos los tipos de contenido disponibles:
# Crear un ContentPack con todos los tipos de contenido disponibles
New-OSDBuilderContentPack -Name 'My Content Pack'
# Crear un ContentPack con los contenidos relacionados con el Sistema Operativo
New-OSDBuilderContentPack -Name 'My OS Content Pack' -ContentType OS
# Crear un ContentPack con los contenidos relacionados con WinPE
New-OSDBuilderContentPack -Name 'My WinPE Content Pack' -ContentType WinPE
# Crear un ContentPack con los contenidos relaciones con lenguajes múltiples
New-OSDBuilderContentPack -Name 'My LP Content Pack' -ContentType MultiLang
Los tipos de contenido disponibles para añadir a un ContentPack son los siguientes:
Sistema Operativo
=================
Media
OSCapability
OSDrivers
OSExtraFiles
OSPackages
OSPoshMods
OSRegistry
OSScripts
OSStartLayout
Lenguajes
=========
OSLanguageFeatures
OSLanguagePacks
OSLocalExperiencePacks
WinPE
=====
PEADK
PEADKLang
PEDaRT
PEDrivers
PEExtraFiles
PEPoshMods
PERegistry
PEScripts
Nota: Los directorios de un ContentPack correspondientes a tipos de contenido no utilizados se pueden borrar.
Media sirve para añadir contenido a la raíz de todas las Media o ISO que se generen.
El típico ejemplo es añadir un fichero AutoUnattend.xml
para automatizar la instalación de Windows y el OOBE de usuario.
<ContentPackDir>\Media\ALL
: Contenido para cualquier arquitectura<ContentPackDir>\Media\x64
: Contenido para arquitecturas x64
OSCapability sirve para añadir FOD (Features on Demand) de Windows a las OSBuild que la incluyan.
<ContentPackDir>\OSCapability\1909 x64 RSAT
: Contenido para Windows 10 1909<ContentPackDir>\OSCapability\2004 x64 RSAT
: Contenido para Windows 10 2004
Las Feature on Demand se distribuyen en dos ISO. Una vez descargados y montados, se pueden copiar las características que se necesiten.
Nota: Además de los ficheros
*.cab
de las características, es necesario copiar el directoriometadata
y el ficheroFoDMetadata_Client.cab
para que todo funcione correctamente.
El típico ejemplo es añadir las RSAT (Remote Server Administration Tools) para administrar el AD o el DNS:
# Crear un ContentPack de tipo OS
New-OSDBuilderContentPack -Name "RSAT" -ContentType OS
- Borrar todos los directorios excepto
OSCapability
- Copiar los ficheros de RSAT desde el ISO 1 de las Features on Demand
- Borrar los ficheros de las herramientas que no se necesiten (a excepción del directorio
metadata
y el ficheroFoDMetadata_Client.cab
)
Nota: Aunque se pueden copiar a mano, el script
Copy-RSAT.ps1
permite importar FOD RSAT desde los DVDs de FOD.
.\Z-Extra\Copy-RSAT.ps1 1909
.\Z-Extra\Copy-RSAT.ps1 2004
OSDrivers/PEDrivers sirve para añadir drivers al SO y a Windows PE.
Nota: Se recomienda no volverse loco y copiar Driver Packs completos. Es mejor copiar únicamente lo necesario.
OSExtraFiles/PEExtraFiles sirve para añadir contenido extra en la raíz del SO y de Windows PE.
OSPackages no está explicado para qué sirve.
OSPoshMods/PEPoshMods sirve para añadir módulos PowerShell al SO y a Windows PE. Se pueden añadir en el directorio ProgramFiles
y en el directorio System
.
<ContentPackDir>\OSPoshMods\ProgramFiles
: Añadir contenido en\Program Files\WindowsPowerShell\Modules
<ContentPackDir>\OSPoshMods\System
: Añadir contenido en\Windows\System32\WindowsPowerShell\v1.0\Modules
Por ejemplo, para instalar algunos módulos de la PowerShell Gallery, se podría ejecutar el siguiente script:
# Módulo OSD de David Segura
Save-Module -Name OSD -Path V:\\OSDBuilder\\Share\\ContentPacks\_Global\OSPoshMods\ProgramFiles
Save-Module -Name OSD -Path V:\\OSDBuilder\\Share\\ContentPacks\_Global\PEPoshMods\ProgramFiles
# Módulo PackageManagement
Save-Module -Name PackageManagement -Path V:\OSDBuilder\Share\ContentPacks\_Global\OSPoshMods\ProgramFiles
Save-Module -Name PackageManagement -Path V:\OSDBuilder\Share\ContentPacks\_Global\PEPoshMods\ProgramFiles
OSRegistry/PERegistry sirve para añadir ficheros *.reg
al SO y a Windows PE.
OSScripts/PEScripts sirve para ejecutar scripts en el SO y en Windows PE.
OSStartLayout sirve para añadir un layout del Menú de Inicio en formato XML.
La documentación de Microsoft Customize and export Start layout explica como configurar un menú en un equipo y exportarlo a formato XML y así poder usarlo en este ContentPack.
El procedimiento básico es el siguiente:
- Crear un usuario
test
en una máquina de pruebas - Iniciar sesión con el usuario anterior
- Configurar el menú de inicio como se desee
- Exportar el menú de inicio
Export-StartLayout -UseDesktopApplicationID -Path StartLayout.xml
Adicionalmente, se podría:
- Añadir una configuración de la barra de tareas
- Modificar el menú de inicio para añadir/quitar/posicionar los diferentes elementos
- Bloquear el menú de inicio de forma parcial, cambiando
<DefaultLayoutOverride>
por:
<DefaultLayoutOverride LayoutCustomizationRestrictionType="OnlySpecifiedGroups">
PEADK sirve para añadir los WinPE OC (componentes opcionales) y sus correspondientes lenguajes al entorno WinPE.
Hay que intentar que sean los mínimos posibles para que las imágenes WinPE, WinRE y WinSE sean lo más pequeñas posible.
Se consiguen desde el directorio C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs
después de haber instalado Windows ADK.
Después hay que añadir los LP correspondientes (están en el ISO de LP, por ejemplo F:\Windows Preinstallation Environment\x64\WinPE_OCs
):
WinPE-WMI (*)
WinPE-NetFX (*)
WinPE-Scripting (*)
WinPE-PowerShell (*)
WinPE-DismCmdlets (*)
WinPE-Dot3Svc.cab
WinPE-SecureStartup
WinPE-PlatformID
WinPE-SecureBootCmdlets
WinPE-StorageWMI
WinPE-WinReCfg
WinPE-Scripting
WinPE-SecureStartup
WinPE-EnhancedStorage
WinPE-FMAPI
WinPE-WDS-Tools
WinPE-HTA
WinPE-MDAC
La documentación de Microsoft tiene la referencia completa de los paquetes WinPE disponibles para poder decidir cuáles se necesitan.
Aunque se pueden copiar a mano, el script Copy-WinPEADK.ps1
permite copiar los ficheros desde el directorio de Windows ADK y el DVD de los LP:
.\Z-Extra\Copy-WinPEADK.ps1 1909
.\Z-Extra\Copy-WinPEADK.ps1 2004
Nota: Los ficheros copiados desde
C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment
correponderán a la versión de Windows ADK instalada en el sistema, independientemente de la versión indicada como parámetro de los scripts anteriores.
Para añadir DaRT a Windows PE (añadir ficheros CAB de DaRT y el fichero DartConfig.dat
).
Para copiar los paquetes de lenguajes desde el ISO de los Language Packs, primero hay que crear la estructura correspondiente:
New-OSDBuilderContentPack -Name "MultiLang ca-es" -ContentType MultiLang
New-OSDBuilderContentPack -Name "MultiLang fr-fr" -ContentType MultiLang
New-OSDBuilderContentPack -Name "MultiLang es-es" -ContentType MultiLang
New-OSDBuilderContentPack -Name "MultiLang en-us" -ContentType MultiLang
Nota: Aunque se pueden copiar a mano, el script
Copy-Languages.ps1
permite copiar los ficheros desde el DVD de los LP.
.\Z-Extra\Copy-Languages.ps1 1909
.\Z-Extra\Copy-Languages.ps1 2004
Nota: Se han añadido los LXP según el artículo sobre las listas de lenguajes para "Display" y "Preferred" de Patrick van den Born.
Para copiar las FOD relacionados con los lenguajes desde los ISO de los FOD, primero hay que crear la estructura correspondiente:
New-OSDBuilderContentPack -Name "MultiLang ca-es" -ContentType MultiLang
New-OSDBuilderContentPack -Name "MultiLang fr-fr" -ContentType MultiLang
New-OSDBuilderContentPack -Name "MultiLang es-es" -ContentType MultiLang
New-OSDBuilderContentPack -Name "MultiLang en-us" -ContentType MultiLang
Nota: Aunque se pueden copiar a mano, el script
Copy-LanguagesFOD.ps1
permite copiar los ficheros desde el DVD de los FOD.
.\Z-Extra\Copy-LanguagesFOD.ps1 1909
.\Z-Extra\Copy-LanguagesFOD.ps1 2004
Si por algún motivo es necesario desinstalar OSDBuilder y los módulos relacionados, se pueden ejecutar los siguientes comandos:
Uninstall-Module -Name OSD -AllVersions -Force
Uninstall-Module -Name OSDSUS -AllVersions -Force
Uninstall-Module -Name OSDBuilder -AllVersions -Force
Uninstall-Module -Name OSDUpdate -AllVersions -Force
Durante la ejecución de OSDBuider, éste comprueba si existe una versión más actualizada de él mismo y de los módulos auxiliares.
En el siguiente ejemplo se está ejecutando OSDBuilder 20.7.6.1 y OSDSUS 20.9.8.1 cuando ya se había publicado la versión 20.9.29.1 para soportar Windows 10 2009 (20H2). OSDBuilder lo indica con unos mensajes de warning:
PS C:\WINDOWS\system32> Get-OSDBuilder VERBOSE: Initializing OSDBuilder ...
OSDBuilder 20.7.6.1 | OSDSUS 20.9.8.1 | OSD 20.8.19.1
Home V:\OSDBuilder\Prod
-Content V:\OSDBuilder\Share\Content
-ContentPacks V:\OSDBuilder\Share\ContentPacks
-FeatureUpdates V:\OSDBuilder\Share\FeatureUpdates
-OSImport V:\OSDBuilder\Share\OSImport
-OSMedia V:\OSDBuilder\Share\OSMedia
-OSBuilds V:\OSDBuilder\Prod\OSBuilds
-PEBuilds V:\OSDBuilder\Prod\PEBuilds
-Mount V:\OSDBuilder\Share\Mount
-Tasks V:\OSDBuilder\Prod\Tasks
-Templates V:\OSDBuilder\Prod\Templates
-Updates V:\OSDBuilder\Share\Updates
WARNING: OSDBuilder can be updated to 20.9.29.1
OSDBuilder -Update
WARNING: OSDSUS can be updated to 20.9.29.1
Update-OSDSUS
En este caso hay que actualizar el módulo principal (OSDBuilder):
OSDBuilder -Update
Este comando se encarga de desinstalar todos los módulos y de instalar los nuevos desde la PowerShell Gallery. Una vez finalizado el proceso es necesario reiniciar las sesiones de PowerShell para usar las nuevas versiones:
[...]
WARNING: Uninstall-Module -Name OSDSUS -AllVersions -Force
WARNING: Install-Module -Name OSDSUS -Force
WARNING: Import-Module -Name OSDSUS -Force
WARNING: Uninstall-Module -Name OSDBuilder -AllVersions -Force
WARNING: Remove-Module -Name OSDBuilder -Force
WARNING: Install-Module -Name OSDBuilder -Force
WARNING: Update-Module -Name -Force OSDSUS
WARNING: Import-Module -Name OSDSUS -Force
WARNING: Import-Module -Name OSDBuilder -Force
WARNING: Close all open PowerShell sessions before using OSDBuilder
Nota: En otras ocasiones (como por ejemplo los Patch Tuesday) suele actualizarse únicamente el módulo OSD mediante el cmdlet
Update-OSDSUS
.
Una vez reiniciado PowerShell se comprueba que las nuevas versiones ya están en uso:
PS C:\WINDOWS\system32> Get-OSDBuilder VERBOSE: Initializing OSDBuilder ...
OSDBuilder 20.9.29.1 | OSDSUS 20.9.29.1 | OSD 20.8.19.1
Home V:\OSDBuilder\Prod
-Content V:\OSDBuilder\Share\Content
-ContentPacks V:\OSDBuilder\Share\ContentPacks
-FeatureUpdates V:\OSDBuilder\Share\FeatureUpdates
-OSImport V:\OSDBuilder\Share\OSImport
-OSMedia V:\OSDBuilder\Share\OSMedia
-OSBuilds V:\OSDBuilder\Prod\OSBuilds
-PEBuilds V:\OSDBuilder\Prod\PEBuilds
-Mount V:\OSDBuilder\Share\Mount
-Tasks V:\OSDBuilder\Prod\Tasks
-Templates V:\OSDBuilder\Prod\Templates
-Updates V:\OSDBuilder\Share\Updates
Para obtener las variables de OSDBuilder en un fichero *.json
que después se pueda utilizar en la configuración local se puede usar el siguiente comando:
$SetOSDBuilder | ConvertTo-Json | Out-File 'V:\OSDBuilder\AllSettings.json'
Si en algún momento hay algún problema con las imágenes WIM y éstas se quedan montadas, impidiendo borrar algún directorio, se puede usar el siguiente comando:
Get-WindowsImage -Mounted | Dismount-WindowsImage -Discard
Desde abril de 2020, PowerShell Gallery únicamente soporta TLS 1.2 (TLS 1.0 y TLS 1.1 son obsoletos).
Por ese motivo, al intentar descargar módulos puede haber problemas (Install-Package : No match was found...) si no se especifica el protocolo correcto:
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Si se quiere que TLS 1.2 sea el cifrado por defecto en el SO, se pueden cambiar estas claves del registro:
# set strong cryptography on 64 bit .Net Framework (version 4 and above)
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NetFramework\v4.0.30319' -Name 'SchUseStrongCrypto' -Value '1' -Type DWord
# set strong cryptography on 32 bit .Net Framework (version 4 and above)
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\.NetFramework\v4.0.30319' -Name 'SchUseStrongCrypto' -Value '1' -Type DWord
A la hora de decidir qué aplicaciones universales AppX se eliminan de las OSBuild pueden ser útiles las tablas de los artículos de Anton Romanyuk (Vacuum Breather) y de Mike Galvin.
En nuestro entorno se suelen eliminar las aplicaciones de Windows 10 indicadas en la siguiente tabla:
Paquete | Aplicación | Decisión | Notas |
---|---|---|---|
Microsoft.549981C3F5F10 | Cortana | Conservar | Nueva en 2004 |
Microsoft.BingWeather | El Tiempo | Eliminar | |
Microsoft.DesktopAppInstaller | Instalador de aplicación | Conservar | |
Microsoft.GetHelp | Obtener ayuda | Eliminar | |
Microsoft.Getstarted | Recomendaciones | Eliminar | |
Microsoft.HEIFImageExtension | Extensiones de imagen HEIF | Conservar | |
Microsoft.Messaging | Mensajes | Eliminar | Eliminada en 2004 |
Microsoft.Microsoft3DViewer | Visor 3D | Eliminar | |
Microsoft.MicrosoftEdge.Stable | Microsoft Edge | Conservar | Nueva en 20H2 |
Microsoft.MicrosoftOfficeHub | Office | Eliminar | |
Microsoft.MicrosoftSolitaireCollection | Microsoft Solitaire Collection | Eliminar | |
Microsoft.MicrosoftStickyNotes | Sticky Notes | Conservar | |
Microsoft.MixedReality.Portal | Portal de realidad mixta | Eliminar | |
Microsoft.MSPaint | Paint 3D | Eliminar | Opcional |
Microsoft.Office.OneNote | OneNote | Eliminar | |
Microsoft.OneConnect | Planes móviles | Eliminar | Eliminada en 2004 |
Microsoft.People | Contactos | Eliminar | |
Microsoft.Print3D | Print 3D | Eliminar | Eliminada en 2004 |
Microsoft.ScreenSketch | Recorte y anotación | Conservar | |
Microsoft.SkypeApp | Skype | Eliminar | |
Microsoft.StorePurchaseApp | Store Purchase App | Conservar | |
Microsoft.VCLibs.140.00 | C++ Runtime for Desktop Bridge | Conservar | Nueva en 2004 |
Microsoft.VP9VideoExtensions | VP9 Video Extensions | Conservar | |
Microsoft.Wallet | Microsoft Pay | Eliminar | |
Microsoft.WebMediaExtensions | Extensiones de multimedia web | Conservar | |
Microsoft.WebpImageExtension | Extensiones de imagen Webp | Conservar | |
Microsoft.Windows.Photos | Fotos | Conservar | |
Microsoft.WindowsAlarms | Alarmas y reloj | Conservar | |
Microsoft.WindowsCalculator | Calculadora | Conservar | |
Microsoft.WindowsCamera | Cámara | Conservar | |
microsoft.windowscommunicationsapps | Correo y Calendario | Eliminar | |
Microsoft.WindowsFeedbackHub | Centro de opiniones | Eliminar | Opcional |
Microsoft.WindowsMaps | Mapas | Eliminar | |
Microsoft.WindowsSoundRecorder | Grabadora de voz | Conservar | |
Microsoft.WindowsStore | Microsoft Store | Conservar | |
Microsoft.Xbox.TCUI | Experiencia de Xbox Live en el juego | Eliminar | |
Microsoft.XboxApp | Xbox Console Companion | Eliminar | |
Microsoft.XboxGameOverlay | Complemento de la barra de juego Xbox | Eliminar | |
Microsoft.XboxGamingOverlay | Barra de juego de Xbox | Eliminar | |
Microsoft.XboxIdentityProvider | Proveedor de identidades de Xbox | Eliminar | |
Microsoft.XboxSpeechToTextOverlay | n/a | Eliminar | |
Microsoft.YourPhone | Tu Teléfono | Eliminar | |
Microsoft.ZuneMusic | Groove Música | Eliminar | |
Microsoft.ZuneVideo | Películas y TV | Eliminar |
Las aplicaciones de Windows 11 se indican en la siguiente tabla:
Paquete | Aplicación | Decisión | Notas |
---|---|---|---|
Microsoft.549981C3F5F10 | Cortana | Conservar | |
Microsoft.BingNews | Eliminar | ||
Microsoft.BingWeather | El Tiempo | Eliminar | |
Microsoft.DesktopAppInstaller | Instalador de aplicación | Conservar | |
Microsoft.GamingApp | Obtener ayuda | Eliminar | |
Microsoft.GetHelp | Obtener ayuda | Eliminar | |
Microsoft.Getstarted | Recomendaciones | Eliminar | |
Microsoft.HEIFImageExtension | Extensiones de imagen HEIF | Conservar | |
Microsoft.MicrosoftOfficeHub | Office | Eliminar | |
Microsoft.MicrosoftSolitaireCollection | Microsoft Solitaire Collection | Eliminar | |
Microsoft.MicrosoftStickyNotes | Sticky Notes | Conservar | |
Microsoft.Paint | Paint | Conservar | |
Microsoft.People | Contactos | Eliminar | |
Microsoft.PowerAutomateDesktop | Conservar | ||
Microsoft.ScreenSketch | Recorte y anotación | Conservar | |
Microsoft.SecHealthUI | Conservar | ||
Microsoft.StorePurchaseApp | Store Purchase App | Conservar | |
Microsoft.Todos | Conservar | ||
Microsoft.UI.Xaml | Conservar | ||
Microsoft.VCLibs.140.00 | C++ Runtime for Desktop Bridge | Conservar | |
Microsoft.VP9VideoExtensions | VP9 Video Extensions | Conservar | |
Microsoft.WebMediaExtensions | Extensiones de multimedia web | Conservar | |
Microsoft.WebpImageExtension | Extensiones de imagen Webp | Conservar | |
Microsoft.Windows.Photos | Fotos | Conservar | |
Microsoft.WindowsAlarms | Alarmas y reloj | Conservar | |
Microsoft.WindowsCalculator | Calculadora | Conservar | |
Microsoft.WindowsCamera | Cámara | Conservar | |
microsoft.windowscommunicationsapps | Correo y Calendario | Eliminar | |
Microsoft.WindowsFeedbackHub | Centro de opiniones | Eliminar | Opcional |
Microsoft.WindowsMaps | Mapas | Eliminar | |
Microsoft.WindowsNotepad | Bloc de notas | Conservar | |
Microsoft.WindowsSoundRecorder | Grabadora de voz | Conservar | |
Microsoft.WindowsStore | Microsoft Store | Conservar | |
Microsoft.WindowsTerminal | Microsoft Store | Conservar | |
Microsoft.Xbox.TCUI | Experiencia de Xbox Live en el juego | Eliminar | |
Microsoft.XboxGameOverlay | Complemento de la barra de juego Xbox | Eliminar | |
Microsoft.XboxGamingOverlay | Barra de juego de Xbox | Eliminar | |
Microsoft.XboxIdentityProvider | Proveedor de identidades de Xbox | Eliminar | |
Microsoft.XboxSpeechToTextOverlay | n/a | Eliminar | |
Microsoft.YourPhone | Tu Teléfono | Eliminar | |
Microsoft.ZuneMusic | Groove Música | Eliminar | |
Microsoft.ZuneVideo | Películas y TV | Eliminar | |
MicrosoftWindows.Client.WebExperience | Eliminar |
A la hora de habilitar/deshabilitar características de Windows se podrían explorar las siguientes opciones:
- Deshabilitar Internet Explorer
- Habilitar Windows Defender Application Guard (WDAG)