While testing some stuff, I wanted to keep all PowerSploit modules that I need to be automatically loaded into powershell when I open a session(window). To do so, we need a profile file for PowerShell that acts like  .bashrc in Linux or .bash_profile in MacOS.

Step #1 | Get Powershell profile path

In your powershell, print the profile variable which stores the powershell profile default path.

$profile

returns

C:\Users\<USERNAME>\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

This file does not exist by default, so you have to create it manually.

PS C:> mkdir $HOME\Documents\WindowsPowerShell
PS C:> notepad $profile

Step #2 | Add Your modules

I keep my stuff in Downloads directory, so here I load all the modules I need

$Downloads      = "$HOME\Downloads"

$PowerSploitDir = "$Downloads\PowerSploit"
$PSExclude      = Get-ChildItem -Path "$PowerSploitDir\Tests\"
$Files          = Get-ChildItem -Path $PowerSploitDir -Recurse -File -Include "*.ps1" -Exclude $PSExclude | %{$_.FullName}
Write-Host "[+] Import PowerSploit Modules."
foreach ($f in $Files){ Import-Module $f }

Save and close, duh!

Step #3 | Load your Profile

Now, when you open a new powershell session (window), run the following

.$Profile

Resources