{"id":51986452,"url":"https://github.com/plus3it/powershell-7-formula","last_synced_at":"2026-07-30T19:30:31.661Z","repository":{"id":363359802,"uuid":"1262878635","full_name":"plus3it/powershell-7-formula","owner":"plus3it","description":"SaltStack-based content for installing and configuring powershell 7 scripting utility","archived":false,"fork":false,"pushed_at":"2026-06-22T17:32:04.000Z","size":140,"stargazers_count":0,"open_issues_count":3,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-22T20:25:30.097Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"SaltStack","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/plus3it.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-08T12:08:29.000Z","updated_at":"2026-06-22T17:41:21.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/plus3it/powershell-7-formula","commit_stats":null,"previous_names":["ferricoxide/powershell-7-formula"],"tags_count":0,"template":false,"template_full_name":"plus3it/repo-template","purl":"pkg:github/plus3it/powershell-7-formula","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plus3it%2Fpowershell-7-formula","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plus3it%2Fpowershell-7-formula/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plus3it%2Fpowershell-7-formula/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plus3it%2Fpowershell-7-formula/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/plus3it","download_url":"https://codeload.github.com/plus3it/powershell-7-formula/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plus3it%2Fpowershell-7-formula/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36090022,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-07-20T02:08:10.276Z","status":"online","status_checked_at":"2026-07-30T02:00:05.956Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-07-30T19:30:31.187Z","updated_at":"2026-07-30T19:30:31.650Z","avatar_url":"https://github.com/plus3it.png","language":"SaltStack","funding_links":[],"categories":[],"sub_categories":[],"readme":"powershell-7-formula\n==================\n\nA SaltStack formula designed to install and configure the [Powershell 7 package](https://github.com/PowerShell/powershell/) on installation-targets.\n\nIt is primarily expected that this formula will be run via [P3](https://www.plus3it.com/)'s \"[watchmaker](https://watchmaker.readthedocs.io/en/stable/)\" framework.\n\nThis formula is able to install the Powershell 7 utility on Linux[^1] and Windows Server[^2] operating environments. Installation for internet-connected systems may come from the Powershell 7's [\"Releases\" page](https://github.com/PowerShell/PowerShell/releases). Alternately:\n\n* Sites whose installation-targets won't be able to reach the Powershell 7 product's \"Releases\" page will need to self-host copies of the desired content.\n* Sites that wish to use a specific version of the Powershell 7 will need to target that content\n\nTargeting specific versions of the Powershell 7 or local copies of the install-archives can be directed to do so by adding appropriate content to the formula's associated Pillar-data (see this projct's [pillar.example](pillar.example) file for guidance).\n\n\n## Available states\n\n- [powershell-7](#powershell-7)\n- [powershell-7.clean](#powershell-7.clean)\n- [powershell-7.package](#powershell-7.package)\n- [powershell-7.package.clean](#powershell-7.package.clean)\n- [powershell-7.config](#powershell-7.config)\n- [powershell-7.config.clean](#powershell-7.config.clean)\n\n### powershell-7\n\nExecutes the `package` and `config` states to install and configure the Powershell 7\n\n### powershell-7.clean\n\nExecutes the `package` and `config` states' `clean` actions to fully uninstall the Powershell 7 and remove previously-installed browser policy-configs (and, on Windows, associated registry entries)\n\n### powershell-7.package\n\nExecutes _just_ the `package` state to install the Powershell 7 package.\n\n### powershell-7.package.clean\n\nExecutes _just_ the `package.clean` state to uninstall the Powershell 7 package.\n\n### powershell-7.config\n\nExecutes _just_ the `config` state to install/configure the Powershell 7 client-configuration (etc.) files\n\n### powershell-7.config.clean\n\nExecutes _just_ the `config` state to uninstall the Powershell 7 client-configuration (etc.) files and, on Windows, remove any registry-keys set by prior install-runs of the formula.\n\n## Compatibility Notes:\n\n### Linux\n\nPreliminary testing was performed on a STIG-hardened installation-target with FIPS-mode, SELinux and `fapolicyd` all enabled. No issues were observed during the authoring of this content[^3]. If any are found, please open a documentation-PR with generic guidance for how to provoke the issues encountered.\n\n\n### Windows\n\nThe Windows-portion of this formula supports the use of either ZIP- or MSI-based installation. If no override-arguments are given via Pillar, the formula will attempt to identify, download and install from the GitHub-hosted MSI file. Pillar-data can be used to:\n* Select a specific 7.x.y version to install\n* Select the use of a ZIP-based installation-method\n* Download from a custom repository (e.g., an installation-archive hosted in S3)\n\nThis formula will attempt to install [winrepo](https://docs.saltproject.io/en/latest/topics/windows/windows-package-manager.html) definitions for PowerShell 7.X if the MSI-based installation-method is used. When this formula is run via a userData payload, the various SaltStack content, like the winrepo, will be owned by the SYSTEM-user context. If attempting to run the \"clean\" states, the interactive user will typically operate under a different scope. This will frequently cause the winrepo portion of the \"clean\" routines to fail. Logged output will be similar to:\n\n\u003e ```yaml\n\u003e [ERROR   ] Module function winrepo.genrepo threw an exception. Exception: [Errno 13] Permission denied: 'C:\\\\Watchmaker\\\\Salt\\\\srv\\\\\n\u003e winrepo\\\\winrepo\\\\winrepo.p'\n\u003e local:\n\u003e ----------\n\u003e [...ELIDED...]\n\u003e ----------\n\u003e           ID: Compile Local Winrepo Database After Deletion\n\u003e     Function: module.run\n\u003e         Name: winrepo.genrepo\n\u003e       Result: False\n\u003e      Comment: Module function winrepo.genrepo threw an exception. Exception: [Errno 13] Permission denied: 'C:\\\\Watchmaker\\\\Salt\\\\sr\n\u003e v\\\\winrepo\\\\winrepo\\\\winrepo.p'\n\u003e      Started: 15:56:45.448565\n\u003e     Duration: 252.323 ms\n\u003e      Changes:\n\u003e ----------\n\u003e           ID: Refresh Minion Package Manager Database Cache After Deletion\n\u003e     Function: module.run\n\u003e         Name: pkg.refresh_db\n\u003e       Result: False\n\u003e      Comment: One or more requisite failed: powershell-7.package.win_clean.Compile Local Winrepo Database After Deletion\n\u003e      Started: 15:56:45.700888\n\u003e     Duration: 0.0 ms\n\u003e      Changes:\n\u003e ----------\n\u003e [...ELIDED...]\n\u003e ----------\n\u003e ```\n\nThe `[Errno 13] Permission denied` should also show up in the Watchmaker and SaltStack log-files.\n\n\n[^1]: As of this README's writing, only Enterprise Linux and related distros (Red Hat and Oracle Enterprise, CentOS Stream, Rocky and Alma Linux) are supported. It has only been specifically tested with EL **_9_** variants.\n[^2]: As of this README's writing, this functionality has only been tested on Windows Server 2022\n[^3]: It is _possible_ \u0026mdash; particularly when using the non-RPM installation-versions \u0026mdash; that downloaded commandlets will not immediately work until the `fapolicyd` trust-database is updated. If such update is required:\n    ```bash\n    # fapolicyd-cli --file add ${INSTALL_ROOT}/ --trust-file powershell\n    # fapolicyd-cli --update\n    # fagenrules --load\n    ```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplus3it%2Fpowershell-7-formula","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fplus3it%2Fpowershell-7-formula","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplus3it%2Fpowershell-7-formula/lists"}