So I recently had the situation of a larger B1 installation that spans multiple servers, including some Windows Server 2016 (SLD/license server) as well as some 2008 R2 servers which hosted a group of company databases on SQL Server 2014.
Due to several reasons, it was not possible to update the Windows server from 2008 R2, nor did the customer have availability of a second server within that environment with a newer Windows server version (though we will migrate to that scenario as soon as possible).
Business One version 10 PL2 is only supported from Windows Server 2016 forward, so I couldn’t expect any help from SAP notes or SAP support either.
I tried my luck anyway.
PowerShell was at version 2.0, but the installer immediately required a higher version. So off to install Windows Management Framework 5.1, which includes PowerShell 5.1. That failed a couple of times, probably because I didn’t have domain admin rights, but I finally got the customer to install it successfully.
Several PowerShell scripts failed. While going through the log files I noticed that the “Get-NetIPAddress” command was not recognized. A web search revealed that the command, while available in PowerShell 5.1, was only available from Windows Server 2012 onward. Bummer. I did some digging and found that it was possible to write your own PowerShell cmdlets, that behave in the same way as a native cmdlet. So I thought, “I’ll write my own Get-NetIPAddress command!” And I did. It took me while to get it all figured out, but it finally looked like it was working.
When running the install again, I got a new error related to the “Get-NetTCPConnection” command not being recognized. Alright, so I created a subsitute for that command, too, then tried again.
This time the Service Layer and Web Client installed successfully. Only the Electronic Document Service failed. A look at the code didn’t immediately reveal the problem, since the error was an exception with a help text for “sc.exe”, which is the service installer. A closer look revealed the problem though: missing spaces in the file ElectronicDocumentService_service.ps1 where “sc.exe create” is called. See, in earlier versions, spaces are required after the parameter names such as “binPath= “, “start= ” and “DisplayName= “.
Since these powershell scripts get unpacked during installation, I fired up the installer again and waited for the files to unpack (path should be: C:\Users\<UserName>\AppData\Local\Temp\<SomethingRandom>\Installation Directory\SAP Business One SetupFiles\support\bin), then opened the file ElectronicDocumentService_service.ps1 and added the required spaces, then proceeded with the installation wizard. Successfully to the end!
So, to cut a long story short, should you try this at home? Most definitely not. You will not find much help anywhere. But does it work? It did for me. Your mileage may vary.
You can find my PowerShell scripts over on GitHub, if you’re interested. They only serve the purpose described, so they are no real substitutes for the above mentioned commands.
Let me know your thoughts!
All the best,