Get-FirefoxExtensions
Description
Gather information about extensions installed on the Mozilla Firefox browser for each user.
Requirements
- Run as administrator
- PowerShell v5+
- .NET Runtime 4.5+
Usage
- Import .NET compression utilities.
- Get valid user profile paths and perform the following for each path:
- Validate if the Firefox Profile path exists.
- For each valid Firefox profile folder, locate and extract the XPI files (zipped extension packages) into a temp folder, then run the manifest check.
- From each extracted directory, locate the 'manifest.json' file.
- Read the manifest.json file to find the
name
of the extension. - The manifest file either contains the
name
of the extension or a reference to the variable storing the name in the messages.json file. - If the manifest file returns a variable starting with double underscores (e.g.,
__MSG_APP_NAME__
), then attempt to find the extension's name from the 'en/messages.json' file followed by the 'en_us/messages.json' file.- Example: If the
name
stored in the manifest.json file is__MSG_APP_NAME__
, then both messages.json files will be checked for the value stored under the 'APP_NAME' object.
- Example: If the
Get the installed extensions for the Mozilla Firefox browser.
.\Get-FirefoxExtensions.ps1
Output
- .\Get-FirefoxExtensions-log.txt
- .\Get-FirefoxExtensions-error.txt
System.Management.Automation.PSCustomObject
Name MemberType Definition
---- ---------- ----------
Equals Method bool Equals(System.Object obj)
GetHashCode Method int GetHashCode()
GetType Method type GetType()
ToString Method string ToString()
Browser NoteProperty string Browser=Firefox
ExtensionID NoteProperty System.String ExtensionID={a7fe67a3-d248-48d9-93ce-633fc02cdc98}
ExtensionInstallTimeUtc NoteProperty datetime ExtensionInstallTimeUtc=03/01/2023 16:55:45
ExtensionName NoteProperty string ExtensionName=The best extension
ExtensionVersion NoteProperty string ExtensionVersion=1.1.1
UserProfilePath NoteProperty System.String UserProfilePath=C:\Users\localadmin