Skip to content

Conversation

@l-gosling
Copy link

added purview (ipp) connection using.

After connection to ipp the following tests will fail. The reason is on the right site.

<style> </style>
Name PriorState NewState Fail Reason
ORCA.101: Bulk is marked as spam. Passed Failed The term 'Get-ProtectionAlert' is not recognized as a name of a cmdlet, function, script file, or executable program.
ORCA.102: Advanced Spam filter options are turned off. Passed Failed The term 'Get-ProtectionAlert' is not recognized as a name of a cmdlet, function, script file, or executable program.
ORCA.104: High Confidence Phish action set to Quarantine message. Passed Failed The term 'Get-ProtectionAlert' is not recognized as a name of a cmdlet, function, script file, or executable program.
ORCA.105: Safe Links Synchronous URL detonation is enabled. Passed Failed The term 'Get-ProtectionAlert' is not recognized as a name of a cmdlet, function, script file, or executable program.
ORCA.109: Senders are not being allow listed in an unsafe manner. Passed Failed The term 'Get-ProtectionAlert' is not recognized as a name of a cmdlet, function, script file, or executable program.
ORCA.110: Internal Sender notifications are disabled. Passed Failed The term 'Get-ProtectionAlert' is not recognized as a name of a cmdlet, function, script file, or executable program.
ORCA.111: Anti-phishing policy exists and EnableUnauthenticatedSender is true. Passed Failed The term 'Get-ProtectionAlert' is not recognized as a name of a cmdlet, function, script file, or executable program.
ORCA.112: Anti-spoofing protection action is configured to Move message to the recipients' Junk Email folders in Anti-phishing policy. Passed Failed The term 'Get-ProtectionAlert' is not recognized as a name of a cmdlet, function, script file, or executable program.
ORCA.114: No IP Allow Lists have been configured. Passed Failed The term 'Get-ProtectionAlert' is not recognized as a name of a cmdlet, function, script file, or executable program.
ORCA.115: Mailbox intelligence based impersonation protection is enabled in anti-phishing policies. Passed Failed The term 'Get-ProtectionAlert' is not recognized as a name of a cmdlet, function, script file, or executable program.
ORCA.118.1: Domains are not being allow listed in an unsafe manner in Anti-Spam Policies. Passed Failed The term 'Get-ProtectionAlert' is not recognized as a name of a cmdlet, function, script file, or executable program.
ORCA.118.2: Domains are not being allow listed in an unsafe manner in Transport Rules. Passed Failed The term 'Get-ProtectionAlert' is not recognized as a name of a cmdlet, function, script file, or executable program.
ORCA.118.3: Your own domains are not being allow listed in an unsafe manner in Anti-Spam Policies. Passed Failed The term 'Get-ProtectionAlert' is not recognized as a name of a cmdlet, function, script file, or executable program.
ORCA.118.4: Your own domains are not being allow listed in an unsafe manner in Transport Rules. Passed Failed The term 'Get-ProtectionAlert' is not recognized as a name of a cmdlet, function, script file, or executable program.
ORCA.120.1: Zero Hour Autopurge Enabled for Phish. Passed Failed The term 'Get-ProtectionAlert' is not recognized as a name of a cmdlet, function, script file, or executable program.
ORCA.120.2: Zero Hour Autopurge Enabled for Malware. Passed Failed The term 'Get-ProtectionAlert' is not recognized as a name of a cmdlet, function, script file, or executable program.
ORCA.120.3: Zero Hour Autopurge Enabled for Spam. Passed Failed The term 'Get-ProtectionAlert' is not recognized as a name of a cmdlet, function, script file, or executable program.
ORCA.121: Supported filter policy action used. Passed Failed The term 'Get-ProtectionAlert' is not recognized as a name of a cmdlet, function, script file, or executable program.
ORCA.124: Safe attachments unknown malware response set to block messages. Passed Failed The term 'Get-ProtectionAlert' is not recognized as a name of a cmdlet, function, script file, or executable program.
ORCA.139: Spam action set to move message to junk mail folder or quarantine. Passed Failed The term 'Get-ProtectionAlert' is not recognized as a name of a cmdlet, function, script file, or executable program.
ORCA.140: High Confidence Spam action set to Quarantine message. Passed Failed The term 'Get-ProtectionAlert' is not recognized as a name of a cmdlet, function, script file, or executable program.
ORCA.141: Bulk action set to Move message to Junk Email Folder. Passed Failed The term 'Get-ProtectionAlert' is not recognized as a name of a cmdlet, function, script file, or executable program.
ORCA.156: Safe Links Policies are tracking when user clicks on safe links. Passed Failed The term 'Get-ProtectionAlert' is not recognized as a name of a cmdlet, function, script file, or executable program.
ORCA.158: Safe Attachments is enabled for SharePoint and Teams. Passed Failed The term 'Get-ProtectionAlert' is not recognized as a name of a cmdlet, function, script file, or executable program.
ORCA.180: Anti-phishing policy exists and EnableSpoofIntelligence is true. Passed Failed The term 'Get-ProtectionAlert' is not recognized as a name of a cmdlet, function, script file, or executable program.
ORCA.189: Safe Attachments is not bypassed. Passed Failed The term 'Get-ProtectionAlert' is not recognized as a name of a cmdlet, function, script file, or executable program.
ORCA.189.2: Safe Links is not bypassed. Passed Failed The term 'Get-ProtectionAlert' is not recognized as a name of a cmdlet, function, script file, or executable program.
ORCA.205: Common attachment type filter is enabled. Passed Failed The term 'Get-ProtectionAlert' is not recognized as a name of a cmdlet, function, script file, or executable program.
ORCA.221: Mailbox intelligence is enabled in anti-phishing policies. Passed Failed The term 'Get-ProtectionAlert' is not recognized as a name of a cmdlet, function, script file, or executable program.
ORCA.225: Safe Documents is enabled for Office clients. Passed Failed The term 'Get-ProtectionAlert' is not recognized as a name of a cmdlet, function, script file, or executable program.
ORCA.228: No trusted senders in Anti-phishing policy. Passed Failed The term 'Get-ProtectionAlert' is not recognized as a name of a cmdlet, function, script file, or executable program.
ORCA.229: No trusted domains in Anti-phishing policy. Passed Failed The term 'Get-ProtectionAlert' is not recognized as a name of a cmdlet, function, script file, or executable program.
ORCA.230: Each domain has a Anti-phishing policy applied to it, or the default policy is being used. Passed Failed The term 'Get-ProtectionAlert' is not recognized as a name of a cmdlet, function, script file, or executable program.
ORCA.231: Each domain has a anti-spam policy applied to it, or the default policy is being used. Passed Failed The term 'Get-ProtectionAlert' is not recognized as a name of a cmdlet, function, script file, or executable program.
ORCA.232: Each domain has a malware filter policy applied to it, or the default policy is being used. Passed Failed The term 'Get-ProtectionAlert' is not recognized as a name of a cmdlet, function, script file, or executable program.
ORCA.233: Domains are pointed directly at EOP or enhanced filtering is used. Passed Failed The term 'Get-ProtectionAlert' is not recognized as a name of a cmdlet, function, script file, or executable program.
ORCA.233.1: Domains are pointed directly at EOP or enhanced filtering is configured on all default connectors. Passed Failed The term 'Get-ProtectionAlert' is not recognized as a name of a cmdlet, function, script file, or executable program.
ORCA.234: Click through is disabled for Safe Documents. Passed Failed The term 'Get-ProtectionAlert' is not recognized as a name of a cmdlet, function, script file, or executable program.
ORCA.236: Safe Links is enabled for emails. Passed Failed The term 'Get-ProtectionAlert' is not recognized as a name of a cmdlet, function, script file, or executable program.
ORCA.237: Safe Links is enabled for teams messages. Passed Failed The term 'Get-ProtectionAlert' is not recognized as a name of a cmdlet, function, script file, or executable program.
ORCA.238: Safe Links is enabled for office documents. Passed Failed The term 'Get-ProtectionAlert' is not recognized as a name of a cmdlet, function, script file, or executable program.
ORCA.239: No exclusions for the built-in protection policies. Passed Failed The term 'Get-ProtectionAlert' is not recognized as a name of a cmdlet, function, script file, or executable program.
ORCA.242: Important protection alerts responsible for AIR activities are enabled. Passed Failed The term 'Get-ProtectionAlert' is not recognized as a name of a cmdlet, function, script file, or executable program.
ORCA.243: Authenticated Receive Chain is set up for domains not pointing to EOP/MDO, or all domains point to EOP/MDO. Passed Failed The term 'Get-ProtectionAlert' is not recognized as a name of a cmdlet, function, script file, or executable program.
ORCA.244: Policies are configured to honor sending domains DMARC. Passed Failed The term 'Get-ProtectionAlert' is not recognized as a name of a cmdlet, function, script file, or executable program.

