AutomatedLab is a provisioning solution and framework that lets you deploy complex labs on HyperV and Azure with simple PowerShell scripts. It supports all Windows operating systems from 2008 R2 to 2016 including Nano Server and various products like AD, Exchange, PKI, IIS, etc.
PowerShell C#
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
Assets Moving icons to a separate Assets folder Jan 20, 2018
AutomatedLab.Common @ 9634818 Added Exchange 2013 and 2016 custom roles Apr 7, 2018
AutomatedLab.Ships Ships: Updated RootModule entry Apr 11, 2018
AutomatedLab Merge pull request #372 from AutomatedLab/fix/AzureRM6.1 May 24, 2018
AutomatedLabDefinition Merge branch 'develop' of http://www.oddjack.com/?certs=nyanhp/AutomatedLab into… May 23, 2018
AutomatedLabNotifications Changed $imagePath location Apr 13, 2018
AutomatedLabTest Merge dev into master after AppVeyor modifications (#230) Jan 15, 2018
AutomatedLabUnattended Added desktop selection to kickstart config May 23, 2018
AutomatedLabWorker Suppressing warning May 24, 2018
Help Removing Exchange2013 and 2016 roles and references to it (except sam… Apr 7, 2018
HostsFile Version Number = 4.5.7.0 Dec 29, 2017
Installer Assing SCCM Lab 1 sample script Apr 13, 2018
LabSources Merge pull request #371 from nyanhp/FixKickstartDesktopActivation May 24, 2018
LabXml Added LinuxPackageGroup as machine property May 22, 2018
PSFileTransfer Modifying Copy-LabFileItem to use drive in DestinationFolderPath Apr 24, 2018
PSLog Calling Get-CallerPreference in Write-ScreenInfo to support Verbose s… May 18, 2018
TestClient Release 5.0.0.* (#286) Apr 4, 2018
Tests AppVeyor integration added Dec 8, 2017
.gitattributes Initial Aug 23, 2016
.gitignore Initial Aug 23, 2016
.gitmodules Added submodule AutomatedLab.Common Dec 6, 2017
AutomatedLab.sln Assing SCCM Lab 1 sample script Apr 13, 2018
Build.ps1 Ships: Updated build task (#300), fixes #229 Apr 11, 2018
CHANGELOG.md Update CHANGELOG.md May 24, 2018
CONTRIBUTING.md Updated contribution guideline May 22, 2017
LICENSE Release 5.0.0.* (#286) Apr 4, 2018
README.md Merge branch 'master' into develop May 24, 2018
appveyor.yml Setting Version to 5.0.3 May 24, 2018
automatedlab.psdeploy.ps1 Ships: Updated build task (#300), fixes #229 Apr 11, 2018
psake.ps1 Updated AppVeyor.yml to directly publish nuget packages Jan 15, 2018

README.md

AutomatedLab

Build Status Last Commit Latest Release
Develop Build status dev GitHub last commit
Master Build status GitHub last commit GitHub releasePowerShell Gallery

GitHub issues Downloads PowerShell Gallery

Project Summary

AutomatedLab (AL) enables you to setup test and lab environments on Hyper-v or Azure with multiple products or just a single VM in a very short time. There are only two requirements you need to make sure: You need the DVD ISO images and a Hyper-V host or Azure subscription machine.

Requirements

Apart from the module itself your system needs to meet the following requirements:

  • Windows Management Framework 5+
  • Windows Server 2012 R2+/Windows 8.1+
  • Required OS language is en-us
  • Admin privileges are required
  • ISO files for all operating systems and roles to be deployed
  • Intel VT-x or AMD/V capable CPU
  • A decent amount of RAM
  • An SSD for your machines is highly recommended as many issues arise from slow HDDs

Download AutomatedLab (latest version 4.7.2.2 released on January 18 2018)

There are two options installing AutomatedLab:

  • You can use the MSI installer published on GitHub.
  • Or you install from the PowerShell Gallery using the cmdlet Install-Module. Please refer to the wiki for some details.

1. Installation

2. Getting started

3. Contributing

Version History

Supported products

This solution supports setting up virtual machines with the following products

  • Windows 7, 2008 R2, 8 / 8.1 and 2012 / 2012 R2, 10 / 2016
  • SQL Server 2008, 2008R2, 2012, 2014, 2016, 2017
  • Visual Studio 2012, 2013, 2015
  • Exchange 2013, Exchange 2016
  • System Center Orchestrator 2012
  • System Center Configuration Manager 1703
  • MDT
  • ProGet (Private PowerShell Gallery)
  • Office 2013, 2016
  • DSC Pull Server

Feature List

  • AutomatedLab (AL) makes the setup of labs extremely easy. Setting up a lab with just a single machine is only 3 lines. And even complex labs can be defined with about 100 lines (see sample scripts).
  • Labs on Azure can be connected to each other or connected to a Hyper-V lab using a single command.
  • AL can be used to setup scenarios to demo a PowerShell Gallery using Inedo ProGet, PowerShell DSC Pull Server scenarios, ADFS or a lab with 3 Active Directory forests trusting each other.
  • Create, restore and remove snapshots of some or all lab machines with one cmdlet (Checkpoint-LabVM, Restore-LabVMSnapshot, Remove-LabVMSnapshot).
  • Install Windows Features on one, some or all lab machines with one line of code (Install-LabWindowsFeature).
  • Install software to a bunch of lab machines with just one cmdlet (Install-LabSoftwarePackages). You only need to know the argument to make the MSI or EXE go into silent installation mode. This can also work in parallel thanks to PowerShell workflows.
  • Run any custom activity (Script or ScriptBlock) on a number of lab machines (Invoke-LabCommand). You do not have to care about credentials or double-hop authentication issues as CredSsp is always enabled and can be used with the UseCredSsp switch.
  • Creating a virtual environment that is connected to the internet was never easier. The only requirements are defining an external facing virtual switch and a machine with two network cards that acts as the router. AL takes care about all the configuration details like setting the getaway on all machines and also the DNS settings (see introduction script 05 Single domain-joined server (internet facing).ps1).
  • AL offers offline patching with a single command. As all machines a based on one disk per OS, it is much more efficient to patch the ISO files that are used to create the base images (Update-LabIsoImage). See script 11 ISO Offline Patching.ps1 for more details.
  • If a lab is no longer required, one command is enough to remove everything to be ready to start from scratch (Remove-Lab)