http://bugs.winehq.org/show_bug.cgi?id=30033
t-roy@mailinator.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |t-roy@mailinator.com
--- Comment #15 from t-roy@mailinator.com 2012-08-13 10:45:16 CDT --- I've added the following to the comments section of the AppDB Page before I saw this bug report. It is possible to do KMS Activation, but the provided OSPP.VBS script does not work with wines wscript implementation. I wrote a small OSPP.VBS replacement which just accomplishes the /act function of the original OSPP.VBS.
f you use office products which use Microsoft KMS to activate, the OSPP.VBS script doesn't work with wines wscript. I've created a script which does the activiation, its much shorter than OSPP.VBS. You have to set your activation host in the registry before using the script.
Per the documentation here technet.microsoft.com/en-us/library/ee624350.aspx
use regedit to set HKLM\Software\Microsoft\OfficeSoftwareProtectionPlatform\KeyManagementServiceName to your KMS server address or IP, then save the following visual basic script in a .VBS file and run it with wscript from the wine cmd prompt.
Z:> wscript OSPP-ACT.VBS
you will be able to activate MSOffice products via KMS in Wine.
'-----------VB SCRIPT-------------
Set objWMI = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\" & "." & "\root\cimv2")
ExecuteQuery "ID, ApplicationId, PartialProductKey, Description, Name","PartialProductKey null","OfficeSoftwareProtectionProduct"
Function ExecuteQuery(strSelect,strWhere,strClass)
Err.Clear
If strWhere = "" Then Set productinstances = objWMI.ExecQuery("SELECT " & strSelect & " FROM " & strClass) Else Set productinstances = objWMI.ExecQuery("SELECT " & strSelect & " FROM " & strClass & " WHERE " & strWhere) End If
sppErrHandle ""
End Function
Set count = productinstances.Count
For index = 0 to count set instance = productinstances.Item(index) If (LCase(instance.ApplicationId) = OfficeAppId) Then If instance.PartialProductKey "" Then i = i + 1 End If instance.Activate SppErrHandle(strCommand) End If Next
'------------------END VBSCRIPT--------------