Alterar o diretório de perfil do Powershell $

11

Gostaria de saber como alterar minha localização para a qual minha variável $ profile aponta.

PS H:\> $profile
H:\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

H: \ é um compartilhamento de rede; portanto, quando crio meu arquivo de perfil e carrego o PowerShell, recebo o seguinte:

Aviso de segurança Execute apenas scripts confiáveis. Embora os scripts da Internet possam ser úteis, esse script pode potencialmente danificar seu computador. Deseja executar H: \ WindowsPowerShell \ Microsoft.PowerShell_profile.ps1? [D] Não execute [R] Execute uma vez [S] Suspender [?] Ajuda (o padrão é "D"):

De acordo com a Microsoft, a localização do perfil $ é determinada pela variável de ambiente% USERPROFILE% . Isso não é verdade:

PS H:\> $env:userprofile
C:\Users\username

Por exemplo, eu tenho uma máquina XP funcionando como quero:

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
\

Aqui está a mesma saída da máquina Vista em que o perfil $ aponta para o lugar errado:

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
\

Como $ profile não é realmente determinado por% USERPROFILE%, como faço para alterá-lo? Claramente, qualquer coisa que envolva alterar o caminho inicial ou o caminho inicial não é a solução que estou procurando.

Swoogan
fonte
Você tem perfil de roaming ou algum tipo de redirecionamento da pasta meus documentos (por gpo)?
Shay Levy

Respostas:

5

Você também pode conferir esta postagem no Stack Overflow . A melhor solução oferecida até agora (para minha pergunta quase idêntica) é alterar o $ profile.AllUsersAllHosts para "dot source" outro arquivo de sua escolha.

Não vi nada até agora para indicar que você pode alterar o valor padrão do próprio perfil $.

Frank Merrow
fonte
1
Essa é uma solução alternativa para muitos casos, mas não é realmente uma resposta às necessidades do OP.
villasv
3

Eu estava tendo um problema semelhante ao usar o Windows XP e o Windows 8 em uma máquina virtual do VMware Fusion:

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

Depois que parei o espelhamento do 'Desktop' (mantive as pastas compartilhadas), o problema foi resolvido:

PS C:> $profile
C:\Documents and Settings\Administrator\My Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
craibuc
fonte
O mesmo problema aqui. Para referência, a configuração está em Máquina virtual / Configurações ... / Compartilhamento / Pastas espelhadas.
ngm
Boa pegada. Eu tive que desmarcar o espelhamento "Documents", nem o Desktop foi verificado. Eu acho que qualquer espelhamento causa problemas.
Miha Markic 28/03
1

Estou no Windows 10 e estava tendo o mesmo problema. Consegui consertá-lo alterando o Locationin Document Properties.

Meu $profileestava sendo referenciado pelo caminho UNC (ex. \\server\path\to\my\document\WindowsPowerShell\Microsoft.PowerShell_profile.ps1). Quando o Powershell tentou executar isso, recebi o aviso de segurança.

Para corrigir isso:

  1. Crie uma unidade mapeada para a pasta de rede.
  2. Vá para This PCe clique com o botão direito na Documentspasta e selecione Properties.

    Pasta de documentos

  3. Atualizar local para o caminho da unidade mapeada

    Configuração de local

  4. Clique em OK ou aplique.

Derek
fonte