Изменить каталог профиля Powershell $

11

Я хотел бы знать, как изменить мое местоположение, на которое указывает переменная $ profile.

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

H: \ является сетевым ресурсом, поэтому при создании файла профиля и загрузке powershell я получаю следующее:

Предупреждение о безопасности Запускайте только те сценарии, которым доверяете. Хотя сценарии из Интернета могут быть полезны, этот сценарий может нанести вред вашему компьютеру. Вы хотите запустить H: \ WindowsPowerShell \ Microsoft.PowerShell_profile.ps1? [D] Не запускать [R] Запускать один раз [S] Приостановить [?] Справка (по умолчанию "D"):

Согласно Microsoft, местоположение $ profile определяется переменной среды% USERPROFILE% . Это неправда:

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

Например, у меня есть машина XP, работающая так, как я хочу:

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
\

Вот тот же вывод с машины Vista, где $ profile указывает на неправильное место:

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
\

Поскольку $ profile на самом деле не определяется% USERPROFILE%, как мне его изменить? Ясно, что все, что связано с изменением homedrive или homepath, не является решением, которое я ищу.

Swoogan
источник
У вас есть перемещаемый профиль или какое-либо перенаправление папок с моими документами (по gpo)?
Шей Леви

Ответы:

5

Вы также можете проверить этот пост на переполнение стека . Лучшее решение, предложенное до сих пор (к моему почти идентичному вопросу), состоит в том, чтобы изменить $ profile.AllUsersAllHosts для «точечного источника» другого файла по вашему выбору.

До сих пор я ничего не видел, чтобы указать, что вы можете изменить значение по умолчанию для $ profile.

Фрэнк Мерроу
источник
1
Это обходной путь для многих случаев, но на самом деле это не ответ на потребности ОП.
villasv
3

У меня была похожая проблема с использованием Windows XP и Windows 8 из виртуальной машины VMware Fusion:

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

После того, как я остановил зеркальное отображение «Рабочий стол» (я сохранил общие папки), проблема была решена:

PS C:> $profile
C:\Documents and Settings\Administrator\My Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
craibuc
источник
Та же проблема здесь. Для справки: параметр «Виртуальная машина» / «Настройки» / «Общий доступ» / «Зеркальные папки».
НГМ
Хороший улов. Мне пришлось снять отметку с «Документами», даже не проверял Desktop. Я думаю, что любое зеркальное отражение вызывает проблемы
Миха Маркич,
1

Я на Windows 10, и у меня была такая же проблема. Я был в состоянии это исправить, изменив Locationин Document Properties.

На меня $profileссылался путь UNC (ex. \\server\path\to\my\document\WindowsPowerShell\Microsoft.PowerShell_profile.ps1). Когда Powershell попытался выполнить это, я получил предупреждение безопасности.

Чтобы исправить это:

  1. Создайте подключенный диск к сетевой папке.
  2. Перейдите This PCи щелкните правой кнопкой мыши Documentsпапку и выберите Properties.

    Папка для документов

  3. Обновить местоположение на Mapped Drive Path

    Настройка местоположения

  4. Нажмите OK или применить.

Дерек
источник