Skip to content

Commit ca673a9

Browse files
authored
Merge pull request #169 from KelvinTegelaar/master
[pull] master from KelvinTegelaar:master
2 parents 96aaa13 + 0933a3c commit ca673a9

100 files changed

Lines changed: 8565 additions & 3480 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Config/BaselineStandards/Entra (AAD) Standards/DisableGuests.json

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@
55
"tag": [
66
"SMB1001 (2.8)"
77
],
8-
"impact": "Medium Impact",
9-
"helpText": "Blocks login for guest users whose most recent sign-in attempt, interactive or non-interactive, is older than the number of days. Guests that have never signed in are only included when 'Disable accounts that have not yet signed in' is enabled. Accounts an administrator re-enabled in the last 7 days are left alone.",
10-
"executiveText": "Automatically disables external guest accounts that haven't been used for a number of days, reducing security risks from dormant accounts while maintaining access for active external collaborators. This helps maintain a clean user directory and reduces potential attack vectors.",
11-
"docsDescription": "Blocks login for guest users whose most recent sign-in attempt, interactive or non-interactive, is older than the number of days. Guests that have never signed in are only included when 'Disable accounts that have not yet signed in' is enabled.",
12-
"impactColour": "warning",
8+
"impact": "High Impact",
9+
"helpText": "Blocks login for guest users whose most recent sign-in attempt, interactive or non-interactive, is older than the number of days. Optionally soft-deletes already-disabled guests after a configurable grace period past that threshold (0 = never delete). Guests that have never signed in are only included when 'Disable accounts that have not yet signed in' is enabled. Accounts an administrator re-enabled in the last 7 days are left alone. Deleted guests remain recoverable from Deleted Items for about 30 days.",
10+
"executiveText": "Automatically disables external guest accounts that haven't been used for a number of days, and can optionally remove already-disabled dormant guests after an additional grace period. This reduces security risks from abandoned external access, keeps the directory clean, and avoids errors when previously disabled guests need to be invited back.",
11+
"docsDescription": "Blocks login for guest users whose most recent sign-in attempt, interactive or non-interactive, is older than the number of days. Remediation first disables stale enabled guests, and later soft-deletes guests that are already disabled once they have been inactive for the disable threshold plus the configured grace delta (deletion age = days + deleteGraceDays). The disable-before-delete grace is further guaranteed by never deleting a guest in the same pass it was disabled. Guests that have never signed in are only included when 'Disable accounts that have not yet signed in' is enabled. Accounts an administrator re-enabled in the last 7 days are left alone. Graph user DELETE is a soft-delete (recoverable from Deleted Items for about 30 days).",
12+
"impactColour": "danger",
1313
"addedDate": "2022-10-20",
1414
"powershellEquivalent": "Graph API",
1515
"appliesToTest": [
@@ -33,6 +33,17 @@
3333
"required": true,
3434
"default": 90
3535
},
36+
"deleteGraceDays": {
37+
"type": "number",
38+
"label": "Grace days after disable before deletion (0 = never delete). Guests are deleted once inactive for the disable threshold plus this many additional days.",
39+
"default": 0,
40+
"validators": {
41+
"min": {
42+
"value": 0,
43+
"message": "Minimum value is 0"
44+
}
45+
}
46+
},
3647
"IncludeNeverSignedIn": {
3748
"type": "switch",
3849
"label": "Disable accounts that have not yet signed in",
@@ -54,11 +65,17 @@
5465
],
5566
"writes": [
5667
{
68+
"from": "guestsToDisable",
5769
"method": "PATCH",
5870
"uri": "users/%id%",
5971
"body": {
6072
"accountEnabled": false
6173
}
74+
},
75+
{
76+
"from": "guestsToDelete",
77+
"method": "DELETE",
78+
"uri": "users/%id%"
6279
}
6380
]
6481
}

Config/BaselineStandards/Entra (AAD) Standards/DisableSelfServiceLicenses.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@
66
"impact": "Medium Impact",
77
"helpText": "Disables self-service purchasing for every product (with optional product-id exclusions), email-based subscription signup, and optionally trial autoclaim.",
88
"executiveText": "Stops employees buying Microsoft licenses on personal cards outside procurement - keeping licensing centralized, supported and cost-controlled.",
9-
"docsDescription": "Grades every self-service purchasable product against Disabled (excluded product ids stay Enabled), email-based subscription signup against off, and - when trials are disabled - the autoclaim policy. Requires the Billing Administrator GDAP role to read the product list. Remediation writes each drifted product on its own endpoint.",
9+
"docsDescription": "Grades every self-service purchasable product against Disabled (excluded product ids stay Enabled), email-based subscription signup against off, and - when trials are disabled - the autoclaim policy. Remediation writes each drifted product on its own endpoint.",
1010
"impactColour": "warning",
1111
"addedDate": "2026-08-16",
12-
"powershellEquivalent": "MSCommerce / licensing.m365.microsoft.com policy API",
12+
"powershellEquivalent": "Update-MSCommerceProductPolicy -PolicyId AllowSelfServicePurchase -Value Disabled",
1313
"recommendedBy": [],
1414
"requiredCapabilities": [],
1515
"disabledFeatures": {

Config/CIPPTimers.json

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -284,5 +284,14 @@
284284
"RunOnProcessor": true,
285285
"TZOffset": true,
286286
"PreferredProcessor": "standards"
287+
},
288+
{
289+
"Id": "3f7a1c92-58d4-4e0b-9a13-6c2b8d45e7f1",
290+
"Command": "Start-InstanceHealthSample",
291+
"Description": "Sample container log health into the InstanceHealth table",
292+
"Cron": "0 */5 * * * *",
293+
"Priority": 0,
294+
"RunOnProcessor": true,
295+
"IsSystem": true
287296
}
288297
]

0 commit comments

Comments
 (0)