Skip to content
Setup a very basic Windows Lab Environment from scratch, or add specific infrastructure components to your existing Domain. Leverages Vagrant Boxes to make deployment faster/easier.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
BuildOutput
MiniLab
ProtoHelpers
Tests
.gitignore
CHANGELOG.md
LICENSE
README.md
ThirdPartyNotices.txt
appveyor.yml
build.ps1
build.requirements.psd1
deploy.psdeploy.ps1
psake.ps1

README.md

Build status

MiniLab

Setup a very basic Windows Lab Environment from scratch, or add specific infrastructure components to your existing Domain. Leverages Vagrant Boxes to make deployment faster/easier.

Compatible with Windows PowerShell 5.1 and PowerShell Core 6.X (on Windows)

Getting Started

# One time setup
    # Download the repository
    # Unblock the zip
    # Extract the MiniLab folder to a module path (e.g. $env:USERPROFILE\Documents\WindowsPowerShell\Modules\)
# Or, with PowerShell 5 or later or PowerShellGet:
    Install-Module MiniLab

# Import the module.
    Import-Module MiniLab    # Alternatively, Import-Module <PathToModuleFolder>

# Get commands in the module
    Get-Command -Module MiniLab

# Get help
    Get-Help <MiniLab Function> -Full
    Get-Help about_MiniLab

Examples

Create a New Domain

On your local machine, make sure you have at least 35GB of Hard Drive Space and 4GB of Memory readily available and create a new Primary Domain Controller...

$VagrantVMPassword = ConvertTo-SecureString 'vagrant' -AsPlainText -Force
$VagrantVMAdminCreds = [pscredential]::new("vagrant",$VagrantVMPassword)
$DomainAdminCreds = [pscredential]::new("alpha\alphaadmin",$(Read-Host 'Enter Passsword' -AsSecureString))
Enter Passsword: ************
$LocalAdminAccountCreds = [pscredential]::new("Administrator",$(Read-Host 'Enter Passsword' -AsSecureString))
Enter Passsword: ****************
$CreateDomainSplatParams = @{
    CreateNewVMs                            = $True
    VMStorageDirectory                      = "H:\VirtualMachines"
    NewDomain                               = "alpha.lab"
    PSRemotingCredentials                   = $VagrantVMAdminCreds
    DomainAdminCredentials                  = $DomainAdminCreds
    LocalAdministratorAccountCredentials    = $LocalAdminAccountCreds
}
$CreateDomainResult = Create-Domain @CreateDomainSplatParams

Create a New Domain with Two-Tier PKI (i.e. Root and Subordinate/Issuing/Intermediate Certificate Authorities)

On your local machine, make sure you have at least 100GB of Hard Drive Space and 12GB of Memory readily available and...

$VagrantVMPassword = ConvertTo-SecureString 'vagrant' -AsPlainText -Force
$VagrantVMAdminCreds = [pscredential]::new("vagrant",$VagrantVMPassword)
$DomainAdminCreds = [pscredential]::new("alpha\alphaadmin",$(Read-Host 'Enter Passsword' -AsSecureString))
Enter Passsword: ************
$LocalAdminAccountCreds = [pscredential]::new("Administrator",$(Read-Host 'Enter Passsword' -AsSecureString))
Enter Passsword: **************
$CreateTwoTierPKISplatParams = @{
    CreateNewVMs                            = $True
    VMStorageDirectory                      = "H:\VirtualMachines"
    NewDomain                               = "alpha.lab"
    PSRemotingCredentials                   = $VagrantVMAdminCreds
    DomainAdminCredentials                  = $DomainAdminCreds
    LocalAdministratorAccountCredentials    = $LocalAdminAccountCreds
}
Create-TwoTierPKI @CreateTwoTierPKISplatParams

Add Two-Tier PKI to Your Existing Domain

On your local machine, make sure you have at least 70GB of Hard Drive Space and 8GB of Memory readily available and...

$VagrantVMPassword = ConvertTo-SecureString 'vagrant' -AsPlainText -Force
$VagrantVMAdminCreds = [pscredential]::new("vagrant",$VagrantVMPassword)
$DomainAdminCreds = [pscredential]::new("alpha\alphaadmin",$(Read-Host 'Enter Passsword' -AsSecureString))
Enter Passsword: ************
$LocalAdminAccountCreds = [pscredential]::new("Administrator",$(Read-Host 'Enter Passsword' -AsSecureString))
Enter Passsword: **************
$CreateTwoTierPKISplatParams = @{
    CreateNewVMs                            = $True
    VMStorageDirectory                      = "H:\VirtualMachines"
    ExistingDomain                          = "alpha.lab"
    PSRemotingCredentials                   = $VagrantVMAdminCreds
    DomainAdminCredentials                  = $DomainAdminCreds
}
Create-TwoTierPKI @CreateTwoTierPKISplatParams

Build

Run Windows PowerShell 5.1 elevated (i.e. 'Run as Administrator') and...

git clone https://github.com/pldmgg/MiniLab.git
if (!$(Test-Path "$HOME\ModuleBuilds")) {$null = New-Item -ItemType Directory "$HOME\ModuleBuilds"}
.\MiniLab\build.ps1 *> "$HOME\ModuleBuilds\MiniLab.log"

Notes

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.