POWERSHELL / EXCHANGEONLINEMANAGEMENT
FreeBeginnerRead-onlylow

Find hidden mailboxes

Find Exchange Online mailboxes that are hidden from address lists and export them to CSV with PowerShell.

Generated locally in your browser · Review before running · Opselith does not connect to your tenant

What this PowerShell script does

Finds recipients hidden from address lists

Requirements

    Environment

    • Module: ExchangeOnlineManagement
    • Permissions: Exchange Administrator / recipient read permissions
    • Output: CSV report
    • Context: Exchange Online PowerShell
    • Risk: Low
    Review before you run The script is generated locally. Test outside production first.
    NEXT STEP

    Ready to generate

    Configure Find hidden mailboxes in the Builder, review the generated PowerShell and run it yourself in your own PowerShell session.

    More about this script

    Why use this template?

    Use this free PowerShell script when you need to find recipients hidden from address lists. It is generated locally and can be reviewed before you run it yourself in your own PowerShell session.

    The template uses ExchangeOnlineManagement and requires Exchange Administrator / recipient read permissions. Output: CSV report. Level: Beginner. Action: Read-only. Risk: Low.

    Review before running

    The script is generated in your browser. Read it before you run it, and test it outside production first. “Read-only” describes the script itself; anything you add around it can still change data.

    Generate the script

    1. Open the template in the PowerShell Builder.
    2. Enter the requested values and review the module, permissions, output and risk.
    3. Generate the script, read it carefully, and test it outside production before use.

    The script is generated locally in your browser. Nothing needs to be uploaded to Opselith.

    Generate Find hidden mailboxes →

    How to use this result

    Use this report to inventory mailboxes whose HiddenFromAddressListsEnabled property is set and therefore deserve a visibility review.

    When this helps

    • Review hidden mailboxes before migration or directory cleanup.
    • Find mailboxes that users cannot discover through normal address-list browsing.
    • Compare hidden state with the intended mailbox role or lifecycle.

    How to read the result

    • HiddenFromAddressListsEnabled controls visibility in Exchange address lists; a hidden mailbox can still exist and receive mail.
    • Being hidden from address lists does not mean the mailbox is disabled, deleted or inaccessible by every direct method.

    Things to check

    • Hybrid environments can have source-of-authority considerations; validate where the property should be managed before changing it.
    • This report reads mailbox visibility and does not unhide any recipient.

    What to do next: Confirm why each mailbox is hidden and whether that state is still intentional before changing address-list visibility.

    Related tasks

    Official references

    Before you runModule, permissions, inputs, compatibility and script checks
    OPS / SCRIPT DETAILS

    Script details

    Finds recipients hidden from address lists Review these details before generating or running the script.

    exchangefindpermissionsmailbox
    Generated here. Run by you.Opselith does not connect to your tenant or run PowerShell. After generating, review the script and run it in your own PowerShell session.

    What it works with

    Module: ExchangeOnlineManagement

    ExchangeOnlineManagement lets PowerShell connect to and work with Exchange Online.

    Context: Exchange Online PowerShell

    Compatibility: PowerShell 7 is the supported target for this cloud template.

    Permissions and changes

    Permissions: Exchange Administrator / recipient read permissions

    Risk: Low

    Read-only: designed to collect information without intentionally changing the target environment.

    Changes: Read-only. The script reads data and does not intentionally change the target environment.

    Inputs

    • CSV output path - Example: C:\Temp\report.csv (Required)

    What to expect

    Output: CSV report

    Expect a CSV file at the path you choose. Open it in Excel or another CSV viewer and review the rows.

    Example: C:\Temp\report.csv

    This template is in the Free library and is generated locally in your browser. Opselith does not run it; you review and run the script in your own PowerShell session.

    Example use

    Finds recipients hidden from address lists

    Enter the required values in the Builder, review the generated script and confirm the output before running it.

    Before you run: Make sure your account has Exchange Administrator / recipient read permissions. Check that the ExchangeOnlineManagement PowerShell module is available and that you are using the supported PowerShell version. Review the generated script and output path, then test outside production first.
    Script checksWhat has been verifiedQA reviewed
    Static checksPassed
    PSScriptAnalyzerPending
    Real-world run testNot yet recorded
    Last checkedNot yet recorded

    Real-world run results are shown only after Opselith reviews and accepts a tester report.

    Tester: report a result →
    TEST STATUSWhat Opselith has checked

    Last reviewed: 10 Sept 2026

    PSScriptAnalyzer: Awaiting a release PSScriptAnalyzer gate that includes this script. No analyzer pass is claimed yet.

    Pending or Not yet recorded means there is no accepted result on file yet. A passed analyzer check does not mean the script has been run in a real tenant.