Packer.Images/scripts/ADDS/Install-Prerequisites.ps1

50 lines
1.5 KiB
PowerShell

[CmdletBinding()]
Param(
# No parameters
)
$InstallWindowsFeatureSplat = @{
Name = 'AD-Domain-Services', 'DHCP', 'RSAT-DNS-Server'
IncludeAllSubFeature = $True
IncludeManagementTools = $True
Restart = $False
Confirm = $False
}
Install-WindowsFeature @InstallWindowsFeatureSplat
$InstallPackageProviderSplat = @{
Name = 'NuGet'
MinimumVersion = '2.8.5.201'
Force = $True
Confirm = $False
}
Install-PackageProvider @InstallPackageProviderSplat
$SetPSRepositorySplat = @{
Name = 'PSGallery'
InstallationPolicy = 'Trusted'
}
Set-PSRepository @SetPSRepositorySplat
$InstallModuleSplat = @{
Name = 'powershell-yaml','gpwmifilter'
Force = $True
Confirm = $False
}
Install-Module @InstallModuleSplat
$SetPSRepositorySplat = @{
Name = 'PSGallery'
InstallationPolicy = 'Untrusted'
}
Set-PSRepository @SetPSRepositorySplat
# Double check whether the required PowerShell modules are available
$RequiredModules = @(
'powershell-yaml', # Provides cmdlets 'ConvertTo-Yaml' and 'ConvertFrom-Yaml'
'gpwmifilter', # Provides cmdlets '*-GPWmiFilter' and '*-GPWmiFilterAssignment'
'psframework' # Dependency for GMWmiFilter
)
ForEach ($Module in $RequiredModules) {
If ([boolean](Get-Module -Name $Module -ListAvailable) -ne $True) {
Write-Error -Message "Missing PowerShell module '$($Module)'"
Exit 1
}
}