The script below:
- Installs a new domain controller in a forest root domain, creating that domain.
- Gets the variables you will see in the script from Configuration Manager.
I will explain how to populate variables in Configuration Manager in a separate post in due course.
#------------------------------------------------------------------------------------
# | File : NewForest.ps1
# |
# | Purpose : Installs the first Domain Controller in a forest, thus creating
# | a new forest
# | - Designed to be run from a Configuration Manager OSD task sequence
# | - Designed for Windows Server 2012 environments
# | - Reboot handled by task sequence
# |
# | Usage : PowerShell.exe -FILE .\NewForest.ps1
#------------------------------------------------------------------------------------
# |
# | Author: JustAnotherTechnicalBlog
# | Creation Date: 11 April 2013
# |
# |
# | Maintenance History
# | -------------------
# |
# | Version: 1.00 2013-04-12 Initial Version JustAnotherTechnicalBlog
# |
# |
#------------------------------------------------------------------------------------
# Clear the error variable
#------------------------------------------------------------------------------------
$error.clear()
# Import the ActiveDirectory PowerShell Module if required
#------------------------------------------------------------------------------------
if (-not (Get-Module ActiveDirectory))
{
Import-Module ActiveDirectory
}
# Here we get access to the Task Sequence variables
#------------------------------------------------------------------------------------
$objTSenv = New-Object -COMObject Microsoft.SMS.TSEnvironment
# Grab the data we need from the task sequence variables
#------------------------------------------------------------------------------------
$strTSNetBIOSName = $objTSenv.Value("RoleVariable1")
$strTSDomainName = $objTSenv.Value("RoleVariable2")
# Convert our password to the data type required
# by Install-ADDSForest
#------------------------------------------------------------------------------------
$secstrSafeModePassword = $objTSenv.Value("RolePassword1") | `
ConvertTo-SecureString -asPlainText -Force
# Install our first forest Domain Controller, creating a new forest
#------------------------------------------------------------------------------------
Install-ADDSForest `
-Force `
-NoRebootOnCompletion `
-DomainNetBIOSName "$strTSNetBIOSName" `
-DomainName "$strTSDomainName" `
-ForestMode Win2012 `
-DomainMode Win2012 `
-SafeModeAdministratorPassword `
$secstrSafeModePassword
# Very basic error handling ...
#------------------------------------------------------------------------------------
If ($error)
{
Write-Host "Forest creation failed"
Exit 1000
}
Else
{
Write-Host "Forest created successfully"
}
![]() |
| Task Sequence Snippet: Active Directory Installation |
![]() |
| Installing a new forest with a PowerShell script |


No comments:
Post a Comment