There's an early thread here for doing this on Windows and Linux hosts, so I thought I'd create one for Solaris 11.3 hosts. The passthrough mechanism in VirtualBox for SLIC data doesn't appear to have been included in the Solaris version as of release 5.1.8. If it has, it doesn't work for me.

I got a new Dell Precision 5810 at work just a few weeks ago, which runs Solaris 11.3 great with no driver issues. Here is how I got Windows that came with the computer to auto-activate in a VM. I started with other instructions in the forums here and modified them for Solaris 11.3. Not tested with any earlier version of Solaris. I had to install Solaris with the BIOS in UEFI mode due to the 2TB disks--I don't know if this impacts the information below.

1. If you don't have acipdump installed on your host, install it:

sudo pkg install pkg:/diagnostic/acpidump

2a. Test acpidump to see if it can find your ACPI tables:

sudo acpidump

If it can find them, you'll get a long list of of the tables in hex. Go to step 3a if your ACPI tables are found.

If the above command fails, then you'll see something like this:

ACPI tables were not found. If you know location of RSD PTR table (from dmesg, etc), supply it with either --addr or -a option

2b. No problem. Go to the BOTTOM of your current /var/adm/messages (with vi, this is the shift-G command). Then search backwards for RSDP (in vi, that's ?RSDP). Because this number changes with each boot, it's important you get this data for your current boot. That's why I say search backward from the bottom. For me, this last entry reads:

That should be all you need. The VM should auto-activate. However, I'm not sure if the commands below are necessary since I did them before I figured out the stuff above. If you need to make the VM look more like the original host because Windows won't activate, then continue.

Adding additional extradata fields:

Use the "smbios" command to retrieve data from the BIOS. I'm going to shortcut this rather than a step-by-step. You need to use the following to collect the various data seen below:

smbios -t0smbios -t1smbios -t2smbios -t3smbios -t4

For my system, below are the commands you create using the output of the smbios commands. The serial and UUID strings are modified for privacy, but I've made them consistent with each other as appropriate. Note that a couple commands have blank data, or else the strings will have VB defaults in them. The DmiSystemSKU value includes the attribute keyword "string" or it won't boot. Again, note the quotation marks, and some lines may wrap:

I should also mention that extracting the Windows activation code from the MSDM table, as I've seen posted on Linux forums, for me resulted in a correct looking sequence, but one that the OEM install image from Dell would not accept. Couldn't enter the third letter, which Windows says is an invalid character (an "N" for me). Perhaps it would work for Windows 10, but not Windows 7.

If interested, the command would be "acpidump -t MSDM", or correctly modified as outlined in the original post just as for extracting the SLIC table. The Windows activation code is at the end of this table. Quite obvious when you see the sequence, but is it valid for anything by itself...?