@l-gosling
Copy link
Author

l-gosling commented Aug 20, 2025

@merill or @SamErde or @soulemike i use the preview and the stable version but both has this issues.

Is there any fix that was applied in another part of maester and can used for it too?
If the issue is solved maester support IPP connection in Pipelines.

@SamErde
Copy link
Contributor

SamErde commented Aug 24, 2025

Ohhhh, any chance this is caused by the same issue as #1045 that I fixed in #1082?

Your added switch may be useful, but we would still want a way to get valid responses when all tests are run. I'll review to see if the technique in #1082 can be used to fix all of these tests that you identified.

@svrooij svrooij requested a review from Copilot August 24, 2025 14:04
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds Purview (Information Protection and Purview Session) connection support to the Maester testing framework. The change introduces a new optional parameter to include Purview tests in test runs, similar to the existing Exchange Online integration.

  • Added IncludePurview parameter to enable Purview connectivity
  • Integrated Purview connection logic using Connect-IPPSSession with primary domain detection
  • Updated configuration files and documentation to support the new feature

Reviewed Changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 3 comments.

File Description
script/Run-MaesterAction.ps1 Added Purview connection logic and parameter handling
action.yml Added include_purview input parameter definition
README.md Updated documentation with new Purview parameter
.github/workflows/test-action.yml Added include_purview configuration to test workflow

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

