Hyper-V y powershell

23 views
Skip to first unread message

Carlos Admirador

unread,
Jun 19, 2021, 2:08:09 AM6/19/21
to AltNet-Hispano
Han utilizado Hyper-V y powershell ( https://boxstarter.org/VMIntegration) para automatizar la creación de máquinas virtuales?

Carlos Admirador

unread,
Aug 18, 2022, 10:58:45 AM8/18/22
to AltNet-Hispano

Carlos Admirador

unread,
Aug 19, 2022, 2:42:08 AM8/19/22
to AltNet-Hispano

Algo así:
Crear una VM a partir de una iso
Configurar la tarjeta de red de la VM
Habilitar el acceso remoto en la VM
Ejecutar en remoto chocolatey e instalar alguna aplicación


$isoFile = '.\en_windows_server_2019_x64_dvd_4cb967d8.iso'
$vmName = 'TstWindows'
$pass = 'u531@rg3pa55w0rd$!'

.\New-VMFromWindowsImage.ps1 -SourcePath $isoFile -Edition 'Windows Server 2019 Standard' -VMName $vmName -VHDXSizeBytes 60GB -AdministratorPassword $pass -Version 'Server2019Standard' -MemoryStartupBytes 2GB -VMProcessorCount 2

$sess = .\New-VMSession.ps1 -VMName $vmName -AdministratorPassword $pass

.\Set-NetIPAddressViaSession.ps1 -Session $sess -IPAddress 10.10.1.195 -PrefixLength 16 -DefaultGateway 10.10.1.250 -DnsAddresses '8.8.8.8','8.8.4.4' -NetworkCategory 'Public'

.\Enable-RemoteManagementViaSession.ps1 -Session $sess

# You can run any commands on VM with Invoke-Command:
Invoke-Command -Session $sess {
    echo "Hello, world! (from $env:COMPUTERNAME)"

    # Install chocolatey
    Set-ExecutionPolicy Bypass -Scope Process -Force
    [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072
    iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))

    # Install 7-zip
    choco install 7zip -y
}

Remove-PSSession -Session $sess

Carlos Admirador

unread,
Feb 11, 2026, 9:21:38 AMFeb 11
to AltNet-Hispano
¿Qué es Boxstarter?

Framework de automatización para provisionar y configurar Windows usando Chocolatey + PowerShell, pensado para:

  • Bootstrap de máquinas nuevas.

  • Configuración idempotente.

  • Reinicios automáticos controlados.

  • Ejecución remota.

  • Integración con pipelines.

Instala software, habilita features de Windows, toca registro, políticas, WSL, IIS, Hyper-V, etc., en un único script reproducible.


Use cases reales1. Bootstrap de portátil nuevo (developer workstation)
  • Instalar VSCode, Git, .NET SDK, Docker Desktop, WSL2, SQL Server, etc.

  • Configurar features de Windows.

  • Aplicar tweaks (UAC, ExecutionPolicy, Explorer settings).

  • Reiniciar cuando sea necesario.


2. Setup automatizado de WSL (sí, es válido)
  • Habilitar WSL y VirtualMachinePlatform.

  • Instalar Ubuntu.

  • Establecer WSL2 por defecto.

  • Instalar herramientas dentro de WSL post-provision.


3. Preparación de agentes CI/CD Windows
  • Runner GitLab Windows.

  • SDKs concretos.

  • Dependencias legacy.

  • Configuración de IIS para tests.


4. Máquinas virtuales desechables
  • Entornos de test reproducibles.

  • Laboratorios.

  • QA environments.


5. Hardening + configuración corporativa
  • Configurar firewall.

  • Features Windows.

  • Servicios.

  • Políticas.


6. Reinstalación completa en 1 comando

Equipo nuevo → ejecutar script → entorno completo en 20–40 min.


¿Por qué usar Boxstarter?Ventajas reales
  1. Reinicios automáticos transparentes
    Si algo requiere reboot, Boxstarter:

    • reinicia

    • relanza

    • continúa desde donde estaba

  2. Idempotencia
    No rompe si lo ejecutas 2 veces.

  3. Chocolatey integrado
    Gestión limpia de paquetes.

  4. Ejecución remota
    Install-BoxstarterPackage -ComputerName

  5. Infra como código para Windows
    Declarativo vía PowerShell.

  6. Ideal para onboarding
    Nuevo dev → mismo entorno exacto.


Instalación Boxstarter

Set-ExecutionPolicy Bypass -Scope Process -Force
iwr https://boxstarter.org/bootstrapper.ps1 | iex
Get-Boxstarter -Force


Ejemplo 1 — Setup completo de workstation dev .NET

setup-dev.ps1

# Permite reinicios automáticos
$Boxstarter.AutoLogin = $true

 # Windows features
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux -NoRestart
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform -NoRestart

 # Paquetes base
choco install -y git
choco install -y vscode
choco install -y dotnet-8.0-sdk
choco install -y docker-desktop
choco install -y googlechrome
choco install -y 7zip
choco install -y sql-server-express

 # Configuración WSL2 por defecto
wsl --set-default-version 2

 # Tweaks Windows
Set-ExecutionPolicy RemoteSigned -Force
Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced -Name Hidden -Value 1
Write-Host "Provision terminado"

Ejecución:

Install-BoxstarterPackage -PackageName setup-dev.ps1 -DisableReboots:$false
Ejemplo 2 — Automatizar instalación completa WSL + Ubuntu + tooling
$Boxstarter.AutoLogin = $true
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux -NoRestart
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform -NoRestart
choco install -y
wsl-ubuntu-2204
 wsl --set-default-version 2

 # Esperar a que Ubuntu esté lista
Start-Sleep -Seconds 20
 # Instalar tooling dentro de WSL
wsl -d Ubuntu-22.04 -- bash -c "
sudo apt update &&
sudo apt install -y build-essential curl git docker.io
"
 Write-Host "WSL provisionado"

Ejecución remota
Install-BoxstarterPackage -PackageName setup-dev.ps1 -ComputerName PC-DEV01 -Credential (Get-Credential)
¿Cuándo NO usar Boxstarter?
  • Si usas Intune / SCCM / Autopilot corporativo.

  • Si necesitas configuración declarativa avanzada tipo DSC.

  • Si el entorno ya está gestionado por Ansible/Salt/WinRM centralizado.


Boxstarter es Infra as Code para Windows dev machines.

Si reinstalas mucho, montas labs, CI Windows o haces onboarding técnico serio → tiene sentido.

Si solo instalas 4 apps una vez → es overkill.


Carlos Admirador

unread,
Feb 11, 2026, 11:12:24 AMFeb 11
to AltNet-Hispano
Using Packer, Vagrant and Boxstarter to create Windows environments

Testing your application in different environments can be hard to do manually, as its time consuming, error prone, and not easily reproducible. This article will show you a way on how to automatically create Windows environments, where you can test your application.

Tools

You will use the following tools:

Reply all
Reply to author
Forward
0 new messages