Назад | Перейти на главную страницу

Измените каталог Powershell $ profile

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

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

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

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

Согласно Microsoft, расположение профиля $ определяется переменной среды% 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, где профиль $ указывает не на то место:

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
\

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

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

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

У меня была аналогичная проблема при использовании 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

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

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

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

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

  3. Обновить местоположение на назначенный путь к диску

  4. Нажмите ОК или примените.

У меня были те же проблемы с OP, и из-за сильно заблокированной среды я не могу изменить политику выполнения PS, и перемещение всего моего профиля из общего сетевого ресурса DFS не было вариантом, но мне нужен $Profile.

Профиль читается из нескольких мест, обнаруженных:

$profile | select *

Он должен возвращать расположение ваших профилей относительно используемой вами версии PowerShell.

Вы должны иметь возможность разместить его в любом из этих мест. Есть заказ или предпочтение - но я не могу вспомнить, что это такое. Что еще более важно, это дает вам выбор локальных расположений, а это означает, что вы не столкнетесь с проблемой, которая препятствует запуску скриптов с UNC-путей.

Для меня я смог разместить свой Microsoft.VScode_profile.ps1 файл внутри C:\Program Files\PowerShell-7.0.2-win-x64\ (Откуда я запускаю PS 7.0.2).