Я хотел бы знать, как изменить местоположение, на которое указывает моя переменная $ 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 попытался выполнить это, я получил предупреждение системы безопасности.
Чтобы исправить это:
Перейти к This PC
и щелкните правой кнопкой мыши Documents
папку и выберите Properties
.
Обновить местоположение на назначенный путь к диску
Нажмите ОК или примените.
У меня были те же проблемы с 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).