How-To Import License and Restart All Service Tiers

Daniel Gorski
CEO
2 Min. Lesezeit

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
ServerInstance : MicrosoftDynamicsNavServer$BC180_2
DisplayName : Microsoft Dynamics 365 Business Central Server [BC180_2]
ServerInstance : MicrosoftDynamicsNavServer$BC180_3
DisplayName : Microsoft Dynamics 365 Business Central Server [BC180_3]
If you run this on powershell:
Get-Service | where-object {$_.ServiceName -like 'MicrosoftDynamicsNavServer*'} | Foreach-Object {
$_.ServiceName
}
Returns:
MicrosoftDynamicsNavServer$BC180
MicrosoftDynamicsNavServer$BC180_2
MicrosoftDynamicsNavServer$BC180_3
Now split the string and get the 2nd value (Instance Name):
($\_.ServiceName -split "\\$")\[1\]
BC180
BC180_2
BC180_3
So let's put everthing together:
- Import-Module of Nav.Management
- Get the Path or our License File
- Iterate through all Instances and Import the License into our NAV Server
- 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
}