diff --git a/docs/cwrmm/custom-fields/esu-status.md b/docs/cwrmm/custom-fields/esu-status.md index 3d5852e90..bfcbc30d3 100644 --- a/docs/cwrmm/custom-fields/esu-status.md +++ b/docs/cwrmm/custom-fields/esu-status.md @@ -3,7 +3,7 @@ id: '90f075dc-5997-4abe-8a89-c46c6d566de0' slug: /90f075dc-5997-4abe-8a89-c46c6d566de0 title: 'ESU Status' title_meta: 'ESU Status' -keywords: ['ESU','extended security'] +keywords: ['esu','extended security'] description: 'Stores the result from the ESU Audit script' tags: ['auditing','licensing','patching','windows'] draft: false @@ -12,13 +12,18 @@ unlisted: false ## Summary -Stores the result from the ESU Audit script. +Stores the result from the [ESU License Activation Detection](/docs/fad37673-34ab-46e9-8797-b87058f79faa) script. ## Details -| Name | Level | Type | Default? | Required | Editable | Description | -|------------|----------|--------|-----------|----------|----------|---------------------------------------------| -| ESU Status | Endpoint | Text | blank | False | No | Stores the result from the ESU Audit script | +| Name | Level | Type | Default | Editable | Description | +|------------|----------|--------|----------|----------|---------------------------------------------| +| ESU Status | Endpoint | Text Box | Not Detected | No | Stores the result from the ESU Audit script | + +## Dependencies + +- [Solution - Windows 10 ESU Licensing and Auditing](/docs/a7e4073e-1f09-4772-aa5e-ee44cf9bf9e7) +- [ESU License Activation Detection](/docs/fad37673-34ab-46e9-8797-b87058f79faa) ## Creation Process @@ -40,4 +45,4 @@ The `Add new custom field` dialog box will occur ## Completed Custom Field -![Image1](../../../static/img/docs/esu-status/image.png) \ No newline at end of file +![Step3](../../../static/img/docs/90f075dc-5997-4abe-8a89-c46c6d566de0/image.webp) \ No newline at end of file diff --git a/docs/cwrmm/groups/win-10-esu-activated.md b/docs/cwrmm/groups/win-10-esu-activated.md new file mode 100644 index 000000000..20ff1976a --- /dev/null +++ b/docs/cwrmm/groups/win-10-esu-activated.md @@ -0,0 +1,58 @@ +--- +id: '198ac207-0426-4c7f-afeb-7fa84b599b6c' +slug: /198ac207-0426-4c7f-afeb-7fa84b599b6c +title: 'Win 10 ESU Activated' +title_meta: 'Win 10 ESU Activated' +keywords: ['esu','extended security','windows'] +description: 'This contains the list of Windows 10 devices where the ESU is activated.' +tags: ['auditing','windows'] +draft: false +unlisted: false +--- + +## Summary +This contains the list of Windows 10 devices where the ESU is activated. + +## Dependencies + +- [Task - ESU License Activation Detection](/docs/fad37673-34ab-46e9-8797-b87058f79faa) +- [Solution - Windows 10 ESU Licensing and Auditing](/docs/a7e4073e-1f09-4772-aa5e-ee44cf9bf9e7) + +## Group Creation + +### Step 1 + +Navigate to `ENDPOINTS` ➞ `Groups` +![Step1](../../../static/img/docs/9718a5fd-535b-4faf-abe9-86d55f37e620/step1.webp) + +### Step 2 + +Create a new dynamic group by clicking the `Dynamic Group` button. +![Step2](../../../static/img/docs/9718a5fd-535b-4faf-abe9-86d55f37e620/step2.webp) + +This page will appear after clicking on the `Dynamic Group` button: +![Step3](../../../static/img/docs/9718a5fd-535b-4faf-abe9-86d55f37e620/step3.webp) + +### Step 3 + +- **Group Name:** `Win10 ESU Activated` +- **Category:** `Auditing` +- **Description:** `This contains the list of Windows 10 devices where the ESU is activated.` + +![Summary](../../../static/img/docs/198ac207-0426-4c7f-afeb-7fa84b599b6c/image1.webp) + +### Step 4 + +Click the `+ Add Criteria` in the `Criteria` section of the group. +![Step4](../../../static/img/docs/9718a5fd-535b-4faf-abe9-86d55f37e620/step4.webp) + +This search box will appear: +![Step5](../../../static/img/docs/9718a5fd-535b-4faf-abe9-86d55f37e620/step5.webp) + +- `ESU Status` Contains any of `ESU Activated` + +![Criteria](../../../static/img/docs/198ac207-0426-4c7f-afeb-7fa84b599b6c/image2.webp) + +## Completed Group + +![Completed Group](../../../static/img/docs/198ac207-0426-4c7f-afeb-7fa84b599b6c/image3.webp) \ No newline at end of file diff --git a/docs/cwrmm/groups/win-10-esu-audit-not-performed.md b/docs/cwrmm/groups/win-10-esu-audit-not-performed.md new file mode 100644 index 000000000..07098bdf3 --- /dev/null +++ b/docs/cwrmm/groups/win-10-esu-audit-not-performed.md @@ -0,0 +1,59 @@ +--- +id: 'afcaeb5a-d0e5-4f5e-b24f-c0aeaec22f3e' +slug: /afcaeb5a-d0e5-4f5e-b24f-c0aeaec22f3e +title: 'Win 10 ESU Audit Not Performed' +title_meta: 'Win 10 ESU Audit Not Performed' +keywords: ['esu','extended security','windows'] +description: 'This contains the list of Windows 10 22H2 machines where the auditing script has not yet executed.' +tags: ['auditing','windows'] +draft: false +unlisted: false +--- + +## Summary +This contains the list of Windows 10 22H2 machines where the auditing script hasn't yet executed. + +## Dependencies + +- [Task - ESU License Activation Detection](/docs/fad37673-34ab-46e9-8797-b87058f79faa) +- [Solution - Windows 10 ESU Licensing and Auditing](/docs/a7e4073e-1f09-4772-aa5e-ee44cf9bf9e7) + +## Group Creation + +### Step 1 + +Navigate to `ENDPOINTS` ➞ `Groups` +![Step1](../../../static/img/docs/9718a5fd-535b-4faf-abe9-86d55f37e620/step1.webp) + +### Step 2 + +Create a new dynamic group by clicking the `Dynamic Group` button. +![Step2](../../../static/img/docs/9718a5fd-535b-4faf-abe9-86d55f37e620/step2.webp) + +This page will appear after clicking on the `Dynamic Group` button: +![Step3](../../../static/img/docs/9718a5fd-535b-4faf-abe9-86d55f37e620/step3.webp) + +### Step 3 + +- **Group Name:** `Win 10 ESU Audit Not Performed` +- **Category:** `Auditing` +- **Description:** `This contains the list of Windows 10 22H2 machines where the auditing script hasn't yet executed.` + +![Summary](../../../static/img/docs/afcaeb5a-d0e5-4f5e-b24f-c0aeaec22f3e/image1.webp) + +### Step 4 + +Click the `+ Add Criteria` in the `Criteria` section of the group. +![Step4](../../../static/img/docs/9718a5fd-535b-4faf-abe9-86d55f37e620/step4.webp) + +This search box will appear: +![Step5](../../../static/img/docs/9718a5fd-535b-4faf-abe9-86d55f37e620/step5.webp) + +- `ESU Status` Contains any of `Not Detected` +- `OS Build Number` Contains any of `19045` + +![Criteria](../../../static/img/docs/afcaeb5a-d0e5-4f5e-b24f-c0aeaec22f3e/image2.webp) + +## Completed Group + +![Completed Group](../../../static/img/docs/afcaeb5a-d0e5-4f5e-b24f-c0aeaec22f3e/image3.webp) \ No newline at end of file diff --git a/docs/cwrmm/groups/win-10-esu-auditing-failed.md b/docs/cwrmm/groups/win-10-esu-auditing-failed.md new file mode 100644 index 000000000..0fb2c6c06 --- /dev/null +++ b/docs/cwrmm/groups/win-10-esu-auditing-failed.md @@ -0,0 +1,58 @@ +--- +id: 'a3f30225-91ac-46f7-b616-cb42aedb49d8' +slug: /a3f30225-91ac-46f7-b616-cb42aedb49d8 +title: 'Win 10 ESU Auditing Failed' +title_meta: 'Win 10 ESU Auditing Failed' +keywords: ['esu','extended security','windows'] +description: 'This contains the list of machines where the ESU license detection script failed.' +tags: ['auditing','windows'] +draft: false +unlisted: false +--- + +## Summary +This contains the list of machines where the ESU license detection script failed. + +## Dependencies + +- [Task - ESU License Activation Detection](/docs/fad37673-34ab-46e9-8797-b87058f79faa) +- [Solution - Windows 10 ESU Licensing and Auditing](/docs/a7e4073e-1f09-4772-aa5e-ee44cf9bf9e7) + +## Group Creation + +### Step 1 + +Navigate to `ENDPOINTS` ➞ `Groups` +![Step1](../../../static/img/docs/9718a5fd-535b-4faf-abe9-86d55f37e620/step1.webp) + +### Step 2 + +Create a new dynamic group by clicking the `Dynamic Group` button. +![Step2](../../../static/img/docs/9718a5fd-535b-4faf-abe9-86d55f37e620/step2.webp) + +This page will appear after clicking on the `Dynamic Group` button: +![Step3](../../../static/img/docs/9718a5fd-535b-4faf-abe9-86d55f37e620/step3.webp) + +### Step 3 + +- **Group Name:** `Win 10 ESU Auditing Failed` +- **Category:** `Auditing` +- **Description:** `This contains the list of machines where the ESU license detection script failed.` + +![Summary](../../../static/img/docs/a3f30225-91ac-46f7-b616-cb42aedb49d8/image1.webp) + +### Step 4 + +Click the `+ Add Criteria` in the `Criteria` section of the group. +![Step4](../../../static/img/docs/9718a5fd-535b-4faf-abe9-86d55f37e620/step4.webp) + +This search box will appear: +![Step5](../../../static/img/docs/9718a5fd-535b-4faf-abe9-86d55f37e620/step5.webp) + +- `ESU Status` Contains any of `Powershell Failure` + +![Criteria](../../../static/img/docs/a3f30225-91ac-46f7-b616-cb42aedb49d8/image2.webp) + +## Completed Group + +![Completed Group](../../../static/img/docs/a3f30225-91ac-46f7-b616-cb42aedb49d8/image3.webp) \ No newline at end of file diff --git a/docs/cwrmm/groups/win-10-esu-not-activated.md b/docs/cwrmm/groups/win-10-esu-not-activated.md new file mode 100644 index 000000000..ad00fb871 --- /dev/null +++ b/docs/cwrmm/groups/win-10-esu-not-activated.md @@ -0,0 +1,58 @@ +--- +id: '4673c9d2-881d-43a1-b455-5d3b3cf0ae4d' +slug: /4673c9d2-881d-43a1-b455-5d3b3cf0ae4d +title: 'Win10 ESU Not Activated' +title_meta: 'Win10 ESU Not Activated' +keywords: ['esu','extended security','windows'] +description: 'This contains the list of machines where the script detects that the ESU license was not activated.' +tags: ['auditing','windows'] +draft: false +unlisted: false +--- + +## Summary +This contains the list of machines where the script detects that the ESU license was not activated. + +## Dependencies + +- [Task - ESU License Activation Detection](/docs/fad37673-34ab-46e9-8797-b87058f79faa) +- [Solution - Windows 10 ESU Licensing and Auditing](/docs/a7e4073e-1f09-4772-aa5e-ee44cf9bf9e7) + +## Group Creation + +### Step 1 + +Navigate to `ENDPOINTS` ➞ `Groups` +![Step1](../../../static/img/docs/9718a5fd-535b-4faf-abe9-86d55f37e620/step1.webp) + +### Step 2 + +Create a new dynamic group by clicking the `Dynamic Group` button. +![Step2](../../../static/img/docs/9718a5fd-535b-4faf-abe9-86d55f37e620/step2.webp) + +This page will appear after clicking on the `Dynamic Group` button: +![Step3](../../../static/img/docs/9718a5fd-535b-4faf-abe9-86d55f37e620/step3.webp) + +### Step 3 + +- **Group Name:** `Win10 ESU Not Activated` +- **Category:** `Auditing` +- **Description:** `This contains the list of machines where the script detects that the ESU license was not activated.` + +![Summary](../../../static/img/docs/4673c9d2-881d-43a1-b455-5d3b3cf0ae4d/image1.webp) + +### Step 4 + +Click the `+ Add Criteria` in the `Criteria` section of the group. +![Step4](../../../static/img/docs/9718a5fd-535b-4faf-abe9-86d55f37e620/step4.webp) + +This search box will appear: +![Step5](../../../static/img/docs/9718a5fd-535b-4faf-abe9-86d55f37e620/step5.webp) + +- `ESU Status` Contains any of `ESU Not Activated` + +![Criteria](../../../static/img/docs/4673c9d2-881d-43a1-b455-5d3b3cf0ae4d/image2.webp) + +## Completed Group + +![Completed Group](../../../static/img/docs/4673c9d2-881d-43a1-b455-5d3b3cf0ae4d/image3.webp) \ No newline at end of file diff --git a/docs/cwrmm/groups/windows-10-22h2.md b/docs/cwrmm/groups/windows-10-22h2.md new file mode 100644 index 000000000..b14e7eb48 --- /dev/null +++ b/docs/cwrmm/groups/windows-10-22h2.md @@ -0,0 +1,57 @@ +--- +id: '558a6a3d-b543-4267-96fc-76f0c9a13e68' +slug: /558a6a3d-b543-4267-96fc-76f0c9a13e68 +title: 'Windows 10 22H2' +title_meta: 'Windows 10 22H2' +keywords: ['esu','extended security','windows'] +description: 'Group of Windows 10 22H2 machines.' +tags: ['auditing','windows'] +draft: false +unlisted: false +--- + +## Summary +This group contains Windows 10 22H2 machines. The [ESU License Activation Detection](/docs/fad37673-34ab-46e9-8797-b87058f79faa) script is executed on this group for auditing. + +## Dependencies + +- [Solution - Windows 10 ESU Licensing and Auditing](/docs/a7e4073e-1f09-4772-aa5e-ee44cf9bf9e7) + +## Group Creation + +### Step 1 + +Navigate to `ENDPOINTS` ➞ `Groups` +![Step1](../../../static/img/docs/9718a5fd-535b-4faf-abe9-86d55f37e620/step1.webp) + +### Step 2 + +Create a new dynamic group by clicking the `Dynamic Group` button. +![Step2](../../../static/img/docs/9718a5fd-535b-4faf-abe9-86d55f37e620/step2.webp) + +This page will appear after clicking on the `Dynamic Group` button: +![Step3](../../../static/img/docs/9718a5fd-535b-4faf-abe9-86d55f37e620/step3.webp) + +### Step 3 + +- **Group Name:** `Windows 10 22H2` +- **Category:** `Auditing` +- **Description:** `Group of Windows 10 22H2 machines. The "ESU License Activation Detection" script is executed on this group for auditing.` + +![Summary](../../../static/img/docs/558a6a3d-b543-4267-96fc-76f0c9a13e68/image1.webp) + +### Step 4 + +Click the `+ Add Criteria` in the `Criteria` section of the group. +![Step4](../../../static/img/docs/9718a5fd-535b-4faf-abe9-86d55f37e620/step4.webp) + +This search box will appear: +![Step5](../../../static/img/docs/9718a5fd-535b-4faf-abe9-86d55f37e620/step5.webp) + +- `OS Build Number` Contains any of `19045` + +![Criteria](../../../static/img/docs/558a6a3d-b543-4267-96fc-76f0c9a13e68/image2.webp) + +## Completed Group + +![Completed Group](../../../static/img/docs/558a6a3d-b543-4267-96fc-76f0c9a13e68/image3.webp) \ No newline at end of file diff --git a/docs/cwrmm/tasks/esu-audit.md b/docs/cwrmm/tasks/esu-audit.md deleted file mode 100644 index a63dc2daa..000000000 --- a/docs/cwrmm/tasks/esu-audit.md +++ /dev/null @@ -1,175 +0,0 @@ ---- -id: '3d0d2136-fd90-44b2-9a61-79e4e7d9f3e9' -slug: /3d0d2136-fd90-44b2-9a61-79e4e7d9f3e9 -title: 'ESU Audit' -title_meta: 'ESU Audit' -keywords: ['ESU','extended security'] -description: 'This script will search for ESU licenses present on the endpoint and return information for any licenses found' -tags: ['auditing','licensing','patching','windows'] -draft: false -unlisted: false ---- - -## Summary - -This script will search for ESU licenses present on the endpoint and return information for any licenses found. Any data from the ESU licenses will be stored in the [ESU Status](/docs/90f075dc-5997-4abe-8a89-c46c6d566de0) custom field. - -## Sample Run - -![Image1](../../../static/img/docs/esu-audit/image.png) - -## Dependencies - -- [CW RMM - Custom Field - ESU Status](/docs/90f075dc-5997-4abe-8a89-c46c6d566de0) - -## Task Creation - -### Script Details - -#### Step 1 - -Navigate to `Automation` ➞ `Tasks` -![step1](../../../static/img/docs/b194bbed-fe64-4ced-8410-21281b08de07/step1.webp) - -#### Step 2 - -Create a new `Script Editor` style task by choosing the `Script Editor` option from the `Add` dropdown menu -![step2](../../../static/img/docs/b194bbed-fe64-4ced-8410-21281b08de07/step2.webp) - -The `New Script` page will appear on clicking the `Script Editor` button: -![step3](../../../static/img/docs/b194bbed-fe64-4ced-8410-21281b08de07/step3.webp) - -#### Step 3 - -Fill in the following details in the `Description` section: - -**Name:** `ESU Audit` -**Description:** `This script will search for ESU licenses present on the endpoint and return information for any licenses found` -**Category:** `Data Collection` - -![Image2](../../../static/img/docs/esu-audit/image-1.png) - -### Script Editor - -Click the `Add Row` button in the `Script Editor` section to start creating the script -![AddRow](../../../static/img/docs/b194bbed-fe64-4ced-8410-21281b08de07/addrow.webp) - -A blank function will appear: -![BlankFunction](../../../static/img/docs/b194bbed-fe64-4ced-8410-21281b08de07/blankfunction.webp) - -#### Row 1 Function: `PowerShell Script` - -Search and select the `PowerShell Script` function. - -![PowerShell Function Search](../../../static/img/docs/37220488-64d2-4de9-8e65-1cd53f5dee3b/image_13.webp) -![PowerShell Function Selected](../../../static/img/docs/37220488-64d2-4de9-8e65-1cd53f5dee3b/image_14.webp) - -The following function will pop up on the screen: -![PowerShell Function Example](../../../static/img/docs/37220488-64d2-4de9-8e65-1cd53f5dee3b/image_15.webp) - -Paste in the following PowerShell script and set the `Expected time of script execution in seconds` to `300` seconds. Click the `Save` button. - -```powershell -#region Setup - Variables -$ProjectName = 'Get-ESUStatus' -[Net.ServicePointManager]::SecurityProtocol = [enum]::ToObject([Net.SecurityProtocolType], 3072) -$BaseURL = 'https://file.provaltech.com/repo' -$PS1URL = "$BaseURL/script/$ProjectName.ps1" -$WorkingDirectory = "C:\ProgramData\_automation\script\$ProjectName" -$PS1Path = "$WorkingDirectory\$ProjectName.ps1" -$WorkingPath = $WorkingDirectory -$LogPath = "$WorkingDirectory\$ProjectName-log.txt" -$ErrorLogPath = "$WorkingDirectory\$ProjectName-Error.txt" -#endregion -#region Setup - Folder Structure -New-Item -Path $WorkingDirectory -ItemType Directory -ErrorAction SilentlyContinue | Out-Null -try { - Invoke-WebRequest -Uri $PS1URL -OutFile $PS1path -UseBasicParsing -ErrorAction Stop -} catch { - if (!(Test-Path -Path $PS1Path )) { - throw ('Failed to download the script from ''{0}'', and no local copy of the script exists on the machine. Reason: {1}' -f $PS1URL, $($Error[0].Exception.Message)) - } -} -#endregion -#region Execution -if ($Parameters) { - $licenses = & $PS1Path @Parameters -} else { - $licenses = & $PS1Path -} -#endregion - -if ( !(Test-Path $LogPath) ) { - throw 'PowerShell Failure. A Security application seems to have restricted the execution of the PowerShell Script.' -} -if ( $licenses ) { - $status = @() - foreach ( $license in $licenses ) { - $status += "ID - $($license.ID) Name - $($license.Name) License Status - $($license.LicenseStatus)" - } - return $status -join '\|' -} else { - return "No ESU Licenses found" -} -if ( Test-Path $ErrorLogPath ) { - $ErrorContent = ( Get-Content -Path $ErrorLogPath ) - throw $ErrorContent -} -``` - -![Script Example](../../../static/img/docs/esu-audit/image-2.png) - -### Row 2 Function: Script Log - -Add a new row by clicking the `Add Row` button. -![Add Row Step 1](../../../static/img/docs/37220488-64d2-4de9-8e65-1cd53f5dee3b/image_17.webp) - -A blank function will appear. -![Blank Function](../../../static/img/docs/37220488-64d2-4de9-8e65-1cd53f5dee3b/image_18.webp) - -Search and select the `Script Log` function. -![Script Log Search](../../../static/img/docs/37220488-64d2-4de9-8e65-1cd53f5dee3b/image_19.webp) -![Script Log Selected](../../../static/img/docs/37220488-64d2-4de9-8e65-1cd53f5dee3b/image_20.webp) - -The following function will pop up on the screen: -![Script Log Example](../../../static/img/docs/37220488-64d2-4de9-8e65-1cd53f5dee3b/image_21.webp) - -In the script log message, simply type `%output%` and click the `Save` button. -![Script Log Save](../../../static/img/docs/37220488-64d2-4de9-8e65-1cd53f5dee3b/image_22.webp) - -### Row 3 Function: Set Custom Field - -Add a new row by clicking the `Add Row` button. -![Add Row Step 2](../../../static/img/docs/37220488-64d2-4de9-8e65-1cd53f5dee3b/image_17.webp) - -A blank function will appear. -![Blank Function](../../../static/img/docs/37220488-64d2-4de9-8e65-1cd53f5dee3b/image_18.webp) - -Search and select the `Set Custom Field` function. -![Set Custom Field Search](../../../static/img/docs/37220488-64d2-4de9-8e65-1cd53f5dee3b/image_23.webp) - -The following function will pop up on the screen: -![Set Custom Field Example](../../../static/img/docs/37220488-64d2-4de9-8e65-1cd53f5dee3b/image_24.webp) - -- Search and select the Computer-Level Custom Field `ESU Status` from the Custom Field dropdown menu. -- Set `%Output%` in the `Value` field. -- Click the `Save` button. - -![Set Custom Field Save 1](../../../static/img/docs/esu-audit/image-3.png) -![Set Custom Field Save 2](../../../static/img/docs/37220488-64d2-4de9-8e65-1cd53f5dee3b/image_26.webp) - -## Save Task - -Click the `Save` button at the top-right corner of the screen to save the script. -![SaveButton](../../../static/img/docs/b194bbed-fe64-4ced-8410-21281b08de07/savebutton.webp) - -## Completed Task - -![Completed Task](../../../static/img/docs/esu-audit/image-4.png) - -## Output - -- Script Log -![Script Log Output](../../../static/img/docs/esu-audit/image-5.png) -- Custom Field -![Custom Field Output](../../../static/img/docs/esu-audit/image-6.png) \ No newline at end of file diff --git a/docs/cwrmm/tasks/esu-license-activation-detection.md b/docs/cwrmm/tasks/esu-license-activation-detection.md new file mode 100644 index 000000000..a3e532690 --- /dev/null +++ b/docs/cwrmm/tasks/esu-license-activation-detection.md @@ -0,0 +1,240 @@ +--- +id: 'fad37673-34ab-46e9-8797-b87058f79faa' +slug: /fad37673-34ab-46e9-8797-b87058f79faa +title: 'ESU License Activation Detection' +title_meta: 'ESU License Activation Detection' +keywords: ['esu','extended security'] +description: 'This script performs the checks for the ESU license activation detection.' +tags: ['auditing','licensing','patching','windows'] +draft: false +unlisted: false +--- + +## Summary +This script performs the checks for the ESU license activation detection and stores the info in the device-level custom field [ESU Status](/docs/90f075dc-5997-4abe-8a89-c46c6d566de0). + +## Sample Run + +![Sample Run](../../../static/img/docs/fad37673-34ab-46e9-8797-b87058f79faa/image9.webp) + +## Dependencies + +- [Custom Field - ESU Status](/docs/90f075dc-5997-4abe-8a89-c46c6d566de0) +- [Solution - Windows 10 ESU Licensing and Auditing](/docs/a7e4073e-1f09-4772-aa5e-ee44cf9bf9e7) + +## Task Creation + +### Script Details + +#### Step 1 + +Navigate to `Automation` ➞ `Tasks` +![step1](../../../static/img/docs/b194bbed-fe64-4ced-8410-21281b08de07/step1.webp) + +#### Step 2 + +Create a new `Script Editor` style task by choosing the `Script Editor` option from the `Add` dropdown menu +![step2](../../../static/img/docs/b194bbed-fe64-4ced-8410-21281b08de07/step2.webp) + +The `New Script` page will appear on clicking the `Script Editor` button: +![step3](../../../static/img/docs/b194bbed-fe64-4ced-8410-21281b08de07/step3.webp) + +#### Step 3 + +Fill in the following details in the `Description` section: + +- **Name:** `ESU License Activation Detection` +- **Description:** `This script performs the checks for the ESU license activation detection and stores the info in the device-level custom field "ESU Status"` +- **Category:** `Data Collection` + +![Description](../../../static/img/docs/fad37673-34ab-46e9-8797-b87058f79faa/image1.webp) + +### Script Editor + +Click the `Add Row` button in the `Script Editor` section to start creating the script +![AddRow](../../../static/img/docs/b194bbed-fe64-4ced-8410-21281b08de07/addrow.webp) + +A blank function will appear: +![BlankFunction](../../../static/img/docs/b194bbed-fe64-4ced-8410-21281b08de07/blankfunction.webp) + +#### Row 1 Function: `PowerShell Script` + +Search and select the `PowerShell Script` function. + +![PowerShell Function Selected](../../../static/img/docs/b194bbed-fe64-4ced-8410-21281b08de07/addedpowershellfunction.webp) + +The following function will pop up on the screen: +![PowerShell Function Example](../../../static/img/docs/b194bbed-fe64-4ced-8410-21281b08de07/blankpowershellfunction.webp) + +Paste in the following PowerShell script and set the `Expected time of script execution in seconds` to `300` seconds. Click the `Save` button. + +```powershell +<# +.SYNOPSIS + Detects and reports the ESU (Extended Security Updates) license activation status for Windows 10 22H2 machines. + +.DESCRIPTION + This script checks whether a Windows 10 22H2 machine has an active ESU license by querying the SoftwareLicensingProduct WMI class. + The script specifically looks for ESU activation IDs and verifies the license status. The result is stored in a CW RMM + custom field for centralized monitoring and reporting. + + The script performs the following operations: + 1. Verifies the machine is running Windows 10 22H2 (Build 19045) + 2. Queries the SoftwareLicensingProduct WMI class for ESU license information + 3. Checks for specific ESU activation IDs with active license status + 4. returns the result for the 'ESU Status' custom field in CW RMM + +.PARAMETER None + This script does not accept any parameters. It operates on the local machine where it's executed. + +.EXAMPLE + .\Get-ESULicenseActivationDetection.ps1 + Executes the ESU license detection and returns the result for a custom field + +.OUTPUTS + String. The script returns one of the following values: + - "ESU Activated" - ESU license is active and properly configured + - "ESU Not Activated" - No active ESU license found + - "Not Windows 10 22H2" - Machine is not running the supported Windows version + - "PowerShell Failure" - Error occurred while querying WMI data + +.LINK + https://learn.microsoft.com/en-us/windows/whats-new/enable-extended-security-updates + https://www.systemcenterdudes.com/deploy-windows-10-extended-security-update-key-with-intune-or-sccm/ + +.COMPONENT + Windows Management Instrumentation (WMI) + CW RMM + License Management + +.FUNCTIONALITY + ESU License Detection + Windows Version Validation + Custom Field Management +#> + +#region globals +$ProgressPreference = 'SilentlyContinue' +$WarningPreference = 'SilentlyContinue' +$InformationPreference = 'Continue' +#endRegion + +#region Variables +$supportedBuild = 19045 +$activationIds = @( + 'f520e45e-7413-4a34-a497-d2765967d094', + '1043add5-23b1-4afb-9a0f-64343c8f3f8d', + '83d49986-add3-41d7-ba33-87c7bfb5c0fb' +) +#endRegion + +#region OS Check +$build = (Get-CimInstance -ClassName 'Win32_OperatingSystem' -ErrorAction SilentlyContinue).buildNumber +if ($build -ne $supportedBuild) { + $value = 'Not Windows 10 22H2' + return $value +} +#endRegion + +#region Check ESU License Status +try { + $esuLicense = Get-CimInstance -ClassName 'SoftwareLicensingProduct' -Filter 'partialproductkey is not null' -ErrorAction Stop | + Where-Object { + $_.LicenseStatus -eq 1 -and $activationIds -contains $_.Id + } +} catch { + $value = 'PowerShell Failure' + return $value +} +$value = if ( $esuLicense ) { + 'ESU Activated' +} else { + 'ESU Not Activated' +} +return $value +#endRegion + +``` + +![Script Example](../../../static/img/docs/fad37673-34ab-46e9-8797-b87058f79faa/image2.webp) + +### Row 2 Function: Script Log + +Add a new row by clicking the `Add Row` button. +![Add Row](../../../static/img/docs/b194bbed-fe64-4ced-8410-21281b08de07/addrow.webp) + +A blank function will appear. +![Blank Function](../../../static/img/docs/b194bbed-fe64-4ced-8410-21281b08de07/blankfunction.webp) + +Search and select the `Script Log` function. +![Script Log Search](../../../static/img/docs/b194bbed-fe64-4ced-8410-21281b08de07/addscriptlogfunction.webp) + + +In the script log message, simply type `%output%` and click the `Save` button. +![Script Log Save](../../../static/img/docs/b194bbed-fe64-4ced-8410-21281b08de07/outputscriptlogfunction.webp) + +### Row 3 Function: Set Custom Field + +Add a new row by clicking the `Add Row` button. +![Add Row](../../../static/img/docs/b194bbed-fe64-4ced-8410-21281b08de07/addrow.webp) + +A blank function will appear. +![Blank Function](../../../static/img/docs/b194bbed-fe64-4ced-8410-21281b08de07/blankfunction.webp) + +Search and select the `Set Custom Field` function. +![Set Custom Field Search](../../../static/img/docs/b194bbed-fe64-4ced-8410-21281b08de07/addsetcustomfieldfunction.webp) + +The following function will pop up on the screen: +![Set Custom Field Example](../../../static/img/docs/b194bbed-fe64-4ced-8410-21281b08de07/blanksetcustomfieldfunction.webp) + +- Search and select the Computer-Level Custom Field `ESU Status` from the Custom Field dropdown menu. +- Set `%Output%` in the `Value` field. +- Click the `Save` button. + +![Set Custom Field Save 1](../../../static/img/docs/fad37673-34ab-46e9-8797-b87058f79faa/image10.webp) + +![Set Custom Field Save 2](../../../static/img/docs/fad37673-34ab-46e9-8797-b87058f79faa/image3.webp) + +## Save Task + +Click the `Save` button at the top-right corner of the screen to save the script. +![SaveButton](../../../static/img/docs/b194bbed-fe64-4ced-8410-21281b08de07/savebutton.webp) + +## Completed Task + +![Completed Task](../../../static/img/docs/fad37673-34ab-46e9-8797-b87058f79faa/image4.webp) + + +## Output + +- Script Logs + +## Schedule Task + +### Task Details + +- **Name:** `ESU License Activation Detection` +- **Description:** `This script performs the checks for the ESU license activation detection and stores the info in the device-level custom field "ESU Status".` +- **Category:** `Custom` + +![Description](../../../static/img/docs/fad37673-34ab-46e9-8797-b87058f79faa/image5.webp) + +### Schedule + +- **Schedule Type:** `Schedule` +- **Timezone:** `Local Machine Time` +- **Start:** `` +- **Trigger:** `Time` `At` `` +- **Recurrence:** `Every 15 Days` + +![Schedule](../../../static/img/docs/fad37673-34ab-46e9-8797-b87058f79faa/image6.webp) + +### Targeted Resource + +**Device Group:** `Windows 10 22H2` + +![Target](../../../static/img/docs/fad37673-34ab-46e9-8797-b87058f79faa/image7.webp) + +### Completed Scheduled Task + +![Schedule Task](../../../static/img/docs/fad37673-34ab-46e9-8797-b87058f79faa/image8.webp) \ No newline at end of file diff --git a/docs/cwrmm/tasks/windows-10-esu-license-upgrade.md b/docs/cwrmm/tasks/windows-10-esu-license-upgrade.md new file mode 100644 index 000000000..f2ea8f46b --- /dev/null +++ b/docs/cwrmm/tasks/windows-10-esu-license-upgrade.md @@ -0,0 +1,337 @@ +--- +id: '69b669a7-e440-4f37-a4d5-1e4d8d4b1c4b' +slug: /69b669a7-e440-4f37-a4d5-1e4d8d4b1c4b +title: 'Windows 10 ESU License Upgrade' +title_meta: 'Windows 10 ESU License Upgrade' +keywords: ['esu','extended security'] +description: 'This script applies Extended Security Updates (ESU) license for Windows 10 22H2 systems' +tags: ['auditing','licensing','patching','windows'] +draft: false +unlisted: false +--- + +## Summary +Applies Extended Security Updates (ESU) license for Windows 10 22H2 systems through CW RMM. The Windows 10 Extended Security Updates program provides critical security patches for up to three years beyond the official end of support date. + +## Sample Run + +![Sample Run](../../../static/img/docs/69b669a7-e440-4f37-a4d5-1e4d8d4b1c4b/image8.webp) + +## Dependencies + +- [Task : ESU License Activation Detection](/docs/fad37673-34ab-46e9-8797-b87058f79faa) +- [Solution - Windows 10 ESU Licensing and Auditing](/docs/a7e4073e-1f09-4772-aa5e-ee44cf9bf9e7) + +## User Parameters + +| Name | Example | Accepted Values | Required | Default | Type | Description | +| ---- | ------- | --------------- | -------- | ------- | ---- | ----------- | +| ESU Key | xxxxx-xxxxx-xxxxx-xxxxx-xxxxx | | True | | String/Text | Provide the ESU license key for activation of Windows 10 extended use. | +| ESU Year | 2 | 1, 2, or 3 | True | | Number Value | Select the license key year validation like 1, 2, or 3. | + + +## Task Creation + +### Script Details + +#### Step 1 + +Navigate to `Automation` ➞ `Tasks` +![step1](../../../static/img/docs/b194bbed-fe64-4ced-8410-21281b08de07/step1.webp) + +#### Step 2 + +Create a new `Script Editor` style task by choosing the `Script Editor` option from the `Add` dropdown menu +![step2](../../../static/img/docs/b194bbed-fe64-4ced-8410-21281b08de07/step2.webp) + +The `New Script` page will appear on clicking the `Script Editor` button: +![step3](../../../static/img/docs/b194bbed-fe64-4ced-8410-21281b08de07/step3.webp) + +#### Step 3 + +Fill in the following details in the `Description` section: + +- **Name:** `Windows 10 ESU License Upgrade` +- **Description:** `Applies Extended Security Updates (ESU) license for Windows 10 22H2 systems through CW RMM. The Windows 10 Extended Security Updates program provides critical security patches for up to three years beyond the official end of support date.` +- **Category:** `Patching` + +![Description](../../../static/img/docs/69b669a7-e440-4f37-a4d5-1e4d8d4b1c4b/image1.webp) + +### Parameters + +### ESUKey : +Locate the `Add Parameter` button on the right-hand side of the screen and click on it to create a new parameter. +![AddParameter](../../../static/img/docs/b194bbed-fe64-4ced-8410-21281b08de07/addparameter.webp) + +The `Add New Script Parameter` page will appear on clicking the `Add Parameter` button. +![AddNewScriptParameter](../../../static/img/docs/b194bbed-fe64-4ced-8410-21281b08de07/addnewscriptparameter.webp) + +- Set `ESUKey` in the `Parameter Name` field. +- Select `Text String` from the `Parameter Type` dropdown menu. +- Enable the `Required Field` button. +- Click the `Save` button. + +![ESUKey ](../../../static/img/docs/69b669a7-e440-4f37-a4d5-1e4d8d4b1c4b/image2.webp) + +### ESUYear: +Add a new parameter by clicking the `Add Parameter` button present at the top-right corner of the screen. And Add the below details: + +- Set `ESUYear` in the `Parameter Name` field. +- Select `Number Value` from the `Parameter Type` dropdown menu. +- Enable the `Required Field` button. +- Click the `Save` button. + +![ESUYear](../../../static/img/docs/69b669a7-e440-4f37-a4d5-1e4d8d4b1c4b/image3.webp) + +### Script Editor + +Click the `Add Row` button in the `Script Editor` section to start creating the script +![AddRow](../../../static/img/docs/b194bbed-fe64-4ced-8410-21281b08de07/addrow.webp) + +A blank function will appear: +![BlankFunction](../../../static/img/docs/b194bbed-fe64-4ced-8410-21281b08de07/blankfunction.webp) + +#### Row 1 Function: `PowerShell Script` + +Search and select the `PowerShell Script` function. + +![PowerShell Function Selected](../../../static/img/docs/b194bbed-fe64-4ced-8410-21281b08de07/addedpowershellfunction.webp) + +The following function will pop up on the screen: +![PowerShell Function Example](../../../static/img/docs/b194bbed-fe64-4ced-8410-21281b08de07/blankpowershellfunction.webp) + +Paste in the following PowerShell script and set the `Expected time of script execution in seconds` to `900` seconds. Click the `Save` button. + +```powershell +<#requires -RunAsAdministrator +#requires -Version 5 + +<# +.SYNOPSIS + Applies Extended Security Updates (ESU) license for Windows 10 22H2 systems through CW RMM. + +.DESCRIPTION + This script applies Extended Security Updates (ESU) licenses to Windows 10 22H2 systems that have reached end-of-support. + ESU provides critical security updates for Windows 10 systems beyond their normal support lifecycle. + + The script performs the following operations: + - Validates system compatibility (Windows 10 22H2 Build 19045) + - Checks for required cumulative update (KB5046613 or later) + - Installs the ESU MAK (Multiple Activation Key) + - Activates the ESU license for the specified year (1, 2, or 3) + - Verifies the activation status + + ESU licenses are available for up to 3 years after Windows 10 reaches end-of-support, allowing organizations + to continue receiving critical security updates while planning their migration to supported Windows versions. + +.PARAMETER esuKey + The ESU MAK (Multiple Activation Key) required for activation. + This parameter can be provided via: + - Runtime variable 'ESU Key' + + The ESU key is obtained from Microsoft Volume Licensing and is specific to your organization. + If this parameter is missing, the script will throw an error with the message: + "Error: ESU Key is missing. Please provide the ESU MAK Key as the runtime variable 'ESU Key'." + +.PARAMETER esuYear + The ESU year for which the license should be activated. + Valid values: 1, 2, or 3 + + This parameter can be provided via: + - Runtime variable 'ESU Year' + + ESU licenses are available for up to 3 years after Windows 10 end-of-support: + - Year 1: First year of ESU coverage + - Year 2: Second year of ESU coverage + - Year 3: Third year of ESU coverage + + If this parameter is missing, the script will throw an error with the message: + "Error: ESU Year is missing. Please set the ESU Year as the runtime variable 'ESU Year'. Note: You can only use 1, 2, or 3 as Windows only allowed extensions for 3 years." + + If an invalid value is provided, the script will throw: + "Error: Invalid ESU Year value. Only 1, 2, or 3 are allowed." + +.EXAMPLE + -esuKey "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX" -esuYear 1 + + Applies ESU license for the first year using the specified MAK key. + +.EXAMPLE + -esuKey "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX" -esuYear 2 + + Applies ESU license for the second year using the specified MAK key. + +.LINK + https://learn.microsoft.com/en-us/windows/whats-new/enable-extended-security-updates + https://www.systemcenterdudes.com/deploy-windows-10-extended-security-update-key-with-intune-or-sccm/ +#> + +#region Globals +$ProgressPreference = 'SilentlyContinue' +$InformationPreference = 'Continue' +$WarningPreference = 'SilentlyContinue' +#endRegion + +#region Variables +$requiredKB = 5046613 +$supportedBuild = 19045 +$activationIDs = @{ + 1 = 'f520e45e-7413-4a34-a497-d2765967d094' + 2 = '1043add5-23b1-4afb-9a0f-64343c8f3f8d' + 3 = '83d49986-add3-41d7-ba33-87c7bfb5c0fb' +} + +$activationID = $activationIDs[$esuYear] +$slmgrPath = '{0}\System32\slmgr.vbs' -f $env:SystemRoot +$acceptedEsuYearValues = @(1, 2, 3) +#endRegion + +#region set parameters +$esuKey = '@ESUKey@' +if ([string]::IsNullOrEmpty($esuKey) -or $esuKey -match 'ESUKey') { + throw 'Error: ESU Key is missing. Please provide the ESU MAK Key as the runtime variable ''ESU Key''.' +} + +$esuYear = '@ESUYear@' +if ([string]::IsNullOrEmpty($esuYear) -or $esuYear -match 'ESUYear') { + throw 'Error: ESU Year is missing. Please set the ESU Year as the runtime variable ''ESU Year''. Note: You can only use 1, 2, or 3 as Windows only allowed extensions for 3 years.' +} + +if ($acceptedEsuYearValues -notcontains $esuYear) { + throw 'Error: Invalid ESU Year value. Only 1, 2, or 3 are allowed.' +} +#endRegion + +#region Set TLS Policy +$supportedTLSversions = [enum]::GetValues('Net.SecurityProtocolType') +if (($supportedTLSversions -contains 'Tls13') -and ($supportedTLSversions -contains 'Tls12')) { + [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol::Tls13 -bor [System.Net.SecurityProtocolType]::Tls12 +} elseif ($supportedTLSversions -contains 'Tls12') { + [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12 +} else { + Write-Information -MessageData 'TLS 1.2 and/or TLS 1.3 are not supported on this system. This download may fail!' + if ($PSVersionTable.PSVersion.Major -lt 3) { + Write-Information -MessageData 'PowerShell 2 / .NET 2.0 doesn''t support TLS 1.2.' + } +} +#endRegion + +#region Compatibility Check +Write-Information -MessageData 'Checking Windows version and cumulative update...' + +# Windows 10 22H2 has build number 19045 +$build = (Get-CimInstance -ClassName 'Win32_OperatingSystem' -ErrorAction SilentlyContinue).buildNumber +if ($build -ne $supportedBuild) { + throw ('Error: Not Compatible. The Windows version is not 22H2 (Build 19045). Current build: {0}' -f $build) +} + +# Check for KB5046613 or later +$hotFixes = Get-HotFix | Where-Object { $_.HotFixID } | Select-Object @{ + Name = 'KBID' + Expression = { $_.HotFixId -replace 'Kb', '' } +} +$latestKB = $hotFixes | Sort-Object -Property 'KBID' -Descending | Select-Object -First 1 -ExpandProperty 'KBID' +if ($latestKB -lt $requiredKB) { + throw ('Error: Not Compatible. Required cumulative update KB5046613 or later not found. Latest installed KB: KB{0}' -f $latestKB) +} + +Write-Information -MessageData 'Windows 10 version and update check passed.' +#endRegion + +#region Set ESU Key +Write-Information -MessageData 'Installing ESU MAK key...' +try { + $argumentList = @( + '/nologo', + $slmgrPath, + '/ipk', + $esuKey + ) + $procInfo = Start-Process -FilePath 'cscript.exe' -ArgumentList $argumentList -Wait -PassThru -NoNewWindow -ErrorAction Stop +} catch { + throw ('Error: Failed to install ESU Key. Process exited with the exit code {0}. Reason: {1}' -f $procInfo.ExitCode, $Error[0].Exception.Message) +} +#endRegion + +#region Activating ESU Key +Write-Information -MessageData ('Activating ESU MAK key for Year {0}...' -f $esuYear) +try { + $argumentList = @( + '/nologo', + $slmgrPath, + '/ato', + $activationID + ) + $procInfo = Start-Process -FilePath 'cscript.exe' -ArgumentList $argumentList -Wait -PassThru -NoNewWindow -ErrorAction Stop +} catch { + throw ('Error: Failed to activate ESU Key. Process exited with the exit code {0}. Reason: {1}' -f $procInfo.ExitCode, $Error[0].Exception.Message) +} +#endRegion + +#region Verification +Write-Information -MessageData 'Verifying activation status...' +try { + $argumentList = @( + '/nologo', + $slmgrPath, + '/dlv' + ) + $tempFile = '{0}\temp\slmgrDlv.txt' -f $env:SystemRoot + $procInfo = Start-Process -FilePath 'cscript.exe' -ArgumentList $argumentList -Wait -PassThru -NoNewWindow -ErrorAction Stop -RedirectStandardOutput $tempFile + $dlvOutput = Get-Content -Path $tempFile + Remove-Item -Path $tempFile -ErrorAction SilentlyContinue +} catch { + throw ('Error: Failed to verify the activation status. Reason: {0}' -f $Error[0].Exception.Message) +} + +$activationIDString = $dlvOutput -match 'Activation ID' +$licenseStatusString = $dlvOutput -match 'License Status' + +if ($activationIDString -match [Regex]::Escape($activationID) -and $licenseStatusString -match 'Licensed') { + return ('ESU license successfully activated for ''{0}'' year.' -f $esuYear) +} else { + return ('Warning: Could not confirm ESU activation. Please manually verify the output below:{0}{1}' -f [char]10, ($dlvOutput | Out-String)) +} +#endRegion + +``` + +![Script Example](../../../static/img/docs/69b669a7-e440-4f37-a4d5-1e4d8d4b1c4b/image4.webp) + +### Row 2 Function: Script Log + +Add a new row by clicking the `Add Row` button. +![Add Row](../../../static/img/docs/b194bbed-fe64-4ced-8410-21281b08de07/addrow.webp) + +A blank function will appear. +![Blank Function](../../../static/img/docs/b194bbed-fe64-4ced-8410-21281b08de07/blankfunction.webp) + +Search and select the `Script Log` function. +![Script Log Search](../../../static/img/docs/b194bbed-fe64-4ced-8410-21281b08de07/addscriptlogfunction.webp) + + +In the script log message, simply type `%output%` and click the `Save` button. +![Script Log Save](../../../static/img/docs/b194bbed-fe64-4ced-8410-21281b08de07/outputscriptlogfunction.webp) + +### Row 3 Script: ESU License Activation Detection + +Add a new row by clicking the `Add Row` button. +![Add Row](../../../static/img/docs/b194bbed-fe64-4ced-8410-21281b08de07/addrow.webp) + +A blank function will appear. Change Function to Script from the dropdown. +![Blank Script](../../../static/img/docs/69b669a7-e440-4f37-a4d5-1e4d8d4b1c4b/image5.webp) + +Search and select the `ESU License Activation Detection` Script. +![ESU License Activation Detection](../../../static/img/docs/69b669a7-e440-4f37-a4d5-1e4d8d4b1c4b/image6.webp) + +## Save Task + +Click the `Save` button at the top-right corner of the screen to save the script. +![SaveButton](../../../static/img/docs/b194bbed-fe64-4ced-8410-21281b08de07/savebutton.webp) + +## Completed Task + +![Completed Task](../../../static/img/docs/69b669a7-e440-4f37-a4d5-1e4d8d4b1c4b/image7.webp) + +## Output +- Script Logs \ No newline at end of file diff --git a/docs/solutions/windows-esu-licensing-auditing-cw-rmm.md b/docs/solutions/windows-esu-licensing-auditing-cw-rmm.md new file mode 100644 index 000000000..ff7412790 --- /dev/null +++ b/docs/solutions/windows-esu-licensing-auditing-cw-rmm.md @@ -0,0 +1,39 @@ +--- +id: 'a7e4073e-1f09-4772-aa5e-ee44cf9bf9e7' +slug: /a7e4073e-1f09-4772-aa5e-ee44cf9bf9e7 +title: 'Windows 10 ESU Licensing and Auditing' +title_meta: 'Windows 10 ESU Licensing and Auditing' +keywords: ['esu', 'license', 'extended', 'windows-10', 'windows-2012', '22h2'] +description: 'This solution provides automated auditing of Windows 10 Extended Security Updates (ESU) license status across Windows 10 22H2 machines. It includes functionality to track activation status and optionally deploy ESU licenses when needed.' +tags: ['licensing', 'windows', 'extensions'] +draft: false +unlisted: false +--- + +## Purpose + +This CW RMM solution provides automated auditing of Windows 10 Extended Security Updates (ESU) license status across Windows 10 22H2 machines. It includes functionality to track activation status and optionally deploy ESU licenses when needed. + +## Associated Content + +| Content | Type | Function | +|------------------|------------------------------|----------------------| +| [ESU Status](/docs/90f075dc-5997-4abe-8a89-c46c6d566de0) | Custom Field | Stores the result from the ESU Audit script. | +| [ESU License Activation Detection](/docs/fad37673-34ab-46e9-8797-b87058f79faa) | Task | Performs the checks for the ESU license activation. | +| [Windows 10 ESU License Upgrade](/docs/69b669a7-e440-4f37-a4d5-1e4d8d4b1c4b) | Task | Applies Extended Security Updates (ESU) license for Windows 10 22H2 systems. | +| [Win 10 ESU Activated](/docs/198ac207-0426-4c7f-afeb-7fa84b599b6c) | Group | Contains the list of Windows 10 22H2 devices where the ESU is activated. | +| [Win10 ESU Not Activated](/docs/4673c9d2-881d-43a1-b455-5d3b3cf0ae4d) | Group | Contains the list of machines where the script detects that the ESU license was not activated.| +| [Win 10 ESU Auditing Failed](/docs/a3f30225-91ac-46f7-b616-cb42aedb49d8) | Group | Contains the list of machines where the ESU license detection script failed. | +| [Win 10 ESU Audit Not Performed](/docs/afcaeb5a-d0e5-4f5e-b24f-c0aeaec22f3e) | Group | Contains the list of Windows 10 22H2 machines where the auditing script hasn't yet executed. | +| [Windows 10 22H2](/docs/558a6a3d-b543-4267-96fc-76f0c9a13e68) | Group |Group of Windows 10 22H2 machines. | + + +## Implementation + +- Create the [Custom Field : ESU Status](/docs/90f075dc-5997-4abe-8a89-c46c6d566de0) using the implementation instruction provided in the document. +- Create the [Task : ESU License Activation Detection](/docs/fad37673-34ab-46e9-8797-b87058f79faa) using the implementation instruction provided in the document. +- Create the [Group : Win 10 ESU Activated](/docs/198ac207-0426-4c7f-afeb-7fa84b599b6c) using the implementation instruction provided in the document. +- Create the [Group : Win10 ESU Not Activated](/docs/4673c9d2-881d-43a1-b455-5d3b3cf0ae4d) using the implementation instruction provided in the document. +- Create the [Group : Win 10 ESU Auditing Failed](/docs/a3f30225-91ac-46f7-b616-cb42aedb49d8) using the implementation instruction provided in the document. +- Create the [Group : Win 10 ESU Audit Not Performed](/docs/afcaeb5a-d0e5-4f5e-b24f-c0aeaec22f3e) using the implementation instruction provided in the document. +- Create the [Group : Windows 10 22H2](/docs/558a6a3d-b543-4267-96fc-76f0c9a13e68) using the implementation instruction provided in the document. \ No newline at end of file diff --git a/static/img/docs/198ac207-0426-4c7f-afeb-7fa84b599b6c/image1.webp b/static/img/docs/198ac207-0426-4c7f-afeb-7fa84b599b6c/image1.webp new file mode 100644 index 000000000..2b09f8106 Binary files /dev/null and b/static/img/docs/198ac207-0426-4c7f-afeb-7fa84b599b6c/image1.webp differ diff --git a/static/img/docs/198ac207-0426-4c7f-afeb-7fa84b599b6c/image2.webp b/static/img/docs/198ac207-0426-4c7f-afeb-7fa84b599b6c/image2.webp new file mode 100644 index 000000000..4d267ed9a Binary files /dev/null and b/static/img/docs/198ac207-0426-4c7f-afeb-7fa84b599b6c/image2.webp differ diff --git a/static/img/docs/198ac207-0426-4c7f-afeb-7fa84b599b6c/image3.webp b/static/img/docs/198ac207-0426-4c7f-afeb-7fa84b599b6c/image3.webp new file mode 100644 index 000000000..4408e0a06 Binary files /dev/null and b/static/img/docs/198ac207-0426-4c7f-afeb-7fa84b599b6c/image3.webp differ diff --git a/static/img/docs/4673c9d2-881d-43a1-b455-5d3b3cf0ae4d/image1.webp b/static/img/docs/4673c9d2-881d-43a1-b455-5d3b3cf0ae4d/image1.webp new file mode 100644 index 000000000..26a77f6a1 Binary files /dev/null and b/static/img/docs/4673c9d2-881d-43a1-b455-5d3b3cf0ae4d/image1.webp differ diff --git a/static/img/docs/4673c9d2-881d-43a1-b455-5d3b3cf0ae4d/image2.webp b/static/img/docs/4673c9d2-881d-43a1-b455-5d3b3cf0ae4d/image2.webp new file mode 100644 index 000000000..c52a3444f Binary files /dev/null and b/static/img/docs/4673c9d2-881d-43a1-b455-5d3b3cf0ae4d/image2.webp differ diff --git a/static/img/docs/4673c9d2-881d-43a1-b455-5d3b3cf0ae4d/image3.webp b/static/img/docs/4673c9d2-881d-43a1-b455-5d3b3cf0ae4d/image3.webp new file mode 100644 index 000000000..c4959bfc7 Binary files /dev/null and b/static/img/docs/4673c9d2-881d-43a1-b455-5d3b3cf0ae4d/image3.webp differ diff --git a/static/img/docs/558a6a3d-b543-4267-96fc-76f0c9a13e68/image1.webp b/static/img/docs/558a6a3d-b543-4267-96fc-76f0c9a13e68/image1.webp new file mode 100644 index 000000000..91253ca6b Binary files /dev/null and b/static/img/docs/558a6a3d-b543-4267-96fc-76f0c9a13e68/image1.webp differ diff --git a/static/img/docs/558a6a3d-b543-4267-96fc-76f0c9a13e68/image2.webp b/static/img/docs/558a6a3d-b543-4267-96fc-76f0c9a13e68/image2.webp new file mode 100644 index 000000000..c6673d350 Binary files /dev/null and b/static/img/docs/558a6a3d-b543-4267-96fc-76f0c9a13e68/image2.webp differ diff --git a/static/img/docs/558a6a3d-b543-4267-96fc-76f0c9a13e68/image3.webp b/static/img/docs/558a6a3d-b543-4267-96fc-76f0c9a13e68/image3.webp new file mode 100644 index 000000000..6a7a71b25 Binary files /dev/null and b/static/img/docs/558a6a3d-b543-4267-96fc-76f0c9a13e68/image3.webp differ diff --git a/static/img/docs/69b669a7-e440-4f37-a4d5-1e4d8d4b1c4b/image1.webp b/static/img/docs/69b669a7-e440-4f37-a4d5-1e4d8d4b1c4b/image1.webp new file mode 100644 index 000000000..074aa38fc Binary files /dev/null and b/static/img/docs/69b669a7-e440-4f37-a4d5-1e4d8d4b1c4b/image1.webp differ diff --git a/static/img/docs/69b669a7-e440-4f37-a4d5-1e4d8d4b1c4b/image2.webp b/static/img/docs/69b669a7-e440-4f37-a4d5-1e4d8d4b1c4b/image2.webp new file mode 100644 index 000000000..a23dfe499 Binary files /dev/null and b/static/img/docs/69b669a7-e440-4f37-a4d5-1e4d8d4b1c4b/image2.webp differ diff --git a/static/img/docs/69b669a7-e440-4f37-a4d5-1e4d8d4b1c4b/image3.webp b/static/img/docs/69b669a7-e440-4f37-a4d5-1e4d8d4b1c4b/image3.webp new file mode 100644 index 000000000..5173fac81 Binary files /dev/null and b/static/img/docs/69b669a7-e440-4f37-a4d5-1e4d8d4b1c4b/image3.webp differ diff --git a/static/img/docs/69b669a7-e440-4f37-a4d5-1e4d8d4b1c4b/image4.webp b/static/img/docs/69b669a7-e440-4f37-a4d5-1e4d8d4b1c4b/image4.webp new file mode 100644 index 000000000..5923daa59 Binary files /dev/null and b/static/img/docs/69b669a7-e440-4f37-a4d5-1e4d8d4b1c4b/image4.webp differ diff --git a/static/img/docs/69b669a7-e440-4f37-a4d5-1e4d8d4b1c4b/image5.webp b/static/img/docs/69b669a7-e440-4f37-a4d5-1e4d8d4b1c4b/image5.webp new file mode 100644 index 000000000..556f0969f Binary files /dev/null and b/static/img/docs/69b669a7-e440-4f37-a4d5-1e4d8d4b1c4b/image5.webp differ diff --git a/static/img/docs/69b669a7-e440-4f37-a4d5-1e4d8d4b1c4b/image6.webp b/static/img/docs/69b669a7-e440-4f37-a4d5-1e4d8d4b1c4b/image6.webp new file mode 100644 index 000000000..9fb5bd977 Binary files /dev/null and b/static/img/docs/69b669a7-e440-4f37-a4d5-1e4d8d4b1c4b/image6.webp differ diff --git a/static/img/docs/69b669a7-e440-4f37-a4d5-1e4d8d4b1c4b/image7.webp b/static/img/docs/69b669a7-e440-4f37-a4d5-1e4d8d4b1c4b/image7.webp new file mode 100644 index 000000000..092f25a9e Binary files /dev/null and b/static/img/docs/69b669a7-e440-4f37-a4d5-1e4d8d4b1c4b/image7.webp differ diff --git a/static/img/docs/69b669a7-e440-4f37-a4d5-1e4d8d4b1c4b/image8.webp b/static/img/docs/69b669a7-e440-4f37-a4d5-1e4d8d4b1c4b/image8.webp new file mode 100644 index 000000000..56b5b4e9e Binary files /dev/null and b/static/img/docs/69b669a7-e440-4f37-a4d5-1e4d8d4b1c4b/image8.webp differ diff --git a/static/img/docs/90f075dc-5997-4abe-8a89-c46c6d566de0/image.webp b/static/img/docs/90f075dc-5997-4abe-8a89-c46c6d566de0/image.webp new file mode 100644 index 000000000..57d7f7df7 Binary files /dev/null and b/static/img/docs/90f075dc-5997-4abe-8a89-c46c6d566de0/image.webp differ diff --git a/static/img/docs/a3f30225-91ac-46f7-b616-cb42aedb49d8/image1.webp b/static/img/docs/a3f30225-91ac-46f7-b616-cb42aedb49d8/image1.webp new file mode 100644 index 000000000..9992a4143 Binary files /dev/null and b/static/img/docs/a3f30225-91ac-46f7-b616-cb42aedb49d8/image1.webp differ diff --git a/static/img/docs/a3f30225-91ac-46f7-b616-cb42aedb49d8/image2.webp b/static/img/docs/a3f30225-91ac-46f7-b616-cb42aedb49d8/image2.webp new file mode 100644 index 000000000..473b82c9e Binary files /dev/null and b/static/img/docs/a3f30225-91ac-46f7-b616-cb42aedb49d8/image2.webp differ diff --git a/static/img/docs/a3f30225-91ac-46f7-b616-cb42aedb49d8/image3.webp b/static/img/docs/a3f30225-91ac-46f7-b616-cb42aedb49d8/image3.webp new file mode 100644 index 000000000..59cb4f838 Binary files /dev/null and b/static/img/docs/a3f30225-91ac-46f7-b616-cb42aedb49d8/image3.webp differ diff --git a/static/img/docs/afcaeb5a-d0e5-4f5e-b24f-c0aeaec22f3e/image1.webp b/static/img/docs/afcaeb5a-d0e5-4f5e-b24f-c0aeaec22f3e/image1.webp new file mode 100644 index 000000000..6b403a4b6 Binary files /dev/null and b/static/img/docs/afcaeb5a-d0e5-4f5e-b24f-c0aeaec22f3e/image1.webp differ diff --git a/static/img/docs/afcaeb5a-d0e5-4f5e-b24f-c0aeaec22f3e/image2.webp b/static/img/docs/afcaeb5a-d0e5-4f5e-b24f-c0aeaec22f3e/image2.webp new file mode 100644 index 000000000..aaf4f4d45 Binary files /dev/null and b/static/img/docs/afcaeb5a-d0e5-4f5e-b24f-c0aeaec22f3e/image2.webp differ diff --git a/static/img/docs/afcaeb5a-d0e5-4f5e-b24f-c0aeaec22f3e/image3.webp b/static/img/docs/afcaeb5a-d0e5-4f5e-b24f-c0aeaec22f3e/image3.webp new file mode 100644 index 000000000..051809715 Binary files /dev/null and b/static/img/docs/afcaeb5a-d0e5-4f5e-b24f-c0aeaec22f3e/image3.webp differ diff --git a/static/img/docs/b194bbed-fe64-4ced-8410-21281b08de07/addsetcustomfieldfunction.webp b/static/img/docs/b194bbed-fe64-4ced-8410-21281b08de07/addsetcustomfieldfunction.webp new file mode 100644 index 000000000..77dc849ae Binary files /dev/null and b/static/img/docs/b194bbed-fe64-4ced-8410-21281b08de07/addsetcustomfieldfunction.webp differ diff --git a/static/img/docs/b194bbed-fe64-4ced-8410-21281b08de07/blanksetcustomfieldfunction.webp b/static/img/docs/b194bbed-fe64-4ced-8410-21281b08de07/blanksetcustomfieldfunction.webp new file mode 100644 index 000000000..104907b03 Binary files /dev/null and b/static/img/docs/b194bbed-fe64-4ced-8410-21281b08de07/blanksetcustomfieldfunction.webp differ diff --git a/static/img/docs/esu-audit/image-1.png b/static/img/docs/esu-audit/image-1.png deleted file mode 100644 index 75cfd2a28..000000000 Binary files a/static/img/docs/esu-audit/image-1.png and /dev/null differ diff --git a/static/img/docs/esu-audit/image-2.png b/static/img/docs/esu-audit/image-2.png deleted file mode 100644 index 3f997934f..000000000 Binary files a/static/img/docs/esu-audit/image-2.png and /dev/null differ diff --git a/static/img/docs/esu-audit/image-3.png b/static/img/docs/esu-audit/image-3.png deleted file mode 100644 index bc7129b09..000000000 Binary files a/static/img/docs/esu-audit/image-3.png and /dev/null differ diff --git a/static/img/docs/esu-audit/image-4.png b/static/img/docs/esu-audit/image-4.png deleted file mode 100644 index 3321a0935..000000000 Binary files a/static/img/docs/esu-audit/image-4.png and /dev/null differ diff --git a/static/img/docs/esu-audit/image-5.png b/static/img/docs/esu-audit/image-5.png deleted file mode 100644 index 61dd783bb..000000000 Binary files a/static/img/docs/esu-audit/image-5.png and /dev/null differ diff --git a/static/img/docs/esu-audit/image-6.png b/static/img/docs/esu-audit/image-6.png deleted file mode 100644 index bc6358510..000000000 Binary files a/static/img/docs/esu-audit/image-6.png and /dev/null differ diff --git a/static/img/docs/esu-audit/image.png b/static/img/docs/esu-audit/image.png deleted file mode 100644 index bab271c8b..000000000 Binary files a/static/img/docs/esu-audit/image.png and /dev/null differ diff --git a/static/img/docs/esu-status/image.png b/static/img/docs/esu-status/image.png deleted file mode 100644 index 3a5c98f40..000000000 Binary files a/static/img/docs/esu-status/image.png and /dev/null differ diff --git a/static/img/docs/fad37673-34ab-46e9-8797-b87058f79faa/image1.webp b/static/img/docs/fad37673-34ab-46e9-8797-b87058f79faa/image1.webp new file mode 100644 index 000000000..66b3ecd57 Binary files /dev/null and b/static/img/docs/fad37673-34ab-46e9-8797-b87058f79faa/image1.webp differ diff --git a/static/img/docs/fad37673-34ab-46e9-8797-b87058f79faa/image10.webp b/static/img/docs/fad37673-34ab-46e9-8797-b87058f79faa/image10.webp new file mode 100644 index 000000000..06cfb5c27 Binary files /dev/null and b/static/img/docs/fad37673-34ab-46e9-8797-b87058f79faa/image10.webp differ diff --git a/static/img/docs/fad37673-34ab-46e9-8797-b87058f79faa/image2.webp b/static/img/docs/fad37673-34ab-46e9-8797-b87058f79faa/image2.webp new file mode 100644 index 000000000..fc3d5da87 Binary files /dev/null and b/static/img/docs/fad37673-34ab-46e9-8797-b87058f79faa/image2.webp differ diff --git a/static/img/docs/fad37673-34ab-46e9-8797-b87058f79faa/image3.webp b/static/img/docs/fad37673-34ab-46e9-8797-b87058f79faa/image3.webp new file mode 100644 index 000000000..22aaa327d Binary files /dev/null and b/static/img/docs/fad37673-34ab-46e9-8797-b87058f79faa/image3.webp differ diff --git a/static/img/docs/fad37673-34ab-46e9-8797-b87058f79faa/image4.webp b/static/img/docs/fad37673-34ab-46e9-8797-b87058f79faa/image4.webp new file mode 100644 index 000000000..91c1a077a Binary files /dev/null and b/static/img/docs/fad37673-34ab-46e9-8797-b87058f79faa/image4.webp differ diff --git a/static/img/docs/fad37673-34ab-46e9-8797-b87058f79faa/image5.webp b/static/img/docs/fad37673-34ab-46e9-8797-b87058f79faa/image5.webp new file mode 100644 index 000000000..65c853a95 Binary files /dev/null and b/static/img/docs/fad37673-34ab-46e9-8797-b87058f79faa/image5.webp differ diff --git a/static/img/docs/fad37673-34ab-46e9-8797-b87058f79faa/image6.webp b/static/img/docs/fad37673-34ab-46e9-8797-b87058f79faa/image6.webp new file mode 100644 index 000000000..76bd9c2c0 Binary files /dev/null and b/static/img/docs/fad37673-34ab-46e9-8797-b87058f79faa/image6.webp differ diff --git a/static/img/docs/fad37673-34ab-46e9-8797-b87058f79faa/image7.webp b/static/img/docs/fad37673-34ab-46e9-8797-b87058f79faa/image7.webp new file mode 100644 index 000000000..b777857cf Binary files /dev/null and b/static/img/docs/fad37673-34ab-46e9-8797-b87058f79faa/image7.webp differ diff --git a/static/img/docs/fad37673-34ab-46e9-8797-b87058f79faa/image8.webp b/static/img/docs/fad37673-34ab-46e9-8797-b87058f79faa/image8.webp new file mode 100644 index 000000000..eb0beb188 Binary files /dev/null and b/static/img/docs/fad37673-34ab-46e9-8797-b87058f79faa/image8.webp differ diff --git a/static/img/docs/fad37673-34ab-46e9-8797-b87058f79faa/image9.webp b/static/img/docs/fad37673-34ab-46e9-8797-b87058f79faa/image9.webp new file mode 100644 index 000000000..615fc2752 Binary files /dev/null and b/static/img/docs/fad37673-34ab-46e9-8797-b87058f79faa/image9.webp differ