Modifica la directory del profilo $ Powershell


11

Vorrei sapere come modificare la posizione a cui punta la mia variabile $ profile.

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

H: \ è una condivisione di rete, quindi quando creo il mio file di profilo e carico PowerShell ottengo quanto segue:

Avviso di sicurezza Esegui solo script di cui ti fidi. Mentre gli script da Internet possono essere utili, questo script può potenzialmente danneggiare il tuo computer. Vuoi eseguire H: \ WindowsPowerShell \ Microsoft.PowerShell_profile.ps1? [D] Non eseguire [R] Esegui una volta [S] Sospendi [?] Guida (l'impostazione predefinita è "D"):

Secondo Microsoft, la posizione del profilo $ è determinata dalla variabile d'ambiente% USERPROFILE% . Questo non è vero:

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

Ad esempio, ho una macchina XP che funziona come voglio:

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
\

Ecco lo stesso output dal computer Vista in cui il profilo $ punta nella posizione sbagliata:

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
\

Dal momento che $ profile non è in realtà determinato da% USERPROFILE% come posso cambiarlo? Chiaramente tutto ciò che comporta la modifica di homedrive o homepath non è la soluzione che sto cercando.


Hai un profilo comune o qualche tipo di reindirizzamento della mia cartella documenti (di gpo)?
Shay Levy,

Risposte:


5

Puoi anche leggere questo post su Stack Overflow . La migliore soluzione finora offerta (alla mia domanda quasi identica) è cambiare $ profile.AllUsersAllHosts per "dot source" un altro file di tua scelta.

Finora non ho visto nulla che indichi che puoi cambiare il valore predefinito di $ profile stesso.


1
Questa è una soluzione alternativa a molti casi, ma in realtà non è una risposta alle esigenze dell'OP.
villasv,

3

Stavo riscontrando un problema simile utilizzando Windows XP e Windows 8 da una macchina virtuale VMware Fusion:

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

Una volta interrotto il mirroring "Desktop" (ho mantenuto le cartelle condivise), il problema è stato risolto:

PS C:> $profile
C:\Documents and Settings\Administrator\My Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

Lo stesso problema qui. Per riferimento, l'impostazione è in Macchina virtuale / Impostazioni ... / Condivisione / Cartelle con mirroring.
ngm,

Buona pesca. Ho dovuto deselezionare il mirroring di "Documenti", non ho nemmeno controllato Desktop. Immagino che qualsiasi mirroring causi problemi.
Miha Markic,

1

Sono su Windows 10 e ho avuto lo stesso problema. Sono stato in grado di risolverlo cambiando Locationin Document Properties.

Il mio $profileera referenziato dal percorso UNC (es. \\server\path\to\my\document\WindowsPowerShell\Microsoft.PowerShell_profile.ps1). Quando Powershell ha provato a eseguire questo, ho ricevuto l'avviso di sicurezza.

Per risolvere questo problema:

  1. Creare un'unità mappata nella cartella di rete.
  2. Vai a This PCe fai clic con il pulsante destro del mouse sulla Documentscartella e seleziona Properties.

    Cartella documenti

  3. Aggiorna posizione su percorso unità mappato

    Impostazione della posizione

  4. Fai clic su OK o applica.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.