Copy link
Contributor

@svrooij svrooij left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Apart from this PR, (we need a new connection to something), which is great!
This is also related to maester365/maester#1043
I would like to see that tests that cannot execute report as failed (or skipped), but that the entire test run will be able to run.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

@l-gosling
Copy link
Author

Here's what I was able to find out today:
“Get-ProtectionAlert” is only available if you are connected to the IPP.

When I give a user or service principal the “View-Only Configuration” right, I get the error

The term ‘Get-ProtectionAlert’ is not recognized as a name of a cmdlet, function, script file, or executable program.

When I give the user or App the Entra role “Security Reader” in Entra ID, the call works.

This is confusing, as shown here.

Source:

https://learn.microsoft.com/en-us/powershell/exchange/find-exchange-cmdlet-permissions?view=exchange-ps#use-powershell-to-find-the-permissions-required-to-run-a-cmdlet

image

The last entry is my sp "3b8c8c94-5e4c-45a7-a821-0a226d9196f3". This sp should have enough permissions without the entra role. But this is not the case.

@svrooij
Copy link
Contributor

svrooij commented Sep 15, 2025

@l-gosling what does your last message mean? This cannot be executed without a user logging in? If that is the case should we even proceed in accepting this pr?

@l-gosling
Copy link
Author

@svrooij i am waiting for a response from fabian in maester365/maester#1173.

The "issue" is that the permissions in EXO don't cover the needed permission. The security reader role had do be assigned (or another permission i am currently not found but sadly no api permissions). We can try it with URBAC, but this is also no API Permission.

In the mentioned PR in the maester repo i suggest to have a validation of the needed permission for each test. If we have this. We can discuss if we want to auto connect to ipp when connecting to EXO because the permission checks avoid this errors.

@l-gosling l-gosling marked this pull request as draft September 18, 2025 05:00
@SamErde
Copy link
Contributor

SamErde commented Oct 21, 2025

I still want to make this work. One thing that I noticed is that your new option is called include_purview. In other Maester functions, the connection to the (formerly known as) "security and compliance center" with the ExchangeOnlineManagement module is referred to as SecurityCompliance. We should keep the nomenclature consistent for now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants