8

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.

  • Do you have roaming profile or any sort of my documents folder redirection (by gpo)? – Shay Levy Oct 28 '10 at 9:05
4

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.

  • 1
    This is a workaround to many cases, but it's not really an answer to OP's needs. – villasv Feb 18 '17 at 15:55
3

I was having a similar issue using Windows XP and Windows 8 from within a VMware Fusion virtual machine:

PS C:> $profile
\\vmware-host\Shared Folders\<user>\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

Once I stopped 'Desktop' mirroring (I kept the shared folders), the problem was resolved:

PS C:> $profile
C:\Documents and Settings\Administrator\My Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
  • Same issue here. For reference, the setting is under Virtual Machine / Settings... / Sharing / Mirrored Folders. – ngm Jan 26 '15 at 11:43
  • Good catch. I had to uncheck "Documents" mirroring, haven't even had Desktop checked. I guess any mirroring causes problems. – Miha Markic Mar 28 '16 at 15:28
1

I'm on Windows 10 and was having the same problem. I was able to fix it by changing the Location in Document Properties.

My $profile was being referenced by UNC path (ex. \\server\path\to\my\document\WindowsPowerShell\Microsoft.PowerShell_profile.ps1). When Powershell tried to execute this, I got the security warning.

To fix this:

  1. Create a mapped drive to the network folder.
  2. Go to This PC and right-click the Documents folder and select Properties.

    Document folder

  3. Update Location to Mapped Drive Path

    Location Setting

  4. Click OK or apply.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.