A Microsoft file hosting and synchronization service.
Based on my research, here are my findings regarding each of your questions:
1.Is it possible to retrieve OneDrive sharing and access activity from 2–3 years ago?
Unfortunately, it depends on whether the audit data was retained at the time the activities occurred.
According to Microsoft documentation, Microsoft Purview Audit (Standard) retains audit records for a limited period (currently up to 180 days for supported workloads). Once audit records expire, they cannot be recovered retrospectively unless they were previously exported or collected by another system (for example, Microsoft Sentinel, a SIEM solution, or a third-party archive).
Upgrading the license or creating a retention policy now will not restore expired records, as retention policies only apply to new audit data. Extended audit retention requires the appropriate Microsoft Purview Audit (Premium) licensing and must be configured before the audit records expire.
If no previously exported audit files, SIEM, or backup data exists for this tenant, the 2–3 year history is not recoverable.
Reference:
Learn about auditing solutions in Microsoft Purview | Microsoft Learn
Manage audit log retention policies | Microsoft Learn
2.Is there a way to generate a report for a specific OneDrive folder and all of its subfolders?
There is no built-in Microsoft 365 report that automatically reconstructs the historical sharing and access history of a particular folder hierarchy.
For audit data that is still within the available retention period, you can search Microsoft Purview Audit logs and then filter the results based on the folder path (for example, using the ObjectId value in the exported audit records) to identify activities related to a specific folder and its descendants. Relevant sharing and access operations may include SharingSet, SharingInvitationCreated, AnonymousLinkCreated, SecureLinkCreated, AddedToSecureLink, SharingRevoked, and FileAccessed, where available.
Reference: Search the audit log | Microsoft Learn
3.Can Microsoft Graph or PowerShell identify who originally shared folders, who they were shared with, and who currently has access?
This depends on whether you are looking for historical or current information.
For current access, Microsoft Graph and PowerShell can list the folders and their permissions, including users, groups, guests, sharing links, permission levels, and whether each permission is inherited or directly assigned. Permissions are retrieved per item (Get-MgDriveItemPermission), so you will need to loop through the folder tree.
For historical sharing details (for example, who originally shared a folder and when), this information comes from audit records. If those logs have already expired, Graph cannot reconstruct the events. A current permissions snapshot also cannot reliably show who shared an item originally, when it was shared, or who had access in the past.
References:
List who has access to a file - Microsoft Graph v1.0 | Microsoft Learn
Get-MgDriveItemChild (Microsoft.Graph.Files) | Microsoft Learn
4.Are there any Microsoft-native tools or alternative approaches available?
Microsoft provides several options for reporting on current permissions and available audit data:
-OneDrive Sharing Report (Run sharing report) to export current sharing relationships, users, permissions, and sharing links.
-Microsoft Graph / PowerShell to build a custom current-permissions inventory for a specific folder tree.
-Microsoft Purview Audit to review available sharing and access activities within the retained audit period.
-SharePoint Advanced Management / Data Access Governance reports for broader visibility into sharing and permissions across the organization. These reports reflect the current state only and may require additional licensing.
For more information, you may also refer to the AI Answer below, which includes example PowerShell approaches for searching available audit records and retrieving current permission information.
Best regards,