Performing minor upgrade

Uitvoeren van minor upgrade

Performing a monthly minor cumulative upgrade can easily be done using, for example, PowerShell. On this page, you will find the functions. There is a separate page with variables, which is password-protected. You can find it here. Examples of how to execute these functions can be found here.

#---------------------------------------------------------------------------------
#Beschikbare documentatie
#---------------------------------------------------------------------------------
#Released Updates for Microsoft Dynamics 365 Business Central 2022 Release Wave 2 
#(BC21)
#Dynamics 365 Business Central on-premises 2023 release wave 1 updates (BC22)
#Installing a Business Central 2023 Release Wave 1 Update
#---------------------------------------------------------------------------------
#---------------------------------------------------------------------------------
#Laden van variables
#---------------------------------------------------------------------------------
$Script = "C:\NAV\Scripts\Performing a Minor Upgrade"
$Version = "220"
$Release = "W1"
$CURelease = "1"
$NewBcVersion = ""
$OldBcVersion = ""
Set-Location -Path $Script
. .\Variables.ps1
#---------------------------------------------------------------------------------
#---------------------------------------------------------------------------------
#Voorbereiden bestaande databases
#---------------------------------------------------------------------------------
function Prepare-Existing-Databases {

    [CmdletBinding()]
    param (
        [Parameter(Mandatory=$true)]
        [ValidateSet('Tenant1','Tenant2')]
        $TenantId,
        [Parameter(Mandatory=$true)]
        [ValidateSet('BCW1MT','BCNLMT')]
        $BCServerInstance
    )
    Import-module $Module
    Get-NAVAppInfo -ServerInstance $BcServerInstance
    Get-NAVAppInfo -ServerInstance $BcServerInstance -Tenant $TenantId `
    | % { Uninstall-NAVApp -ServerInstance $BcServerInstance -Tenant $TenantId `
    -Name $_.Name -Version $_.Version -Force}
    Unpublish-NAVApp -ServerInstance $BcServerInstance -Name System
    Dismount-NAVTenant -ServerInstance $BcServerInstance -Tenant $TenantId `
    -Force
    Stop-NAVServerInstance -ServerInstance $BcServerInstance
}
#---------------------------------------------------------------------------------
#---------------------------------------------------------------------------------
#Installeren Business Central Components
#---------------------------------------------------------------------------------
#Verwijder eerst de huidige installatie van BC22 en installeer dan de nieuwe 
#versie
#---------------------------------------------------------------------------------
#---------------------------------------------------------------------------------
#Converteer bestaande database naar het nieuwe platform
#---------------------------------------------------------------------------------
function Convert-existing-database-to-new-Platform {

    [CmdletBinding()]
    param (
        [Parameter(Mandatory=$true)]
        [ValidateSet('MSSURFACEBK03\BCDEMO','MSZBOOK15G03\BCDEMO')]
        $DatabaseServer,
        [Parameter(Mandatory=$true)]
        [ValidateSet('BCW1MT APP','BCNLMT APP')]
        $ApplicationDatabase,
        [Parameter(Mandatory=$true)]
        [ValidateSet('BCW1MT','BCNLMT')]
        $BCServerInstance
    )
    Import-module $Module
    Invoke-NAVApplicationDatabaseConversion -DatabaseServer $DatabaseServer `
    -DatabaseName $ApplicationDatabase -Force
    Set-NAVServerConfiguration -ServerInstance $BcServerInstance -KeyName `
    Multitenant-KeyValue true
    Set-NAVServerConfiguration -ServerInstance $BcServerInstance -KeyName `
    DatabaseName -KeyValue $ApplicationDatabase
    Restart-NAVServerInstance -ServerInstance $BcServerInstance
}
#---------------------------------------------------------------------------------
#---------------------------------------------------------------------------------
#Importeer Business Central Partner License
#---------------------------------------------------------------------------------
function Import-Business-Central-partner-license {

    [CmdletBinding()]
    param (
        [Parameter(Mandatory=$true)]
        [ValidateSet('BCW1MT','BCNLMT')]
        $BCServerInstance
    )
    Import-module $Module
    Import-NAVServerLicense -ServerInstance $BcServerInstance -LicenseFile `
    $PartnerLicense
    Restart-NAVServerInstance -ServerInstance $BcServerInstance
}
#---------------------------------------------------------------------------------
#---------------------------------------------------------------------------------
#Synchroniseer Business Central tenant
#---------------------------------------------------------------------------------
function Synchronize-tenant {

    [CmdletBinding()]
    param (
        [Parameter(Mandatory=$true)]
        [ValidateSet('BCW1MT','BCNLMT')]
        $BCServerInstance,
        [Parameter(Mandatory=$true)]
        [ValidateSet('BCW1MT CRONUSINT','BCNLMT CRONUSNL')]
        $TenantDatabase,
        [Parameter(Mandatory=$true)]
        [ValidateSet('Tenant1','Tenant2')]
        $TenantId
    )
    Import-module $Module
    Mount-NAVTenant -ServerInstance $BCServerInstance -DatabaseName `
    $TenantDatabase -Tenant $TenantId -Force -ErrorAction SilentlyContinue
    Sync-NAVTenant -ServerInstance $BcServerInstance -Tenant $TenantId -Mode `
    Sync -Force
    Get-NavTenant -ServerInstance $BCServerInstance -Tenant $TenantId
}
#---------------------------------------------------------------------------------
#---------------------------------------------------------------------------------
#Upgrade System Application, Base Application en Application
#---------------------------------------------------------------------------------
function System-Application-Base-Application-Application {

    [CmdletBinding()]
    param (
        [Parameter(Mandatory=$true)]
        [ValidateSet('BCW1MT','BCNLMT')]
        $BCServerInstance,
        [Parameter(Mandatory=$true)]
        [ValidateSet('Tenant1','Tenant2')]
        $TenantId 
    )
    Import-module $Module
    Publish-NAVApp -ServerInstance $BcServerInstance -Path $SystemAppPath
    Publish-NAVApp -ServerInstance $BcServerInstance -Path $BaseAppPath
    Publish-NAVApp -ServerInstance $BcServerInstance -Path $ApplicationAppPath
    Sync-NAVApp -ServerInstance $BcServerInstance -Tenant $TenantId -Name `
    "System Application" -Version $NewBcVersion
    Sync-NAVApp -ServerInstance $BcServerInstance -Tenant $TenantId -Name `
    "Base Application" -Version $NewBcVersion
    Sync-NAVApp -ServerInstance $BcServerInstance -Tenant $TenantId -Name `
    "Application" -Version $NewBcVersion
    Start-NAVAppDataUpgrade -ServerInstance $BcServerInstance -Tenant `
    $TenantId -Name "System Application" -Version $NewBcVersion
    Start-NAVAppDataUpgrade -ServerInstance $BcServerInstance -Tenant `
    $TenantId -Name "Base Application" -Version $NewBcVersion
    Start-NAVAppDataUpgrade -ServerInstance $BcServerInstance -Tenant `
    $TenantId -Name "Application" -Version $NewBcVersion
}
#---------------------------------------------------------------------------------
#---------------------------------------------------------------------------------
#Publiceer en installeer Microsoft extensies
#---------------------------------------------------------------------------------
function Publish-and-install-Microsoft-extensions {

    [CmdletBinding()]
    param (
        [Parameter(Mandatory=$true)]
        [ValidateSet('BCW1MT','BCNLMT')]
        $BCServerInstance,
        [Parameter(Mandatory=$true)]
        [ValidateSet('Tenant1','Tenant2')]
        $TenantId
    )
    Import-module $Module
    $Folders = "C:\NAV\Software\BC$Version.$CURelease\$Release\Applications\"
    $files = gci $Folders  -Filter *.app  -Recurse -Exclude "*test*", `
    "*Performance Toolkit*","*Tests*","*Library*"
    foreach ($file in $files) 
        {
            Copy-Item $file.PSPath -Destination $Destination
        }

    $Extensions = @(Get-ChildItem -Path $Destination  -Filter *.app)
    Publish-NavApp -ServerInstance $BCServerInstance -Path `
    "$Destination\Microsoft_Email - Outlook REST API.app"
    ForEach ($Extension in $Extensions)
        {
            Publish-NavApp -ServerInstance $BCServerInstance -Path `
            $Extension.FullName
            Write-Host $Extension.FullName
        }

    ForEach ($Extension in $Extensions)
        {
            (Get-ChildItem -Path "$Destination\*" -Name -Exclude "*.txt") `
            | Out-File "$Destination\Output1.txt"
            (Get-Content -Path "$Destination\Output1.txt") -replace `
            "Microsoft_" | Out-File "$Destination\Output2.txt"
            (Get-Content -Path "$Destination\Output2.txt") -creplace '.app' `
            | Out-File "$Destination\Output3.txt"
        }

    [System.IO.StreamReader]$sr = `
    [System.IO.File]::Open("$Destination\Output3.txt", `
    [System.IO.FileMode]::Open)
    while (-not $sr.EndOfStream)
        {
            $line = $sr.ReadLine()
            #Install-NavApp -ServerInstance $BCServerInstance -Tenant `
            #$TenantId -Name $Line -Version $NewVersion -Force
            Sync-NAVApp -ServerInstance $BcServerInstance -Tenant `
            $TenantId -Name $line -Version $NewBcVersion -Force
            #Start-NAVAppDataUpgrade -ServerInstance $BcServerInstance `
            #-Tenant $TenantId -Name $Line -Version $NewBcVersion -Force
        }
        $sr.Close()
    Return 0
    }
