en-US/FreeActivate/FreeActivate-Help.xml
|
<?xml version="1.0" encoding="utf-8"?> <helpItems xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" schema="maml" xmlns="http://msh"> <command:command> <command:details> <command:name>Get-ActivationStatus</command:name> <maml:description> <maml:para>Retrieves Windows activation status using the Software Licensing Management Tool (slmgr.vbs).</maml:para> </maml:description> <command:verb>Get</command:verb> <command:noun>ActivationStatus</command:noun> </command:details> <maml:description> <maml:para>The Get-ActivationStatus function executes the Software Licensing Management Tool (slmgr.vbs) to retrieve detailed license information for the local Windows installation. It specifically extracts the license status from the output and returns it as a custom object.</maml:para> </maml:description> <command:syntax> <command:syntaxItem> <maml:name>Get-ActivationStatus</maml:name> </command:syntaxItem> </command:syntax> <command:parameters /> <command:inputTypes /> <command:returnValues> <command:returnValue> <dev:type> <dev:name>PSCustomObject</dev:name> </dev:type> <maml:description> <maml:para>Returns a custom object with a LicenseStatus property containing the Windows activation status.</maml:para> </maml:description> </command:returnValue> </command:returnValues> <maml:alertSet> <maml:alert> <maml:para>Author: Michael Free Date Created: January 29, 2026. Prerequisites: - Must be run with administrative privileges - Requires slmgr.vbs to be available (default Windows component) - Only works on Windows systems with Software Licensing service The function executes: cscript.exe /NoLogo $script:slmgrPath /dlv Where $script:slmgrPath should be defined elsewhere in the script/module. Common License Status values: - Licensed: Product is activated - Initial grace period: Evaluation period - Licensed (expired): Activation has expired - Notification: Grace period expired, notifications active</maml:para> </maml:alert> </maml:alertSet> <command:examples> <command:example> <maml:title>--------- EXAMPLE 1 ---------</maml:title> <maml:introduction> <maml:para>Get-ActivationStatus</maml:para> <maml:para>€</maml:para> <maml:para>LicenseStatus</maml:para> </maml:introduction> <dev:code /> <dev:remarks /> </command:example> <command:example> <maml:title>--------- EXAMPLE 2 ---------</maml:title> <maml:introduction> <maml:para>$status = Get-ActivationStatus PS C:\> Write-Host "Windows is: $($status.LicenseStatus)"</maml:para> <maml:para>€</maml:para> <maml:para>Windows is: Licensed</maml:para> <maml:para>€</maml:para> <maml:para>Description: Stores the activation status in a variable and displays it.</maml:para> </maml:introduction> <dev:code /> <dev:remarks /> </command:example> </command:examples> <command:relatedLinks> <maml:navigationLink> <maml:linkText>Online Version</maml:linkText> <command:uri /> </maml:navigationLink> </command:relatedLinks> </command:command> <command:command> <command:details> <command:name>Set-KmsActivation</command:name> <maml:description> <maml:para>Configures and activates Windows using a KMS (Key Management Service) server.</maml:para> </maml:description> <command:verb>Set</command:verb> <command:noun>KmsActivation</command:noun> </command:details> <maml:description> <maml:para>The Set-KmsActivation function configures Windows volume licensing by setting a KMS server, installing a product key, and activating Windows. It performs comprehensive validation including network connectivity checks, administrator privilege verification, and parameter format validation before attempting activation.</maml:para> </maml:description> <command:syntax> <command:syntaxItem> <maml:name>Set-KmsActivation</maml:name> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="Named" aliases="none"> <maml:name>Confirm</maml:name> <maml:description> <maml:para>Prompts you for confirmation before running the cmdlet.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">System.Management.Automation.SwitchParameter</command:parameterValue> </command:parameter> <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="false" position="1" aliases="none"> <maml:name>Key</maml:name> <maml:description> <maml:para>Specifies the Windows product key for activation. Must be in the standard 5x5 format (AAAAA-BBBBB-CCCCC-DDDDD-EEEEE). The key will be converted to uppercase automatically.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">System.String</command:parameterValue> </command:parameter> <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="false" position="0" aliases="none"> <maml:name>Server</maml:name> <maml:description> <maml:para>Specifies the KMS server address. Must be a valid IPv4 address or FQDN (Fully Qualified Domain Name). The server must be reachable and have port 1688 open for KMS activation.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">System.String</command:parameterValue> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="Named" aliases="none"> <maml:name>WhatIf</maml:name> <maml:description> <maml:para>Runs the command in a mode that only reports what would happen without performing the actions.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">System.Management.Automation.SwitchParameter</command:parameterValue> </command:parameter> </command:syntaxItem> </command:syntax> <command:parameters> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="Named" aliases="none"> <maml:name>Confirm</maml:name> <maml:description> <maml:para>Prompts you for confirmation before running the cmdlet.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">System.Management.Automation.SwitchParameter</command:parameterValue> </command:parameter> <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="false" position="1" aliases="none"> <maml:name>Key</maml:name> <maml:description> <maml:para>Specifies the Windows product key for activation. Must be in the standard 5x5 format (AAAAA-BBBBB-CCCCC-DDDDD-EEEEE). The key will be converted to uppercase automatically.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">System.String</command:parameterValue> </command:parameter> <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="false" position="0" aliases="none"> <maml:name>Server</maml:name> <maml:description> <maml:para>Specifies the KMS server address. Must be a valid IPv4 address or FQDN (Fully Qualified Domain Name). The server must be reachable and have port 1688 open for KMS activation.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">System.String</command:parameterValue> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="Named" aliases="none"> <maml:name>WhatIf</maml:name> <maml:description> <maml:para>Runs the command in a mode that only reports what would happen without performing the actions.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">System.Management.Automation.SwitchParameter</command:parameterValue> </command:parameter> </command:parameters> <command:inputTypes /> <command:returnValues> <command:returnValue> <dev:type> <dev:name>PSCustomObject4</dev:name> </dev:type> <maml:description> <maml:para>Returns the activation status from the Get-Activation function after successful configuration.</maml:para> </maml:description> </command:returnValue> </command:returnValues> <maml:alertSet> <maml:alert> <maml:para>Author: Michael Free Date Created: January 29, 2026 Prerequisites: - Must be run with administrative privileges - Requires slmgr.vbs to be available (default Windows component) - KMS server must be reachable and have port 1688 open - Server must be a valid IPv4 address or FQDN - Key must be in valid Windows product key format What the function does: 1. Validates administrator privileges 2. Removes spaces from Server and Key parameters 3. Validates parameter formats (IP/FQDN for Server, product key format for Key) 4. Tests network connectivity to KMS server (ICMP and TCP port 1688) 5. Executes slmgr.vbs commands with ShouldProcess support: - /ipk: Installs the product key - /skms: Sets the KMS server address - /ato: Activates Windows online 6. Returns activation status using Get-Activation Security: This function requires elevated privileges and modifies system licensing settings. Use with caution in production environments.</maml:para> </maml:alert> </maml:alertSet> <command:examples> <command:example> <maml:title>--------- EXAMPLE 1 ---------</maml:title> <maml:introduction> <maml:para>Set-KmsActivation -Server "kms01.company.com" -Key "XXXXX-YYYYY-ZZZZZ-WWWWW-VVVVV"</maml:para> <maml:para>€</maml:para> <maml:para>Description: Configures Windows to use kms01.company.com as the KMS server with the specified product key.</maml:para> </maml:introduction> <dev:code /> <dev:remarks /> </command:example> <command:example> <maml:title>--------- EXAMPLE 2 ---------</maml:title> <maml:introduction> <maml:para>Set-KmsActivation -Server "192.168.1.100" -Key "AAAAA-BBBBB-CCCCC-DDDDD-EEEEE" -Confirm:$false</maml:para> <maml:para>€</maml:para> <maml:para>Description: Configures Windows to use a KMS server at 192.168.1.100 without confirmation prompt.</maml:para> </maml:introduction> <dev:code /> <dev:remarks /> </command:example> <command:example> <maml:title>--------- EXAMPLE 3 ---------</maml:title> <maml:introduction> <maml:para>Set-KmsActivation -Server "kms.company.local" -Key "12345-ABCDE-67890-FGHIJ-12345" -WhatIf</maml:para> <maml:para>€</maml:para> <maml:para>Description: Shows what would happen without actually making changes (WhatIf scenario).</maml:para> </maml:introduction> <dev:code /> <dev:remarks /> </command:example> </command:examples> <command:relatedLinks> <maml:navigationLink> <maml:linkText>Online Version</maml:linkText> <command:uri /> </maml:navigationLink> </command:relatedLinks> </command:command> <command:command> <command:details> <command:name>Set-MakActivation</command:name> <maml:description> <maml:para>Activates Windows using a MAK (Multiple Activation Key) for volume licensing.</maml:para> </maml:description> <command:verb>Set</command:verb> <command:noun>MakActivation</command:noun> </command:details> <maml:description> <maml:para>The Set-MakActivation function installs and activates a Multiple Activation Key (MAK) for Windows volume licensing. This method is used for one-time activation directly with Microsoft's activation servers, as opposed to KMS (Key Management Service) which requires an on-premises server. The function validates the key format and requires administrative privileges.</maml:para> </maml:description> <command:syntax> <command:syntaxItem> <maml:name>Set-MakActivation</maml:name> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="Named" aliases="none"> <maml:name>Confirm</maml:name> <maml:description> <maml:para>Prompts you for confirmation before running the cmdlet.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">System.Management.Automation.SwitchParameter</command:parameterValue> </command:parameter> <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="false" position="0" aliases="none"> <maml:name>Key</maml:name> <maml:description> <maml:para>Specifies the Windows Multiple Activation Key (MAK). Must be in the standard 5x5 format (AAAAA-BBBBB-CCCCC-DDDDD-EEEEE). The key will be converted to uppercase automatically.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">System.String</command:parameterValue> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="Named" aliases="none"> <maml:name>WhatIf</maml:name> <maml:description> <maml:para>Runs the command in a mode that only reports what would happen without performing the actions.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">System.Management.Automation.SwitchParameter</command:parameterValue> </command:parameter> </command:syntaxItem> </command:syntax> <command:parameters> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="Named" aliases="none"> <maml:name>Confirm</maml:name> <maml:description> <maml:para>Prompts you for confirmation before running the cmdlet.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">System.Management.Automation.SwitchParameter</command:parameterValue> </command:parameter> <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="false" position="0" aliases="none"> <maml:name>Key</maml:name> <maml:description> <maml:para>Specifies the Windows Multiple Activation Key (MAK). Must be in the standard 5x5 format (AAAAA-BBBBB-CCCCC-DDDDD-EEEEE). The key will be converted to uppercase automatically.</maml:para> </maml:description> <command:parameterValue required="true" variableLength="true">System.String</command:parameterValue> </command:parameter> <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="Named" aliases="none"> <maml:name>WhatIf</maml:name> <maml:description> <maml:para>Runs the command in a mode that only reports what would happen without performing the actions.</maml:para> </maml:description> <command:parameterValue required="false" variableLength="true">System.Management.Automation.SwitchParameter</command:parameterValue> </command:parameter> </command:parameters> <command:inputTypes /> <command:returnValues> <command:returnValue> <dev:type> <dev:name>PSCustomObject</dev:name> </dev:type> <maml:description> <maml:para>Returns the activation status from the Get-Activation function after successful activation.</maml:para> </maml:description> </command:returnValue> </command:returnValues> <maml:alertSet> <maml:alert> <maml:para>Author: Michael Free Date Created: January 29, 2026 Prerequisites: - Must be run with administrative privileges - Requires slmgr.vbs to be available (default Windows component) - Key must be in valid Windows product key format - Internet connectivity is required for MAK activation - The MAK key must have available activations What the function does: 1. Validates administrator privileges 2. Removes spaces from the Key parameter 3. Validates the key format against the Windows key regex pattern 4. Converts the key to uppercase 5. Executes slmgr.vbs commands with ShouldProcess support: - /ipk: Installs the product key - /ato: Activates Windows online via Microsoft servers 6. Returns activation status using Get-Activation MAK vs KMS Activation: - MAK: One-time activation directly with Microsoft, suitable for devices that cannot connect to a KMS server regularly - KMS: Requires connection to a local KMS server every 180 days, suitable for large enterprise environments with on-premises infrastructure Security: This function requires elevated privileges and modifies system licensing settings. Use with caution in production environments.</maml:para> </maml:alert> </maml:alertSet> <command:examples> <command:example> <maml:title>--------- EXAMPLE 1 ---------</maml:title> <maml:introduction> <maml:para>Set-MakActivation -Key "XXXXX-YYYYY-ZZZZZ-WWWWW-VVVVV"</maml:para> <maml:para>€</maml:para> <maml:para>Description: Installs and activates the specified MAK key on the local Windows installation.</maml:para> </maml:introduction> <dev:code /> <dev:remarks /> </command:example> <command:example> <maml:title>--------- EXAMPLE 2 ---------</maml:title> <maml:introduction> <maml:para>Set-MakActivation -Key "AAAAA-BBBBB-CCCCC-DDDDD-EEEEE" -Confirm:$false</maml:para> <maml:para>€</maml:para> <maml:para>Description: Activates Windows with the specified MAK key without confirmation prompt.</maml:para> </maml:introduction> <dev:code /> <dev:remarks /> </command:example> <command:example> <maml:title>--------- EXAMPLE 3 ---------</maml:title> <maml:introduction> <maml:para>Set-MakActivation -Key "12345-ABCDE-67890-FGHIJ-12345" -WhatIf</maml:para> <maml:para>€</maml:para> <maml:para>Description: Shows what would happen without actually making changes (WhatIf scenario).</maml:para> </maml:introduction> <dev:code /> <dev:remarks /> </command:example> </command:examples> <command:relatedLinks> <maml:navigationLink> <maml:linkText>Online Version</maml:linkText> <command:uri /> </maml:navigationLink> </command:relatedLinks> </command:command> </helpItems> |