[pull] dev from KelvinTegelaar:dev#93
Open
pull[bot] wants to merge 214 commits intoisgq-github01:devfrom
Open
Conversation
on-premises mailboxes standard
… exo-mailbox-SOA
…itations, cancel meetings) Add support for Exchange cloud-only Set-MailboxAutoReplyConfiguration parameters: CreateOOFEvent, OOFEventSubject, AutoDeclineFutureRequestsWhenOOF, DeclineEventsForScheduledOOF, DeclineAllEventsForScheduledOOF, and DeclineMeetingMessage. These are plumbed through all 3 OOO entry points: - Set-CIPPOutOfOffice: 6 new [bool]/[string] params with PSBoundParameters guards - Get-CIPPOutOfOffice: returns new fields + fixes null-safe StartTime/EndTime - Invoke-ExecSetOoO: extracts calendar params from request body (Scheduled only) - Set-CIPPVacationOOO: accepts StartTime/EndTime + calendar params; uses Scheduled state when dates are provided for Exchange calendar option support - Invoke-ExecScheduleOOOVacation: converts epoch to datetime for Scheduled mode, conditionally attaches calendar params to the Add task All changes are backwards compatible — callers that omit the new parameters get identical behavior via $PSBoundParameters.ContainsKey() guards.
[pull] dev from KelvinTegelaar:dev
Refactor license utilization checks to return structured alert data for Entra ID P1 and P2 licenses. This change enhances the clarity of alert messages and includes detailed information such as usage percentage, overage, and thresholds.
The previous implementation batched all MFA method deletions into a single Graph bulk request, which introduced two problems: 1. Duplicate method types (e.g. two phone numbers) could collide within the same batch, causing one of the requests to fail silently. 2. The success/failure check only inspected a single status code from the bulk response. If one method was removed but another failed, the function logged full success — leaving the user's MFA partially intact despite the log stating otherwise. Switching to a sequential foreach loop eliminates the collision window and tracks successes and failures independently, so partial failures are reported accurately.
- Improved condition handling in Test-DeltaQueryConditions to sanitize inputs and prevent invalid conditions from being processed. - Added validation for dynamic rules in Invoke-ExecTenantGroup to prevent code injection by restricting allowed operators and properties. - Implemented error handling and validation for conditions in Invoke-AddAlert, ensuring only safe operators and properties are processed. - Updated New-CIPPAlertTemplate to include a CustomSubject parameter for more flexible alert titles. - Refactored Update-CIPPDynamicTenantGroups to utilize a safer evaluation method for dynamic group rules, ensuring only valid conditions are processed. - Enhanced webhook processing in Invoke-CIPPWebhookProcessing to include custom subjects from webhook rules for better context in alerts.
Added CIPP variable replacement to custom app powershell script block
…it log search creation
This reverts commit 121a2cb.
- Introduced a new function to compare Intune policies from two sources. feat: Add support for community repo sources in policy comparison
Replace bulk deletion of MFA methods with individual requests to improve error handling and avoid silent failures. Tested with removing 2 software OTP, 1 TAP, 1 QR and 1 SMS method at the same time successfully.
- Implements KelvinTegelaar/CIPP#5552 - Add `Invoke-ListMDEOnboarding` endpoint to check MDE connector status via Graph API - Add `Set-CIPPDBCacheMDEOnboarding` and `Get-CIPPMDEOnboardingReport` for ReportDB caching - Add `MDEOnboarding` to Intune cache collection for automatic updates
Added CIPP variable replacement to custom app powershell script block
Signed-off-by: Chris Dewey <142454021+chris-dewey-1991@users.noreply.github.com>
Signed-off-by: Chris Dewey <142454021+chris-dewey-1991@users.noreply.github.com>
Creation of Standard that controls the Quarantine Notification Settings within Micorosft Defender. This does the following > Sender Display Name > Specify Sender Address > Disclaimer > If there is no Language selected it will add the default (Englsh USA) but if a Language has been manually set it will not overide this. > Ability to tick "Use My Company Logo" Ignores "Send End-user spam notification" as this is handled by another standard. <img width="650" height="659" alt="image" src="https://github.com/user-attachments/assets/2d26f101-86de-48f4-8044-a3028aed7d82" /> <img width="508" height="823" alt="image" src="https://github.com/user-attachments/assets/18f7e937-a22b-41bb-aad1-89f9af751fcc" />
…undant put thing so we fix not doing many graph call things
Invoke-ExecUpdateDriftDeviation only checked TemplateList.value when resolving template settings for one-off drift remediation. For tag bundle entries this is null, so Settings was null and the task no-oped. Added fallback to search TemplateList-Tags.rawData.templates for the GUID, matching how Get-CIPPStandards expands bundles. fix(Invoke-ExecUpdateDriftDeviation): include headers in log message for scheduled drift remediation task
# Summary Fixes DeniedRemediate one-off drift remediation silently doing nothing for IntuneTemplate policies added via tag bundles (TemplateList-Tags). The scheduled task would complete "successfully" but the policy was never deployed to Intune. # Description `Invoke-ExecUpdateDriftDeviation` resolves the template settings for a DeniedRemediate one-off by filtering `standardSettings.IntuneTemplate` on `TemplateList.value`. For templates added individually this works, but for templates added via a tag bundle (e.g. "Core Policies (4 Templates)"), `TemplateList` is null and the templates live under `TemplateList Tags.rawData.templates` instead. The `Where-Object` returns nothing, `$Settings` ends up null, and the scheduled task calls `Invoke-CIPPStandardIntuneTemplate` with no settings. The function then wildcard-matches every template in the table and processes them as a single blob, which doesn't match anything in Graph. The fix adds a fallback that searches `TemplateList-Tags.rawData.templates` for the template GUID when the `TemplateList.value` lookup returns nothing. When found, it expands the bundle entry into a proper `TemplateList` with the individual GUID, matching the pattern `Get-CIPPStandards` already uses for bundle expansion during normal standards runs. Also added a warning log when neither path finds the template. # Testing 1. Create a drift template with a **tag bundle** containing multiple Intune templates (e.g. "Core Policies" with Config Refresh, LAPS, etc.) 2. Assign to a test tenant and run drift. Bundled policies should show as deviations if they don't exist in the tenant 3. Mark a bundled template deviation as "Denied" (DeniedRemediate) 4. Wait for the one-off scheduled task to complete (or force it to /w timer run) 5. Verify the policy is actually deployed in Intune (this is the bug fix, previously it silently did nothing) 6. Verify the policy has the correct assignments from the bundle entry 7. Also test an **individual** (non-bundled) template DeniedRemediate to confirm no regression on the original code path
- Updated log messages to clarify when settings are already configured correctly for various standards. - Enhanced error handling and logging for remediation processes across multiple standards.
…dGlobalQuarantineSettings.ps1 Signed-off-by: Zacgoose <107489668+Zacgoose@users.noreply.github.com>
Replace NCrontab with Cronos (add Cronos.dll, remove NCrontab.Advanced.dll) and update timer logic to use UTC and a configurable schedule timezone from a new TimeSettings entry in the Config table. Persist and validate timezone via Invoke-ExecTimeSettings (stores TimeSettings in table), surface timezone in Invoke-ExecBackendURLs, and make Get-CIPPTimerFunctions timezone-aware and Cronos-based when computing next occurrences. Add support for marking service principals as enterprise-integrated: Push-ExecAppApprovalTemplate now sets the WindowsAzureActiveDirectoryIntegratedApp tag on created or existing service principals when TemplateData.IncludeInEnterpriseAppList is set. profile.ps1 cache-clearing now wrapped in try/catch to avoid noisy failures. Overall changes improve cron parsing, timezone handling, and optional enterprise app tagging.
# Summary Replaces all `-user $request.headers.'x-ms-client-principal'` calls with `-Headers $Request.Headers` in `Invoke-ExecUpdateDriftDeviation` for consistent logging behavior. # Description `Write-LogMessage` handles IDP detection, AAD API client resolution, and IP address capture from `x-forwarded-for` when given the full `-Headers` object. Passing `-user` with the raw base64 principal skips all of that. All 9 `Write-LogMessage` calls in the file now use `-Headers $Request.Headers` to match the convention used elsewhere.
…ng it (#1984) Enhance logging messages to clarify the status of settings and improve error handling during remediation processes across various standards. This should remove some unnecessary graph calls
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.4)
Can you help keep this open source service alive? 💖 Please sponsor : )