#---------------------------------------------------------------------------------
#---------------------------------------------------------------------------------
#Upgraden control add-ins
#---------------------------------------------------------------------------------
function Upgrade-control-add-ins {

    [CmdletBinding()]
    param (
        [Parameter(Mandatory=$true)]
        [ValidateSet('BCW1MT','BCNLMT')]
        $BCServerInstance
    )
    Import-module $Module
    Set-NAVAddIn -ServerInstance $BcServerInstance -AddinName `
    'Microsoft.Dynamics.Nav.Client.BusinessChart' -PublicKeyToken `
    31bf3856ad364e35 -ResourceFile ($AppName = Join-Path $AddinsFolder `
    'BusinessChart\Microsoft.Dynamics.Nav.Client.BusinessChart.zip')
    Set-NAVAddIn -ServerInstance $BcServerInstance -AddinName `
    'Microsoft.Dynamics.Nav.Client.FlowIntegration' -PublicKeyToken `
    31bf3856ad364e35 -ResourceFile ($AppName = Join-Path $AddinsFolder `
    'FlowIntegration\Microsoft.Dynamics.Nav.Client.FlowIntegration.zip')
    Set-NAVAddIn -ServerInstance $BcServerInstance -AddinName `
    'Microsoft.Dynamics.Nav.Client.OAuthIntegration' -PublicKeyToken `
    31bf3856ad364e35 -ResourceFile ($AppName = Join-Path $AddinsFolder `
    'OAuthIntegration\Microsoft.Dynamics.Nav.Client.OAuthIntegration.zip')
    Set-NAVAddIn -ServerInstance $BcServerInstance -AddinName `
    'Microsoft.Dynamics.Nav.Client.PageReady' -PublicKeyToken `
    31bf3856ad364e35 -ResourceFile ($AppName = Join-Path $AddinsFolder `
    'PageReady\Microsoft.Dynamics.Nav.Client.PageReady.zip')
    Set-NAVAddIn -ServerInstance $BcServerInstance -AddinName `
    'Microsoft.Dynamics.Nav.Client.PowerBIManagement' -PublicKeyToken `
    31bf3856ad364e35 -ResourceFile ($AppName = Join-Path $AddinsFolder `
    'PowerBIManagement\Microsoft.Dynamics.Nav.Client.PowerBIManagement.zip')
    Set-NAVAddIn -ServerInstance $BcServerInstance -AddinName `
    'Microsoft.Dynamics.Nav.Client.RoleCenterSelector' -PublicKeyToken `
    31bf3856ad364e35 -ResourceFile ($AppName = Join-Path $AddinsFolder `
    'RoleCenterSelector\Microsoft.Dynamics.Nav.Client.RoleCenterSelector.zip')
    Set-NAVAddIn -ServerInstance $BcServerInstance -AddinName `
    'Microsoft.Dynamics.Nav.Client.SatisfactionSurvey' -PublicKeyToken `
    31bf3856ad364e35 -ResourceFile ($AppName = Join-Path $AddinsFolder `
    'SatisfactionSurvey\Microsoft.Dynamics.Nav.Client.SatisfactionSurvey.zip')
    #Set-NAVAddIn -ServerInstance $BcServerInstance -AddinName `
    #'Microsoft.Dynamics.Nav.Client.SocialListening' -PublicKeyToken `
    #31bf3856ad364e35 -ResourceFile ($AppName = Join-Path $AddinsFolder `
    #'SocialListening\Microsoft.Dynamics.Nav.Client.SocialListening.zip')
    Set-NAVAddIn -ServerInstance $BcServerInstance -AddinName `
    'Microsoft.Dynamics.Nav.Client.VideoPlayer' -PublicKeyToken `
    31bf3856ad364e35 -ResourceFile ($AppName = Join-Path $AddinsFolder `
    'VideoPlayer\Microsoft.Dynamics.Nav.Client.VideoPlayer.zip')
    Set-NAVAddIn -ServerInstance $BcServerInstance -AddinName `
    'Microsoft.Dynamics.Nav.Client.WebPageViewer' -PublicKeyToken `
    31bf3856ad364e35 -ResourceFile ($AppName = Join-Path $AddinsFolder `
    'WebPageViewer\Microsoft.Dynamics.Nav.Client.WebPageViewer.zip')
    Set-NAVAddIn -ServerInstance $BcServerInstance -AddinName `
    'Microsoft.Dynamics.Nav.Client.WelcomeWizard' -PublicKeyToken `
    31bf3856ad364e35 -ResourceFile ($AppName = Join-Path $AddinsFolder `
    'WelcomeWizard\Microsoft.Dynamics.Nav.Client.WelcomeWizard.zip')
}
#---------------------------------------------------------------------------------
#---------------------------------------------------------------------------------
#Update applicatie versie
#---------------------------------------------------------------------------------
function Update-application-version {

    [CmdletBinding()]
    param (
        [Parameter(Mandatory=$true)]
        [ValidateSet('BCW1MT','BCNLMT')]
        $BCServerInstance,
        [Parameter(Mandatory=$true)]
        [ValidateSet('Tenant1','Tenant2')]
        $TenantId
    )
    Import-module $Module
    Set-NAVApplication -ServerInstance $BcServerInstance -ApplicationVersion `
    $NewBCVersion -Force
    Sync-NAVTenant -ServerInstance $BcServerInstance -Mode Sync -Tenant `
    $TenantId -Force
    Start-NAVDataUpgrade -ServerInstance $BcServerInstance `
    -FunctionExecutionMode Serial -Tenant $TenantId -Force
    Set-NAVServerConfiguration -ServerInstance $BcServerInstance -KeyName `
    SolutionVersionExtension -KeyValue "437dbf0e-84ff-417a-965d-ed2bb9650972" `
    -ApplyTo All
}
#---------------------------------------------------------------------------------
#---------------------------------------------------------------------------------
#Importeer de klant licentie
#---------------------------------------------------------------------------------
function Import-the-customer-license {

    [CmdletBinding()]
    param (
        [Parameter(Mandatory=$true)]
        [ValidateSet('BCW1MT','BCNLMT')]
        $BCServerInstance,
        [Parameter(Mandatory=$true)]
        [ValidateSet('Tenant1','Tenant2')]
        $TenantId
    )
    Import-module $Module
    Import-NAVServerLicense -ServerInstance $BcServerInstance -LicenseFile `
    $CustomerLicense -Database Default
    Import-NAVServerLicense -ServerInstance $BcServerInstance -LicenseFile `
    $CustomerLicense -Database Master
    Import-NAVServerLicense -ServerInstance $BcServerInstance -LicenseFile `
    $CustomerLicense -Database NavDatabase
    Import-NAVServerLicense -ServerInstance $BcServerInstance -LicenseFile `
    $CustomerLicense -Database Tenant -Tenant $TenantId
    Restart-NAVServerInstance -ServerInstance $BCServerInstance -Force
}
#---------------------------------------------------------------------------------
#---------------------------------------------------------------------------------
#Synchroniseer Business Central tenant
#---------------------------------------------------------------------------------
function Mount-Dismount-Synch-tenant {

    [CmdletBinding()]
    param (
        [Parameter(Mandatory=$true)]
        [ValidateSet('BCW1MT','BCNLMT')]
        $BCServerInstance,
        [Parameter(Mandatory=$true)]
        [ValidateSet('BCW1MT CRONUSINT','BCNLMT CRONUSNL')]
        $TenantDatabase,
        [Parameter(Mandatory=$true)]
        [ValidateSet('Tenant1','Tenant2')]
        $TenantId,
        [Parameter(Mandatory=$true)]
        [ValidateSet('cronusint.melsbergmans.nl','cronusnl.melsbergmans.nl')]
        $AlternateId,
        [Parameter(Mandatory=$true)]
        [ValidateSet('CRONUS International Ltd.','CRONUS Nederland BV')]
        $Company,
        [Parameter(Mandatory=$true)]
        [ValidateSet('MSSURFACEBK03\BCDEMO','MSZBOOK15G03\BCDEMO')]
        $DatabaseServer,
        [Parameter(Mandatory=$true)]
        [ValidateSet('https://cronusint.melsbergmans.nl',`
        'https://cronusnl.melsbergmans.nl')]
        $ValidAudiencesTenant
    )
    Import-module $Module
    Dismount-NAVTenant -ServerInstance $BCServerInstance -Tenant $TenantId `
    -Force
    Mount-NAVTenant –ServerInstance $BcServerInstance -Id $TenantId `
    –DatabaseServer $DatabaseServer -AadTenantId $TenantAADId -AlternateId `
    $AlternateId `
    -DatabaseName $TenantDatabase -OverwriteTenantIdInDatabase -DefaultCompany `
    $Company -DefaultTimeZone UTC -DisplayName $Company -ValidAudiences `
    $ValidAudiencesTenant -EnvironmentType Production -AllowAppDatabaseWrite `
    -NasServicesEnabled `
    -RunNasWithAdminRights -Force
    Sync-NAVTenant -ServerInstance $BcServerInstance -Tenant $TenantId -Mode `
    Sync -Force
    Get-NavTenant -ServerInstance $BCServerInstance -Tenant $TenantId -Force
}
#---------------------------------------------------------------------------------
#---------------------------------------------------------------------------------
#Uitvoeren van maintenance
#---------------------------------------------------------------------------------
function Performing-Maintenance {

    [CmdletBinding()]
    param (
        [Parameter(Mandatory=$true)]
        [ValidateSet('BCW1MT','BCNLMT')]
        $BCServerInstance
    )
    Import-module $Module
    Set-NavServerConfiguration -ServerInstance $BcServerInstance -KeyName `
    ODataServicesPort -KeyValue $ODataServicesPort 
    Set-NavServerConfiguration -ServerInstance $BcServerInstance -KeyName `
    ManagementServicesPort -KeyValue $ManagementServicesPort 
    Set-NavServerConfiguration -ServerInstance $BcServerInstance -KeyName `
    SnapshotDebuggerServicesPort -KeyValue $SnapshotDebuggerServicesPort 
    Set-NavServerConfiguration -ServerInstance $BcServerInstance -KeyName `
    ClientServicesPort -KeyValue $ClientServicesPort 
    Set-NavServerConfiguration -ServerInstance $BcServerInstance -KeyName `
    DeveloperServicesPort -KeyValue $DeveloperServicesPort 
    Set-NavServerConfiguration -ServerInstance $BcServerInstance -KeyName `
    SOAPServicesPort -KeyValue $SOAPServicesPort 
    Set-NavServerConfiguration -ServerInstance $BcServerInstance -KeyName `
    ManagementApiServicesPort -KeyValue $ManagementApiServicesPort 
    Set-NavServerConfiguration -ServerInstance $BcServerInstance -KeyName `
    PublicODataBaseUrl -KeyValue $PublicODataBaseUrl 
    Set-NavServerConfiguration -ServerInstance $BcServerInstance -KeyName `
    AppIdUri -KeyValue $AppIdUri 
    Set-NavServerConfiguration -ServerInstance $BcServerInstance -KeyName `
    ExcelAddInAzureActiveDirectoryClientId -KeyValue `
    $ExcelAddInAzureActiveDirectoryClientId 
    Set-NavServerConfiguration -ServerInstance $BcServerInstance -KeyName `
    ExtendedSecurityTokenLifetime -KeyValue $ExtendedSecurityTokenLifetime 
    Set-NavServerConfiguration -ServerInstance $BcServerInstance -KeyName `
    NASServicesStartupCodeunit -KeyValue $NASServicesStartupCodeunit 
    Set-NavServerConfiguration -ServerInstance $BcServerInstance -KeyName `
    PublicSOAPBaseUrl -KeyValue $PublicSOAPBaseUrl 
    Set-NavServerConfiguration -ServerInstance $BcServerInstance -KeyName `
    PublicWebBaseUrl -KeyValue $PublicWebBaseUrl 
    Set-NavServerConfiguration -ServerInstance $BcServerInstance -KeyName `
    ServicesCertificateThumbprint -KeyValue $ServicesCertificateThumbprint 
    Set-NavServerConfiguration -ServerInstance $BcServerInstance -KeyName `
    ServicesDefaultCompany -KeyValue $ServicesDefaultCompany 
    Set-NavServerConfiguration -ServerInstance $BcServerInstance -KeyName `
    ValidAudiences -KeyValue $ValidAudiencesServer 
    Set-NavServerConfiguration -ServerInstance $BcServerInstance -KeyName `
    WSFederationLoginEndpoint -KeyValue $WSFederationLoginEndpoint 
    Set-NavServerConfiguration -ServerInstance $BcServerInstance -KeyName `
    ClientServicesCredentialType -KeyValue $NSTClientServicesCredentialType 
    Set-NavServerConfiguration -ServerInstance $BcServerInstance -KeyName `
    DeveloperServicesEnabled -KeyValue $DeveloperServicesEnabled
    Set-NavServerConfiguration -ServerInstance $BcServerInstance -KeyName `
    SOAPServicesEnabled -KeyValue $SOAPServicesEnabled
    Set-NavServerConfiguration -ServerInstance $BcServerInstance -KeyName `
    ODataServicesEnabled -KeyValue $ODataServicesEnabled
    Set-NavServerConfiguration -ServerInstance $BcServerInstance -KeyName `
    DeveloperServicesSSLEnabled -KeyValue $DeveloperServicesSSLEnabled
    Set-NavServerConfiguration -ServerInstance $BcServerInstance -KeyName `
    SOAPServicesSSLEnabled -KeyValue $SOAPServicesSSLEnabled
    Set-NavServerConfiguration -ServerInstance $BcServerInstance -KeyName `
    ODataServicesSSLEnabled -KeyValue $ODataServicesSSLEnabled
    Set-NavServerConfiguration -ServerInstance $BcServerInstance -KeyName `
    ManagementApiServicesPort -KeyValue $ManagementApiServicesPort
    Set-NavServerConfiguration -ServerInstance $BcServerInstance -KeyName `
    Multitenant -KeyValue $Multitenant
    Set-NavServerConfiguration -ServerInstance $BcServerInstance -KeyName `
    ADOpenIdMetadataLocation -KeyValue $ADOpenIdMetadataLocation
    Set-NavWebServerInstanceConfiguration -WebServerInstance $BcServerInstance `
    -KeyName AadAuthorityUri -KeyValue $AadAuthorityUri
    Set-NavWebServerInstanceConfiguration -WebServerInstance $BcServerInstance `
    -KeyName AadApplicationId -KeyValue $AadApplicationId
    Set-NavWebServerInstanceConfiguration -WebServerInstance $BcServerInstance `
    -KeyName DnsIdentity -KeyValue $DnsIdentity
    Set-NavWebServerInstanceConfiguration -WebServerInstance $BcServerInstance `
    -KeyName ClientServicesCredentialType -KeyValue `
    $WebClientServicesCredentialType 
    Restart-NAVServerInstance -ServerInstance $BCServerInstance
    IISRESET
}
#---------------------------------------------------------------------------------
#---------------------------------------------------------------------------------
#Uninstall old extensions
#---------------------------------------------------------------------------------
function Uninstall-Unpublish-OldExtensions {

    [CmdletBinding()]
    param (
        [Parameter(Mandatory=$true)]
        [ValidateSet('BCW1MT','BCNLMT')]
        $BCServerInstance
    )
    Import-module $Module
    Get-NAVAppInfo -ServerInstance $BcServerInstance -Version $OldBcVersion `
    | % {Unpublish-NAVApp -ServerInstance $BcServerInstance -Name `
    $_.Name -Version $OldBcVersion} -ErrorAction SilentlyContinue
}
#---------------------------------------------------------------------------------
#---------------------------------------------------------------------------------
#Herstart de NST-service
#---------------------------------------------------------------------------------
function Restart-NST-service {

    [CmdletBinding()]
    param (
        [Parameter(Mandatory=$true)]
        [ValidateSet('BCW1MT','BCNLMT')]
        $BCServerInstance
    )
    Import-module $Module
    Restart-NAVServerInstance -ServerInstance $BcServerInstance
}
#---------------------------------------------------------------------------------

Why performing a minor upgrade regularly?

Regularly performing minor cumulative upgrades for Dynamics NAV or Dynamics 365 Business Central is essential for several reasons.

First, it ensures that your system stays up to date with the latest security patches. This is crucial for protecting your data against potential threats and for staying compliant with ever-evolving security standards.

In addition, these upgrades improve system performance. New updates often include optimizations and bug fixes that enhance the overall efficiency and stability of the software. This results in a smoother user experience and reduces the risk of unexpected issues.

Furthermore, cumulative upgrades provide access to new features and improvements. By upgrading regularly, you can take advantage of the latest innovations and functionalities introduced by Microsoft. This can streamline your business processes and give your organization a competitive edge.

Regular upgrades also help to prevent compatibility issues. As other software and systems evolve, it’s important that your Dynamics NAV or Dynamics 365 Business Central environment remains compatible with those changes. This ensures seamless integration with other tools and technologies your business relies on.

In short, regularly performing minor cumulative upgrades keeps your system secure, efficient, and future-proof. It also reduces the risk of unexpected costs and downtime from having to do major, disruptive updates later on. Regular upgrades make managing your system easier and less time-consuming.

If you’re using Business Central in Microsoft’s SaaS environment, this is, of course, handled for you automatically.

More information about Microsoft Business Central can be found here. More information about the author of this blog post can be found here.

0 Shares:
You May Also Like