Welcome to the ActivationWs GitHub repository!
ActivationWs is a customizable solution that allows you to automate the Multiple Activation Key (MAK) activation process for Windows, Office, and other Microsoft products (eg. Extended Security Update (ESU)).
How does ActivationWs work and how does it benefit you?
ActivationWs includes an ASP.NET web service and a PowerShell script to install and activate the MAK. The following graphic shows a simplified version of the ESU license deployment and activation process (the deployment and activation process also applies to all other products):
- The PowerShell script
Activate-Product.ps1is deployed to your devices (eg. using ConfigMgr or another solution of your choice)
- The script installs the MAK, queries the Installation- and Product ID. It then sends a SOAP request to the ActivationWs web service (the ActivationWs web service is installed onto a host in your internal network. Communication takes place over a port of your choice, eg. 80/443)
- Installation- and Product IDs are sent to the Microsoft BatchActivation Service
- Confirmation ID is returned to the ActivationWs web service, which will then return the Confirmation ID to the device
- The script deposits the Confirmation ID and concludes the activation
- Helps organizations of any size with the deployment of MAKs
- Provides a pull-based activation solution and reduces obstacles faced during the product key activation
- Easy to implement, time-saving, allows you to ensure business goals are realized, manages risks and delivers business value
- Customizable and addresses privacy concerns, given the fact that the source code is available to the public
- ActivationWs web service runs on IIS and requires the .NET Framework 4.6 and ASP.NET modules
- The web service requires access to the Microsoft BatchActivation Service (
https://activation.sls.microsoft.com). A proxy server can be specified in the web.config file, where necessary
Activate-Product.ps1requires Windows PowerShell v2.0 or later and needs to be executed with administrative rights
Installation and Usage
- Build the solution (Visual Studio 2019 or later)
- Deploy the ActivationWs web service to IIS
- For the deployment of ESU licenses only: please ensure that all of the prerequisites are installed on your ESU eligible devices
- Deploy the PowerShell script
Activate-Product.ps1to all relevant devices to install and activate the license
Manual Confirmation ID retrieval
ActivationWs also supports you in the activation process of air-gapped devices.
- Open the ActivationWs site
- Enter the Installation- and Product ID to retrieve the corresponding Confirmation ID
- Activate the product by
slmgr.vbs /atp <Confirmation ID> <Activation ID>
How to get help
To which external addresses does ActivationWs web service specifically need access to?
ActivationWs web service requires access to the URL listed in the requirement section.
After successfully deploying the licenses using ActivationWs, how can I verify the deployment of the extended security updates?
Please take a look at this blog article, which outlines the available updates to verify the deployment.
Activate-Product.ps1 fails with "[Error] The product key is invalid"
- Check your product key
- For the deployment of ESU licenses only: ensure that all of the prerequisites are installed on your ESU eligible device
If it fails even though you followed these steps, please take a look at the following support article: How to rebuild the Tokens.dat file when you troubleshoot Windows activation issues.
Activate-Product.ps1 fails with "[Error] The Installation ID (IID) and the Confirmation ID (CID) do not match"
For the deployment of ESU licenses only: ensure that all of the prerequisites are installed on your ESU eligible device
Activate-Product.ps1 fails with "[Warning] The remote server returned an error: (500) Internal Server Error"
This is a "server-side" error, meaning that the ActivationWs web service couldn't acquire the Confirmation ID. Reasons include:
- The ActivationWs web service couldn't connect to the required URL
- No MAK activations are left on your product key
- The specified WebServiceUrl is incorrect
We're using SCCM to deploy your script. Is there way to obfuscate or hide the ESU key in the logs?
You could create a task sequence (TS) variable that contains the MAK. Then modify the PowerShell script
Activate-Product.ps1 to not output the product key and create an instance of a COM object that represents the TS environment to read the variable, eg.
$tsEnv = New-Object -COMObject Microsoft.SMS.TSEnvironment $productKey = $tsEnv.Value("PKEY")
This would prevent the product key from showing up in the ConfigMgr log files.
Contributions are welcome
There are many ways to contribute:
- Open a new bug report or feature request by opening a new issue here.
- Participate in the discussions of issues, pull requests and verify/test fixes or new features.
- Submit your own fixes or features as a pull request but please discuss it beforehand in an issue if the change is substantial.
- Submit test cases.
Code of Conduct
This project has adopted the Microsoft Open Source Code of Conduct.