Вы могли бы также проверить это сообщение на Переполнение стека. Лучшее решение, предлагаемое до сих пор (к моему почти идентичному вопросу), состоит в том, чтобы изменить $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, и у меня была такая же проблема. Мне удалось исправить это, изменив Местоположение
в Свойства документа
.
Мой $ profile
ссылался на UNC-путь (например, \\ сервер \ путь \ к \ моему \ документу \ WindowsPowerShell \ Microsoft.PowerShell_profile.ps1
).Когда Powershell попытался выполнить это, я получил предупреждение системы безопасности.
Чтобы исправить это:
У меня были те же проблемы с операционной системой, и из-за сильно заблокированной среды я не могу изменить политику выполнения PS, и перемещение всего моего профиля из сетевой папки DFS не было вариант, но мне нужен $профиль
.
Профиль считывается из нескольких мест, обнаруженных:
$profile | select *
Он должен возвращать расположение ваших профилей относительно версии PowerShell, которую вы используете.
Вы должны иметь возможность разместить его в любом из этих мест. Есть порядок предпочтения - но я не могу вспомнить, что это такое. Что еще более важно, он дает вам выбор локальных местоположений, а это означает, что вы не столкнетесь с проблемой, которая препятствует запуску сценариев с путей UNC.
Я смог поместить свой файл Microsoft.VScode_profile.ps1
в C:\Program Files\PowerShell-7.0.2-win-x64\
(где я запустить PS 7.0.2 из).
Как сообщил @FrankMerrow, на этот вопрос о переполнении стека вы найдете ответ, но правильный ответ от Neck Beard, я скопирую его сюда.
Как отмечает @woter324, выдача $profile | select *
покажет вам пути, по которым PowerShell получает профили. Как указано в документации MS:
Профили перечислены в порядке приоритета. Первый профиль имеет наивысший приоритет.
<username>$> $profile | select *
AllUsersAllHosts : C:\Windows\System32\WindowsPowerShell\v1.0\profile.ps1
AllUsersCurrentHost : C:\Windows\System32\WindowsPowerShell\v1.0\Microsoft.PowerShell_profile.ps1
CurrentUserAllHosts : C:\Users\<username>\Documentos\WindowsPowerShell\profile.ps1
CurrentUserCurrentHost : C:\Users\<username>\Documentos\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
Length : <will vary>
Те, что выше, принадлежат мне, я полагаю, вы получите что-то вроде
CurrentUserAllHosts : H:\WindowsPowerShell\profile.ps1
CurrentUserCurrentHost : H:\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
Чтобы отредактировать эти пути, у вас есть два пути
Отредактируйте ключ с именем Personal
, который вы найдите в разделе HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
Я не проверял это, в связанной ветке пользователь говорит, что его нужно настроить по порядку работать, но я полагаю, это должно быть легко пройти.
Проблема
New-ItemProperty
'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders'
Personal -Value 'Your New Path Here' -Type ExpandString -Force
В любом случае вам придется перезагрузить Power Shell (или терминал Windows), чтобы это вступило в силу. Затем вы можете снова проверить с помощью $profile | выберите *
.