Private/Scriptblocks.ps1
$installD365Module = { try { Stop-Transcript | out-null } catch { $error.clear() } New-Item -ItemType Directory -Force -Path C:\Install\Log -ErrorAction SilentlyContinue | Out-Null Start-Transcript -Path "C:\Install\Log\InstallD365Module.$(get-date -format yyyyMMddhhmmss).log" if (Get-Module -Name SetupD365Environment -ListAvailable) { Update-Module -Name SetupD365Environment -Force } else { Install-Module -Name SetupD365Environment -Force } Stop-Transcript } $initializeVm = { $ErrorActionPreference = "SilentlyContinue" try { Stop-Transcript | out-null } catch { $error.clear() } New-Item -ItemType Directory -Force -Path C:\Install\Log -ErrorAction SilentlyContinue | Out-Null Start-Transcript -Path "C:\Install\Log\InitVM.$(get-date -format yyyyMMddhhmmss).log" Import-Module -Name SetupD365Environment Initialize-CustomAzVm Stop-Transcript } $downloadBCDVD = { Param( [Parameter(Mandatory = $false, Position = 3)] [string] $Version, [Parameter(Mandatory = $false, Position = 4)] [string] $CumulativeUpdate, [Parameter(Mandatory = $false, Position = 5)] [string] $Language ) try { Stop-Transcript | out-null } catch { $error.clear() } Start-Transcript -Path "C:\Install\Log\DownloadBC.$(get-date -format yyyyMMddhhmmss).log" Import-Module SetupD365Environment Write-Host "Version: $Version CU: $CumulativeUpdate Lang: $Language..." Receive-BusinessCentralDVD -Version $Version -CumulativeUpdate $CumulativeUpdate -Language $Language Stop-Transcript } $installBC = { Param( [Parameter(Mandatory = $false, Position = 1)] [string] $DownloadDirectory, [Parameter(Mandatory = $false, Position = 2)] [string] $ConfigurationFile, [Parameter(Mandatory = $false, Position = 3)] [string] $LicenseFilename ) try { Stop-Transcript | out-null } catch { $error.clear() } Start-Transcript -Path "C:\Install\Log\InstallBC.$(get-date -format yyyyMMddhhmmss).log" # TODO: Remove later >> Update-Module -Name SetupD365Environment -Force # TODO << Import-Module SetupD365Environment Write-Host "Installing Business Central" $InstallArgs = @{ } if (-not([string]::IsNullOrEmpty($DownloadDirectory))){ $InstallArgs.Add('DownloadDirectory',$DownloadDirectory) } if (-not([string]::IsNullOrEmpty($ConfigurationFile))){ $InstallArgs.Add('ConfigurationFile',$ConfigurationFile) } if (-not([string]::IsNullOrEmpty($LicenseFilename))){ $InstallArgs.Add('LicenseFilename',$LicenseFilename) } Install-BusinessCentral @InstallArgs # Set default Service to disabled Get-Service | Where-Object {$_.Name -like 'MicrosoftDynamicsNavServer*'} | Set-Service -StartupType Disabled Stop-Transcript } |