Git Product home page Git Product logo

windows-deployment-services-vagrant's Introduction

About

This is an example Windows Deployment Services (WDS) vagrant environment.

Usage

Install and start the Windows Domain Controller environment in ../windows-domain-controller-vagrant.

Copy the Windows 2019 ISO to the tmp directory (the exact ISO filename is defined in provision/provision-wds-images.ps1).

Copy the VirtIO drivers ISO to the tmp directory (the exact ISO filename is defined in provision/provision-wds-images.ps1).

Launch the wds environment:

vagrant up --provider=libvirt wds # or --provider=hyperv

Launch the known client environment and watch it automatically install windows:

bash create_empty_box.sh
vagrant up --provider=libvirt client # or --provider=hyperv
# Open the VM console to see it network booting and install windows.

Launch the new/unknown newclient environment and watch it show a wds client prompt asking the user to choose an image to install:

vagrant up --provider=libvirt newclient # or --provider=hyperv
# Open the VM console to see it network booting.

NB Vagrant will fail to connect to the VM; the idea is just to see it PXE boot.

Open Questions

Can you help with any of the following problems?

  • Why /JoinDomain:Yes prevents unattend OOBE/Autologon/FirstLogonCommands from working?

Notes

  • When you launch the wds environment multiple times, these Active Directory objects are automatically removed to make sure WDS starts with the default configuration:
    • CN=DhcpRoot,CN=NetServices,CN=Services,CN=Configuration,DC=example,DC=com
    • CN=wds.example.com,CN=NetServices,CN=Services,CN=Configuration,DC=example,DC=com
    • CN=WDS,CN=Computers,DC=example,DC=com
    • CN=client,CN=Computers,DC=example,DC=com
  • Slow DNS/NetBIOS responses will break WDS (e.g. it will be slow to start, or even never starts) and PXE boot (e.g. fail to find a boot image).
  • You can target a specific device (e.g. MAC address) by prestaging it.
    • You can prestage a device through the Active Directory Prestaged devices node on the WDS Manager or with wdsutil /Set-Device.
    • This would also allow you to use a different unattended file and boot image.
    • See provision/provision-wds-unattend.ps1.
  • All credentials flow through the network in cleartext and are saved at C:\Windows\Panther\unattend.xml with read permissions for every user.
  • You can open .wim files with 7-Zip.
  • You can use the Microsoft Deployment Toolkit (MDT) to create custom Windows images that you can deploy from the WDS server.
  • Some configuration steps are awkwardly run as the vagrant domain account (instead of the local vagrant account). If you known a better way, please let us know!

Troublehsoot

  • Press the SHIFT+F10 key combination to open a Command Prompt window.
    • This works in WinPE and when booting Windows (e.g. while executing the specialize configuration pass).
  • The unattend file is saved at C:\Windows\Panther\unattend.xml.
  • The logs are saved at C:\Windows\Panther.

References

windows-deployment-services-vagrant's People

Contributors

rgl avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.