Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
Prestaging a VMWare VM in Windows Active Directory
# Modules needed for this function to work, remember you need to be connected to vCenter aswell!
# Load VMware Module
if ((Get-PSSnapin | Where-Object { $_.Name -eq "VMware.VimAutomation.Core" }) -eq $null) { Add-PSSnapin VMware.VimAutomation.Core }
# Load AD Module... if you can't import it you need Windows RSAT
if ((Get-Module | Where-Object { $_.Name -eq "ActiveDirectory" }) -eq $null) { Import-Module ActiveDirectory }
# Variables Needed
[String]$vmName = (Read-Host "Provide VM Name")
$domainName = ""
# Function to grab the VMs UUID and prestage this in AD, will allow all GPO's and Sec Groups to apply as it joins domain
function PrestageVM {
# This line will grab the GUID needed to prestage the machine
[guid]$vmGUID = Get-VM $vmName | % {(Get-View $}
New-PSDrive -PSProvider ActiveDirectory -Name ADDrive -Root "" -Server "$domainName"
pushd ADDrive:
# As you make the VM in AD, you can add additional things such as description, here we use the flavour and size of template used for example
New-ADComputer -Name "$vmName" -samAccountName "$vmName" -Description "$vmsize $vmFlavour Server" -OtherAttributes @{'netbootGUID'=$vmGUID}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment