How-To Import License and Restart All Service Tiers

If you are running multiple Instances of Microsoft Dynamics 365 Business Central Servers on one Machine - here is a small script to update the license and restart them!


So our Environment has these three Instances:

ServerInstance : MicrosoftDynamicsNavServer$BC180
DisplayName    : Microsoft Dynamics 365 Business Central Server [BC180]
State          : Running
ServiceAccount : Administrator
Version        : 18.0.26213.26464
Default        : True

ServerInstance : MicrosoftDynamicsNavServer$BC180_2
DisplayName    : Microsoft Dynamics 365 Business Central Server [BC180_2]
State          : Running
ServiceAccount : Administrator
Version        : 18.0.26213.26464
Default        : True

ServerInstance : MicrosoftDynamicsNavServer$BC180_3
DisplayName    : Microsoft Dynamics 365 Business Central Server [BC180_3]
State          : Running
ServiceAccount : Administrator
Version        : 18.0.26213.26464
Default        : True


If you run this on powershell:

Get-Service | where-object {$_.ServiceName -like 'MicrosoftDynamicsNavServer*'} | Foreach-Object { 
    $_.ServiceName
}


$_.ServiceName will throw this:

MicrosoftDynamicsNavServer$BC180
MicrosoftDynamicsNavServer$BC180_2
MicrosoftDynamicsNavServer$BC180_3

Let's split the string and get the 2nd value:

($_.ServiceName -split "\$")[1]

BC180
BC180_2
BC180_3

So let's put everthing together:


1. Import-Module of Nav.Management

2. Get the Path or our License File

3. Iterate through all Instances and Import the License into our NAV Server

4. Restart it

Import-Module "C:\Program Files\Microsoft Dynamics 365 Business Central\180\Service\Microsoft.Dynamics.Nav.Management.psd1"
$license = (Get-ChildItem -Filter *.flf).FullName

Get-Service | where-object {$_.ServiceName -like 'MicrosoftDynamicsNavServer*'} | Foreach-Object { 
    $serviceinstance = ($_.ServiceName -split "\$")[1]
    Import-NAVServerLicense -LicenseFile $license -ServerInstance $serviceinstance -Force 
    Restart-NAVServerInstance -ServerInstance $serviceinstance -Force
}

Or just Start all Services which stopped:

Get-Service | where-object {($_.ServiceName -like 'MicrosoftDynamicsNavServer*') -and ($_.Status -eq "Stopped")} | Foreach-Object { 
    $serviceinstance = ($_.ServiceName -split "\$")[1]
    Restart-NAVServerInstance -ServerInstance $serviceinstance -Force
}

262 Ansichten0 Kommentare

Aktuelle Beiträge

Alle ansehen