I would like to know how to change my the location my $profile variable points to.
PS H:\> $profile
H:\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
H:\ is a network share, so when I create my profile file, and load powershell I get the following:
Security Warning Run only scripts that
you trust. While scripts from the
Internet can be useful, this script
can potentially harm your computer. Do
you want to run
H:\WindowsPowerShell\Microsoft.PowerShell_profile.ps1?
[D] Do not run [R] Run once [S]
Suspend [?] Help (default is "D"):
According to Microsoft, the location of the $profile is determined by the %USERPROFILE% environment variable. This is not true:
PS H:\> $env:userprofile
C:\Users\username
For example, I have an XP machine working how I want:
PS H:\> $profile
C:\Documents and Settings\username\My Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
PS H:\> $env:userprofile
C:\Documents and Settings\username
PS H:\> $env:homedrive
H:
PS H:\> $env:homepath
\
Here's the same output from the Vista machine where the $profile points to the wrong place:
PS H:\> $profile
H:\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
PS H:\> $env:userprofile
C:\Users\username
PS H:\> $env:homedrive
H:
PS H:\> $env:homepath
\
Since $profile isn't actually determined by %USERPROFILE% how do I change it? Clearly anything that involves changing the homedrive or homepath is not the solution I'm looking for.
Best Answer
You might also check out this post on Stack Overflow. The best solution offered so far (to my almost identical question) is to change $profile.AllUsersAllHosts to "dot source" another file of your own choosing.
I've seen nothing so far to indicate you can change the default value of $profile itself.