Changer le répertoire du profil Powershell $

11

Je voudrais savoir comment modifier l'emplacement de ma variable de profil $.

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

H: \ est un partage réseau, donc quand je crée mon fichier de profil et charge le PowerShell, j'obtiens ce qui suit:

Avertissement de sécurité Exécutez uniquement les scripts auxquels vous faites confiance. Bien que les scripts provenant d'Internet puissent être utiles, ce script peut potentiellement endommager votre ordinateur. Voulez-vous exécuter H: \ WindowsPowerShell \ Microsoft.PowerShell_profile.ps1? [D] Ne pas exécuter [R] Exécuter une fois [S] Suspendre [?] Aide (la valeur par défaut est "D"):

Selon Microsoft, l'emplacement du profil $ est déterminé par la variable d'environnement% USERPROFILE% . Ce n'est pas vrai:

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

Par exemple, j'ai une machine XP qui fonctionne comme je veux:

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
\

Voici la même sortie de la machine Vista où le profil $ pointe vers le mauvais endroit:

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
\

Puisque $ profile n'est pas réellement déterminé par% USERPROFILE%, comment puis-je le changer? De toute évidence, tout ce qui implique de modifier le trajet d'origine ou le chemin de retour n'est pas la solution que je recherche.

Swoogan
la source
Avez-vous un profil itinérant ou une sorte de redirection de dossier de mes documents (par gpo)?
Shay Levy

Réponses:

5

Vous pouvez également consulter ce post sur Stack Overflow . La meilleure solution proposée jusqu'à présent (à ma question presque identique) est de changer $ profile.AllUsersAllHosts pour "dot source" un autre fichier de votre choix.

Je n'ai rien vu jusqu'à présent pour indiquer que vous pouvez modifier la valeur par défaut de $ profile lui-même.

Frank Merrow
la source
1
Il s'agit d'une solution de contournement dans de nombreux cas, mais ce n'est pas vraiment une réponse aux besoins du PO.
villasv
3

J'avais un problème similaire en utilisant Windows XP et Windows 8 à partir d'une machine virtuelle VMware Fusion:

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

Une fois que j'ai arrêté la mise en miroir «Bureau» (j'ai conservé les dossiers partagés), le problème a été résolu:

PS C:> $profile
C:\Documents and Settings\Administrator\My Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
craibuc
la source
Même problème ici. Pour référence, le paramètre se trouve sous Machine virtuelle / Paramètres ... / Partage / Dossiers en miroir.
ngm
Bonne prise. J'ai dû décocher la mise en miroir "Documents", je n'ai même pas fait vérifier Desktop. Je suppose que toute mise en miroir provoque des problèmes.
Miha Markic
1

Je suis sur Windows 10 et rencontrais le même problème. Je suis en mesure de le réparer en changeant la Locationdans Document Properties.

Mon $profileétait référencé par le chemin UNC (ex. \\server\path\to\my\document\WindowsPowerShell\Microsoft.PowerShell_profile.ps1). Lorsque Powershell a essayé d'exécuter cela, j'ai reçu l'avertissement de sécurité.

Pour résoudre ce problème:

  1. Créez un lecteur mappé dans le dossier réseau.
  2. Accédez au dossier, This PCcliquez dessus avec le bouton droit Documentset sélectionnez Properties.

    Dossier de documents

  3. Mettre à jour l'emplacement vers le chemin de lecteur mappé

    Réglage de l'emplacement

  4. Cliquez sur OK ou appliquez.

Derek
la source