
ℹ️ File-level archive is currently in public preview. General availability is expected around July 2026.
This article is about the file-level archive. If you are looking for the site-level archive, check out my article on Archive SharePoint Online Sites Using M365 Archive Feature.
Microsoft 365 Archive used to be a site-level feature only. Now you can archive individual files (and folders) without taking the whole site offline. The file stays in place, the metadata is still visible, but the contents cannot be opened or downloaded until the file is reactivated.
Same model as the site-level archive:
You need pay-as-you-go billing enabled and an Azure resource group linked to your tenant. The setup is exactly the same as for the site-level archive, so I won’t repeat it here. See the site archive article for the screenshots and walkthrough.
Short version:
Microsoft 365 Admin center > Setup > Activate pay-as-you-go services > Billing. Link an Azure subscription and resource group.
Same page > Settings > Storage > Archive. Turn the service on.
Once the Archive service is active, you still need to flip the file-archive switch at the tenant level. Use PowerShell:
By default, every site inherits this setting. You can opt a sensitive site out:
And you can change the default for newly created sites:
Once the feature is on, anyone with edit permission on a library can archive files. They just select one or more items and click Archive in the command bar.
The file stays where it is. The name, path, and metadata remain visible. A small archive icon overlay shows that the contents are no longer accessible. Opening the file fails until somebody reactivates it.
⚠️ Archiving folders is not supported.
Anyone with read permission can reactivate an archived file. No admin ticket required.
The PnP team shipped Set-PnPFileArchiveState for scripted archiving. Two states are supported: Archived and Active.
Bulk archive everything in a folder:
The cmdlet uses Microsoft Graph beta under the hood (delegated permissions only at the time of writing), so it runs as the signed-in user, not as an app.
Not out of the box. There is no policy-based automatic archiving yet. You have to script it. A typical pattern is a scheduled PnP PowerShell job that walks a library, filters by Modified older than a threshold, and pipes the matching files into Set-PnPFileArchiveState.
The file leaves the active storage tier, but the storage report can take up to 72 hours to reflect the change. Same behavior as the site-level archive.
Metadata stays searchable. The file content does not. Clicking a search result for an archived file lands the user on the file with a message that it needs to be reactivated.
Surprisingly - Yes! You can move or rename an archived file. The archive state is preserved.
Yes. And the copy of the file is archived by default.
Here is the sample flow that archives a file. In your case, you will have to get the drive and the item id dynamically:
Sadly, no. You have to click into each file and reactivate it separately. Bulk reactivation is not supported at the moment via the UI. But you can do it with PowerShell:
The file remains archived after it’s restored from the recycle bin.
All versions are archived together. When the file is reactivated, the full version history comes back.
Yes, the same cmdlets and the same in-product Archive button work in OneDrive libraries. The 120-day re-archive lock does not apply to OneDrive.
File-level archive is the missing piece. Site archive was always too coarse for the real-world cleanup story. Now you can leave the site active for the team that still uses it, and cool down the old stuff at $0.05/GB/month.


