EDIT: This is a known issue that MSFT is actively working on addressing
You are here
D365FFO On-Prem License Import
Importing a license into an Azure hosted environment, like a development environment, is fairly easy and well documented. An example is below:
K:\AosService\PackagesLocalDirectory\bin\Microsoft.Dynamics.AX.Deployment.Setup.exe --setupmode importlicensefile --licensefilename C:\Temp\License.txt --metadatadir k:\AosService\PackagesLocalDirectory --bindir k:\AosService\PackagesLocalDirectory --sqlserver localhost --sqldatabase AXDB --sqluser axdbadmin -- sqlpwd axDbAdminAccountPassword
However, doing the same thing with an on-prem instance isn't quite as easy. All portions of D365 are semi hidden as part of the service fabric. First, lets go over how to find the AX service (AXService.exe) components on an AOS in a service fabric cluster (SFC). The default install location for all SFC components, regardless of node type, is C:\ProgramData\SF\. C:\ProgramData\ is hidden so you will have to type it in to get there or show hidden folders. From C:\ProgramData\SF\, you will find a folder for the node type followed by the last 3 of the IP for that node in the cluster. In this example we're going to find AOS_233. Once we have identified the folder, next we'll navigate to fabric then work then applications. From there, the folders will differ for each depending on the node type. An AOS type will have different apps than an Orchestrator type (ORCH). From here, we will look for the AXSFType folder ending in AppX where X is a number. Its a sequential number that increases each time the app is deployed. As you do servicing from LCS, you'll notice this app number increase. Next, we'll want to find the AXSF.Code* folder for the exe that handles the request. This is the same exe as example above. For our example, we should be at C:\ProgramData\SF\AOS_233\Fabric\work\Applications\AXSFType_App84\AXSF.Code.1.0.20180405130633. Next, we'll need the Bin directory then the executable so that finished command will look like this:
C:\ProgramData\SF\AOS_233\Fabric\work\Applications\AXSFType_App84\AXSF.Code.1.0.20180405130633\bin\Microsoft.Dynamics.AX.Deployment.Setup.exe --setupmode importlicensefile --licensefilename C:\Temp\License.txt --metadatadir C:\ProgramData\SF\AOS_233\Fabric\work\Applications\AXSFType_App84\AXSF.Code.1.0.20180405130633\Packages --bindir C:\ProgramData\SF\AOS_233\Fabric\work\Applications\AXSFType_App84\AXSF.Code.1.0.20180405130633\Packages --sqlserver fullyQualifiedSQLServerName.Domain.Com --sqldatabase AXDB --sqluser axdbadmin --sqlpwd axDbAdminAccountPassword
In order to not get an error when interacting with SQL, the name by which you refer to the server in this script should match exactly the name in the cert used for SQL that was installed on the AOS. If you use localhost or ".", you will get a SQL related error.