The goal of this PowerShell Module initially is to supply a better and easier way to image the new Nano Server from Microsoft. However since the processes are for the most part identical, I am going to extend this to Windows to Go deployments as well as standard servers (whether physical or virtual)
It will have to ability to create a Workgroup or Domain based Unattend.xml file to be injected directly into the destination environment.
In addition (as it grows and improves) it will be able to inject features directly into the relevant operating systems.
Another target of this Module is to allow easy Deployment of a Windows PE key that is PowerShell enabled.
This module can be found on the PowerShell Gallery under 'DeployImage' and also on Github under https://github.com/energizedtech/DeployImage
It introduces 13 new Cmdlets to try and simplify Deploying Nanoserver and Wim files to VHD, USB and Physical Disk environments. (Nano Server being the Dominant reason)
Clear-DiskStructure
This Cmdlets task is to Enhance the Clear-Disk Cmdlet and simplify it as I have encountered situations in which you need to remove Partitions first before Clear-Disk successfully cleans the Target Disk
Copy-WithProgress
This Cmdlet is still being tested and is meant as a "Copy-Item" with Progress to show SOME indication of where a large folder copy is at
Get-ArchitectureString
This Cmdlet returns the string " (x86)" if you are on 64bi Windows. It is meant as a way to inject into the 32 Program Files pathname
Get-ActiveDriveLetter
This Cmdlet pulls up an array of Drive Letters presently in use
Test-ActiveDriveLetter
It will provide a Boolean $True or $False if a Drive Letter is in use when provided
Get-NextActiveDriveLetter
This Cmdlet will identify the next available drive letter for mapping or other purposes
Get-AttachedDisk
Get-AttachedDisk is a Wrapper on the Get-Disk Cmdlet which targets either Internal or USB. It also provides a GUI parameter to launch Out-Gridview to select disks
New-PartitionStructure
This Cmdlet creates one of three stock basic Parition structures, either MBR for USB, MBR for Filesystem or GPT for UEFI and Formats targeted drives
New-UnattendXMLContent
This is a Parameterized Cmdlet to provide an Unattend.XML file content. Domain Join is an option and will populate the additional needed content.
New-WindowsPEWim
This builds a WindowsPE Wim file pre-populated with the necessary OCS for Windows PowerShell, DISM and Storage Cmdlets. It also autolaunches PowerShell with the Set-ExecutionPolicy to Bypass
Remove-DriveLetter
This simply Removes and verifies removal of a Drive Letter from the Drive system
Send-BootCode
Makes a Disk bootable
Send-SanPolicy
This is meant for Windows to Go. It just builds and applies a targeted disk with the SanPolicy for Windows to Go
Send-UnattendXML
Deploys an Unattend file to a target Operating System
Test-WindowsADK
Test for the Presence of the Windows 10 ADK
There are also a sample script provided
DeployWindowsPE.ps1
Prompts for an available USB key, Prepares it as Bootable WinPE with PowerShell