Notices: This section not yet converted to new layout. Download stats are rolling back out.

posh-with (PowerShell Module)

Package test results are passing.

This package was approved by moderator mkevenaar on 7/19/2019.

Program prefixing for continuous workflow using a single tool.

You can pass the following parameters:

  • /core - Installs the module in the AllUsers scope for PowerShell Core;
  • /desktop - Installs the module in the AllUsers scope for Windows PowerShell (ie. Desktop Edition);

You can pass both /core and /desktop parameters to install on both. If you pass no parameters then /desktop is assumed.

NOTE: This module requires a minimum of PowerShell v3.

NOTE: This is an automatically updated package. If you find it is out of date by more than a week, please contact the maintainer(s) and let them know the package is no longer updating correctly.

To install posh-with (PowerShell Module), run the following command from the command line or from PowerShell:

C:\> choco install poshwith

To upgrade posh-with (PowerShell Module), run the following command from the command line or from PowerShell:

C:\> choco upgrade poshwith


  • tools\.skipAutoUninstaller
  • tools\chocolateyBeforeModify.ps1 Show
    $ErrorActionPreference = 'Stop'
    $moduleName = 'posh-with'      # this could be different from package name
    Remove-Module -Name $moduleName -Force -ErrorAction SilentlyContinue
  • tools\chocolateyInstall.ps1 Show
    $ErrorActionPreference = 'Stop'
    $toolsDir = Split-Path -parent $MyInvocation.MyCommand.Definition
    $moduleName = 'posh-with'  # this may be different from the package name and different case
    $moduleVersion = '1.0.2'  # this may change so keep this here
    $savedParamsPath = Join-Path $toolsDir -ChildPath 'parameters.saved'
    if ($PSVersionTable.PSVersion.Major -lt 3) {
        throw "$moduleName module requires a minimum of PowerShell v3."
    # module may already be installed outside of Chocolatey
    Remove-Module -Name $moduleName -Force -ErrorAction SilentlyContinue
    # remove the saved parameters file if it exists
    if (Test-Path -Path $savedParamsPath) {
        Remove-Item -Path $savedParamsPath -Force
    $params = Get-PackageParameters
    $sourcePath = Join-Path -Path $toolsDir -ChildPath "$"
    $destinationPath = @()
    if ($params.Desktop -or (-not $params.Core)) {
        $desktopPath = Join-Path -Path $env:ProgramFiles -ChildPath "WindowsPowerShell\Modules\$moduleName"
        # PS > 5 needs to extract to a folder with the module version
        if ($PSVersionTable.PSVersion.Major -ge 5) {
            $desktopPath = Join-Path -Path $desktopPath -ChildPath $moduleVersion
        $destinationPath += $desktopPath
    if ($params.Core) {
        $destinationPath += Join-Path -Path $env:ProgramFiles -ChildPath "PowerShell\Modules\$moduleName\$moduleVersion"
    ForEach ($destPath in $destinationPath) {
        Write-Verbose "Installing '$modulename' to '$destPath'."
        # check destination path exists and create if not
        if (Test-Path -Path $destPath) {
            $null = New-Item -Path $destPath -ItemType Directory -Force
        Get-ChocolateyUnzip -FileFullPath $sourcePath -Destination $destPath -PackageName $moduleName
        # save the locations where the module was installed so we can uninstall it
        Add-Content -Path $savedParamsPath -Value $destPath
    # For PowerShell 4 the module destination needs to be added to the PSModulePath
    if ($PSVersionTable.PSVersion.Major -lt 4) {
        $modulePaths = [Environment]::GetEnvironmentVariable('PSModulePath', 'Machine') -split ';'
        if ($modulePaths -notcontains $destPath) {
            Write-Verbose "Adding '$destPath' to PSModulePath."
            $newModulePath = @($destPath, $modulePaths) -join ';'
            [Environment]::SetEnvironmentVariable('PSModulePath', $newModulePath, 'Machine')
            $env:PSModulePath = $newModulePath
    # cleanup the module from the Chocolatey $toolsDir folder
    Remove-Item -Path $sourcePath -Force -Recurse
  • tools\chocolateyUninstall.ps1 Show
    $ErrorActionPreference = 'Stop'
    $toolsDir = Split-Path -parent $MyInvocation.MyCommand.Definition
    $moduleName = $env:ChocolateyPackageName  # this may be different from the package name and different case
    $savedParamsPath = Join-Path $toolsDir -ChildPath 'parameters.saved'
    if (Test-Path -Path $savedParamsPath) {
        $removePath = Get-Content -Path $savedParamsPath
    else {
        $removePath = Join-Path -Path $env:ProgramFiles -ChildPath "WindowsPowerShell\Modules\$moduleName"
    ForEach ($path in $removePath) {
        Write-Verbose "Removing all version of '$moduleName' from '$path'."
        Remove-Item -Path $path -Recurse -Force -ErrorAction SilentlyContinue
    # remove path of module from $env:PSModulePath
    if ($PSVersionTable.PSVersion.Major -lt 4) {
        $modulePaths = [Environment]::GetEnvironmentVariable('PSModulePath', 'Machine') -split ';'
        Write-Verbose "Removing '$sourcePath' from PSModulePath."
        $newModulePath = $modulePaths | Where-Object { $_ -ne $sourcePath }
        [Environment]::SetEnvironmentVariable('PSModulePath', $newModulePath, 'Machine')
        $env:PSModulePath = $newModulePath
  • tools\LICENSE.txt Show
    Copyright 2016 Michael Chavinda
    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
  • tools\ Show
    md5: BBFD3AB26150DD81183B9AF1C1F91609 | sha1: E49C221EBFFCF8C527819D0E0C39513440920060 | sha256: E625A87234AE2BD13CC651EB88001EB461ACC757EB935E9189DD08973C919F0F | sha512: 64E2043237B3C50EC6C43D9EF364B03F93590AC6EB9AC526E074C263860D6E5B13951600C4A03E988296B70F77FA78AB6BADA3524BBF86581BB9DE308780CD46
  • tools\VERIFICATION.txt Show
    To verify the files using the project source:
    1. Please go to the project source location ( and download the source files;
    2. Build the source to create the binary files to verify;
    3. Use Get-FileHash -Path <FILE TO VERIFY> to get the file hash value from both the built file (from step 1 above) and the file from the package and compare them;
    Alternatively you can download the module from the PowerShell Gallery ...
        Save-Module -Name posh-with -Path <PATH TO DOWNLOAD TO>
    ... and compare the files from the package against those in the installed module. Again use Get-FileHash -Path <FILE TO VERIFY> to retrieve those hash values.

Virus Scan Results

In cases where actual malware is found, the packages are subject to removal. Software sometimes has false positives. Moderators do not necessarily validate the safety of the underlying software, only that a package retrieves software from the official distribution point and/or validate embedded software against official distribution point (where distribution rights allow redistribution).

Chocolatey Pro provides runtime protection from possible malware.


Package Maintainer(s)

Software Author(s)

  • Michael Chavinda


2016 Michael Chavinda


Version History

Version Downloads Last updated Status
posh-with (PowerShell Module) 1.0.2 182 Monday, May 14, 2018 approved

Discussion for the posh-with (PowerShell Module) Package

Ground rules:

  • This discussion is only about posh-with (PowerShell Module) and the posh-with (PowerShell Module) package. If you have feedback for Chocolatey, please contact the google group.
  • This discussion will carry over multiple versions. If you have a comment about a particular version, please note that in your comments.
  • The maintainers of this Chocolatey Package will be notified about new comments that are posted to this Disqus thread, however, it is NOT a guarantee that you will get a response. If you do not hear back from the maintainers after posting a message below, please follow up by using the link on the left side of this page or follow this link to contact maintainers. If you still hear nothing back, please follow the package triage process.
  • Tell us what you love about the package or posh-with (PowerShell Module), or tell us what needs improvement.
  • Share your experiences with the package, or extra configuration or gotchas that you've found.
  • If you use a url, the comment will be flagged for moderation until you've been whitelisted. Disqus moderated comments are approved on a weekly schedule if not sooner. It could take between 1-5 days for your comment to show up.

comments powered by Disqus uses cookies to enhance the user experience of the site.