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)).
Requirements | Installation and Usage | FAQ | Contribution | Code of Conduct
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.ps1
is 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.ps1
requires Windows PowerShell v2.0 or later and needs to be executed with administrative rights
- 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.ps1
to all relevant devices to install and activate the license
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>
The following section contains answers to frequently asked questions. Please feel free to file an issue or contact me should you have any question or need support.
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.
- 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
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.
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.
This project has adopted the Microsoft Open Source Code of Conduct.