Exchange Server 2016 Unattended Installation

Att installera Microsoft Exchange Server 2016 obevakat är nästintill lika enkelt som att installera upp Active Directory med PowerShell.

Så här satte jag ihop mitt tillvägagångssätt och mina PowerShell script (dessa script kan självfallet förbättras och inbakas till ett script men har här valt att göra det enkelt):

Förutsättningar:

  • En färdig Active Directory-miljö installerad med högsta Domain & Forest Functional Level.
  • Exchange Server installerad med Windows Server 2012 R2 och med två diskar (en C- och en D-disk).

Först behöver vi extrahera ut filer och mappar från Exchange Server 2016 ISO till D:Exch_Setup_Files. Lägg i skivan/ISO-filen och starta EXE-filen som sedan kommer fråga dig vart du vill extrahera filerna.
Väljer vi en annan mapp får vi ändra sökvägen i scripten nedanför.

Se till att köra scripten med en användare som är medlem i Domain Admins gruppen då vi kommer att uppdatera Active Directory Schema för att kunna installera Exchange Server.

Vi har totalt tre script för att köra denna installation:

  1. Installera samtliga Windows Features
  2. Ladda ner och installera förutsättningar för Exchange Server
  3. Installera Exchange Server

Första scriptet kommer att installera flertalet Windows Features som behövs, dels för de förutsättningar som installeras i andra scriptet och dels för själva installationen av Exchange Server med dess roller. När installationen är klar av alla funktioner (Features) kommer maskinen att startas om två gånger. Vi behöver starta om maskinen innan vi installerar förutsättningarna då dessa är beroende av funktionerna i detta första script.

Det andra scriptet kommer att skapa en mapp på D: disken där scriptet sedan kommer ladda hem förutsättningarna (.NET Framework 4.5.2 och Unified Communications Managed API 4.0 Runtime) som behöver installeras innan vi kan påbörja installationen av Exchange Server. När denna installation är klar kommer maskinen att startas om och vi kan påbörja nästa script.

Sista scriptet är själva installationen av Exchange Server där vi förbereder Active Directory Schema, domänen samt specificerar organisationsnamn, roll och platsen för Exchange-filerna.

## Install Microsoft Exchange Server 2016 Unattend
## Part 1 – Download and Install PreReqs on Exchange Server

## Runs on Exchange Server with Domain Admin permissions

If (-NOT ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole(
[Security.Principal.WindowsBuiltInRole] "Administrator"))

{
Write-Warning "Sorry! You need to run this script from an elevated PowerShell prompt!
nPlease start the PowerShell prompt as an Administrator and re-run the script.”
Write-Warning “Aborting script…”
Break
}

# Install Pre-Req Features For Exchange Server 2016 Mailbox Server

Install-WindowsFeature AS-HTTP-Activation, Desktop-Experience, NET-Framework-45-Features, RPC-over-HTTP-proxy, RSAT-Clustering, RSAT-Clustering-CmdInterface, RSAT-Clustering-Mgmt, RSAT-Clustering-PowerShell, Server-Media-Foundation, Web-Mgmt-Console, WAS-Process-Model, Web-Asp-Net45, Web-Basic-Auth, Web-Client-Auth, Web-Digest-Auth, Web-Dir-Browsing, Web-Dyn-Compression, Web-Http-Errors, Web-Http-Logging, Web-Http-Redirect, Web-Http-Tracing, Web-ISAPI-Ext, Web-ISAPI-Filter, Web-Lgcy-Mgmt-Console, Web-Metabase, Web-Mgmt-Console, Web-Mgmt-Service, Web-Net-Ext45, Web-Request-Monitor, Web-Server, Web-Stat-Compression, Web-Static-Content, Web-Windows-Auth, Web-WMI, Windows-Identity-Foundation -Verbose

Restart-Computer

exch script 1

Efter att maskinen startats om kan vi starta nästa script.

Detta script kommer att skapa mappen Exch_PreReqs under D: roten och lägga till Domain Admins gruppen som kommer ha full kontroll på mappen och allt innehåll.

Därefter kommer scriptet att påbörja nedladdningen av .NET Framework 4.5.2 och placera dess EXE-fil i den mapp vi skapade först. När nedladdningen är klar kommer en tyst installation av programvaran köras.

När .NET Framework 4.5.2 är installerat kommer nedladdningen av Unified Communications Managed API 4.0 Runtime att påbörjas som i sin tur kommer att installeras och automatiskt starta om maskinen när installationen är slutförd.

