Skip to content

Profile Restructure

Past due by 12 months 0% complete

PowerShell Profile Restructuring

Goal: Restructure the profile directory structure to be simpler and more consolidated, utilizing custom, tailor made modules where necessary.

Primary Features

  • Maintain and Manage existing functionalities such as:

    • Installed Modules
    • Installed Scripts
    • Downloaded/Updated Help
  • Keep up-to-date, comprehensive documentatio…

PowerShell Profile Restructuring

Goal: Restructure the profile directory structure to be simpler and more consolidated, utilizing custom, tailor made modules where necessary.

Primary Features

  • Maintain and Manage existing functionalities such as:

    • Installed Modules
    • Installed Scripts
    • Downloaded/Updated Help
  • Keep up-to-date, comprehensive documentation about each aspect of the profile and its underlying components (i.e. options, integrations, completions, custom functions/aliases, etc.)

    • Architectural Decision Records
  • Migrate all customized resources and source code into single, centralized profile Source directory.

Current Setup

Default Folders:

  • Help: PowerShell Help files for installed modules and cmdlets
  • Modules: Installed (CurrentUser Scoped) Modules
  • Scripts: Installed (CurrentUser Scoped) Modules

Default Files:

  • Microsoft.PowerShell_Profile.ps1: CurrentUser.CurrentHost Profile
  • Profile.ps1: CurrentUser.AllHosts Profile
  • powershell.config.json: PowerShell config/settings file
  • README.md
  • .gitignore, .gitattributes, .editorconfig
  • desktop.ini (for applying icon to folder)

Proposed Setup

  • Add new Source folder:
    • Source Code that gets loaded by profiles on startup:
      • Custom Functions/Aliases
      • Completions/Completion Modules
      • Other "profile" integrations (Chocolatey, Scoop, etc.)
      • Customizations and Options:
        • PSReadLine
        • PSDefaultParameters
        • oh-my-posh Prompt
      • Secret Management:
        • ...
      • Tests/Assertions:
        • ExecutionPolicy
        • Trusted PSGallery, NuGet, and Personal GitHub Feeds (PackageManagement, PowerShellGet, PSResourceGet)
        • Networking Assertions and TLS1.2 Protocol
        • Tool Assertions (i.e. has GitHub CLI installed, etc.)
        • Pester Tests for simple computer maintenance things (Disk space, up-to-date software, etc.
Loading