Cmdlets for working with environment variables and paths

Minimum PowerShell version


Installation Options

Copy and Paste the following command to install this package using PowerShellGet More Info

Install-Module -Name Atmosphere

You can deploy this package directly to Azure Automation. Note that deploying packages with dependencies will deploy all the dependencies to Azure Automation. Learn More

Manually download the .nupkg file to your system's default download location. Note that the file won't be unpacked, and won't include any dependencies. Learn More


Isabella Muerte

Package Details



Environment Utility EnvVars Linux Windows Mac


Get-EnvironmentVariable Set-EnvironmentVariable Get-EnvironmentPath Get-LDLibraryPath Get-PkgConfigPath Get-PSModulePath Get-PythonPath Get-SystemPath Update-LDLibraryPath Update-PkgConfigPath Update-PSModulePath Update-PythonPath Update-SystemPath Push-Environment Pop-Environment




  • .NETFramework 6.0

    • No dependencies.

Release Notes

# 0.3.0

⬆ Upgrade to Powershell 7.2 and .NET 6

This was a long time coming, as 7.2 is am LTS release now. The primary changes
with this release are a bump in dependencies and a change in how the project is
generated. Having the prior 0.2.0-Alpha allows us to break free from Powershell
7.0 and still have a general 'upgrade' path for users.

Of note: This release will most likely be the last one, with some brief cooking
before a proper 1.0 release.

🔨 Modify build system to be more streamlined/helpful

The build system was streamlined ever so slightly to improve the build
experience. We still have a bunch of work to go, but the build itself is now
more helpful in GitHub Actions.

🔥 Removed the Import-Environment cmdlet

After a bunch of frustration it was basically impossible to properly test the
Import-Environment cmdlet for PSD files, JSON files required strings on both
sides, and .env files were a nightmare to support. In the end, this feature has
been cut for the 0.3.0 release, and any future releases because I have no
desire to support any of this.

# 0.2.0-Alpha

♻ Rewrote all cmdlets as Binary Cmdlets.

While this might be considered unnecessary, it has resulted in less memory
usage and faster execution. Additionally, several type system "hacks" were
fixed with this move. As an example a properly typed dictionary can be given to

✨ Added Several Convenience Cmdlets

- `Get-LDLibraryPath`
- `Get-PkgConfigPath`
- `Get-PSModulePath`
- `Get-PythonPath`
- `Get-SystemPath`

These all return well known environment variables. `Get-SystemPath` refers to
the `${env:PATH}` variable. There are also `Update-` versions of each.

- `Update-LDLibraryPath`
- `Update-PkgConfigPath`
- `Update-PSModulePath`
- `Update-PythonPath`
- `Update-SystemPath`

✨ Added `Import-Environment` cmdlet

This is currently underpowered (hence the 0.2.0-Alpha), but it is currently
capable of importing JSON files into a user's environment. Soon we will support
PowerShell's PSD1 format, and .env files as well.

🚚 Renamed several cmdlets and reorganized operations.

* `Get-EnvironmentVariable -AsPath` is now `Get-EnvironmentPath`
* Likewise, `Set-EnvironmentVariable -AsPath` is now `Set-EnvironmentPath`
* Update-EnvironmentVariable will now error if the environment variable does
  not exist

🔥 Removed builtin Aliases.

These could easily clash and users should alias cmdlets themselves. We aren't
Microsoft, so providing aliases should be done in a user's profile.

# 0.1.1

🐛 Fix output showing up when updating an environment variable
🐛 Fix inability to deduplicate environment variables
✨ The path to a file can now be added. It's directory will be used instead.

# 0.1.0

Initial release!


Version History

Version Downloads Last updated
0.3.1 (current version) 17 12/28/2022
0.2.0-Alpha 55 8/19/2021
0.1.1 324 11/10/2019
0.1.0 47 11/10/2019