## Install Microsoft Exchange Server 2016 Unattend
## Part 2 – Download and Install PreReqs on Exchange Server

## Runs on Exchange Server with Domain Admin permissions

If (-NOT ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole(
[Security.Principal.WindowsBuiltInRole] "Administrator"))
{
Write-Warning "Sorry! You need to run this script from an elevated PowerShell prompt!
nPlease start the PowerShell prompt as an Administrator and re-run the script.”
Write-Warning “Aborting script…”
Break
}

# Create folder for Exchange Server 2016 PreReqs and set directory permissons to Domain Admins

New-Item “D:Exch_PreReqs” -ItemType Directory
$user = “thoordomain admins”
$folder = “D:Exch_PreReqs”
$acl = get-acl -path $folder
$new = $user,”FullControl”,”ContainerInherit,ObjectInherit”,”None”,”Allow”
$accessRule = new-object System.Security.AccessControl.FileSystemAccessRule $new
$acl.AddAccessRule($accessRule)
$acl | Set-Acl $folder

# Unattended Download and Installation of .NET Framework 4.5.2

$sourceNET = “http://download.microsoft.com/download/E/2/1/E21644B5-2DF2-47C2-91BD-63C560427900/NDP452-KB2901907-x86-x64-AllOS-ENU.exe”
$destinationNET = “D:Exch_PreReqs”
Invoke-WebRequest $sourceNET -OutFile “$destinationNETNDP452-KB2901907-x86-x64-AllOS-ENU.exe”
cd “D:Exch_PreReqs”
.NDP452-KB2901907-x86-x64-AllOS-ENU.exe /passive /norestart | out-null

# Unattended Download and Installation of Unified Communications Managed API 4.0 Runtime

$sourceUCMA = “http://download.microsoft.com/download/2/C/4/2C47A5C1-A1F3-4843-B9FE-84C0032C61EC/UcmaRuntimeSetup.exe”
$destinationUCMA = “D:Exch_PreReqs”
Invoke-WebRequest $sourceUCMA -OutFile “$destinationUCMAUcmaRuntimeSetup.exe”
cd “D:Exch_PreReqs”
.UcmaRuntimeSetup.exe /passive /norestart | out-null

Restart-Computer

exch script 2

Efter att maskinen startat om kan vi påbörja installationen av Exchange Server 2016.
Start nedanstående script med en användare som är medlem i Domain Admins gruppen.

Detta script kommer att installera RSAT-ADDS funktionen och därefter börja förbereda och ändra Active Directory Schema samt Active Directory domän-tjänsterna för att få Exchange att fungera i vår miljö där vi tillslut påbörjar installationen av Exchange Server 2016 med rollen Mailbox och där vi valt att peka installationen till D: disken.

Med Write-Host pipat i vårt script kommer vi se exakt vad som installeras i PowerShell konsolen så vi enkelt kan följa med vart vi är i processen av installationen.

## Install Microsoft Exchange Server 2016 Unattend
## Part 3 – Prepare AD Schema and Install Exchange Server 2016

## Runs on Exchange Server with Domain Admin permissions

If (-NOT ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole(
[Security.Principal.WindowsBuiltInRole] "Administrator"))
{
Write-Warning "Sorry! You need to run this script from an elevated PowerShell prompt!
nPlease start the PowerShell prompt as an Administrator and re-run the script.”
Write-Warning “Aborting script…”
Break
}

# Install RSAT-ADDS

Install-WindowsFeature RSAT-ADDS -Verbose

# Prepare Schema

cd “D:Exch_setup_files”
.setup.exe /PrepareSchema /IAcceptExchangeServerLicenseTerms | Write-Host | Out-Null

# Prepare Active Directory

cd “D:Exch_setup_files”
.setup.exe /PrepareAD /OrganizationName:”Thoor” /IAcceptExchangeServerLicenseTerms | Write-Host | Out-Null

# Install Exchange 2016 with Mailbox Role on specified TargetDir

cd “D:Exch_setup_files”
.setup.exe /mode:Install /role:Mailbox /TargetDir:”D:Exchange” /IAcceptExchangeServerLicenseTerms | Write-Host | Out-Null

Restart-Computer

Detta script kan ta en stund att köras igenom, men allt visas i PowerShell konsolen. När installationen av Exchange Server 2016 är klar kommer maskinen att startas om och användningen av Exchange kan påbörjas efter omstart.

Exch_install3

exch mgmt web

 

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *

%d bloggers like this: