Можно ли изменить значение по умолчанию для $ profile на новое значение? - PullRequest
15 голосов
/ 23 февраля 2011

Так что я бы не хотел создавать здесь свой профиль:

C:\Users\fmerrow\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

Я имею в виду, не поймите меня неправильно, это не конец света, и я могу жить с этим. Тем не менее, я предпочитаю поддерживать «Мои документы» в разумных пределах, и я действительно не хотел бы создавать каталог там каждый раз, когда начинаю использовать новое приложение.

Я обнюхивал, где можно было бы скрыть эту настройку, но пока не повезло. Похоже, его нет в реестре или в файлах $PsHome.

Должен ли я просто научиться жить с этим? , , , или есть способ изменить значение $ profile, которое будет "зависать" в этой системе на все времена? То есть изменить «значение по умолчанию» на $profile?

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

Комментарии и / или другие предложения приветствуются.

Frank

Ответы [ 8 ]

16 голосов
/ 24 февраля 2011

Единственное, о чем я могу думать, это "точечный поиск" вашего профиля при вызове powershell.

Например:

powershell -noprofile -noexit -command "invoke-expression '. ''C:\My profile location\profile.ps1''' "

Изменяя скрипт, который указывает на команды-выражения invoke-expression, вы можете разместить свой «профиль» где угодно. Затем создайте ярлык, запускающий PowerShell, и установите для цели указанную выше команду.

7 голосов
/ 13 апреля 2012

Попробуйте переходы, запустив эту команду в powershell:

cmd /c mklink /J c:\Users\Name\Documents\WindowsPowerShell\ d:\Powershell\Engine\Profile\

Для получения дополнительной информации о соединениях см. здесь .

6 голосов
/ 09 апреля 2015

Вы также можете поместить свой файл профиля здесь

C:\Windows\System32\WindowsPowerShell\v1.0\profile.ps1

Если вы хотите иметь отдельное местоположение для всех ваших профилей и сценариев, вы можете изменить файл profile.ps1 выше как

 $profile = "NewLocation\profile.ps1"
. $profile

Убедитесь, какой тип профиля вы используете, подробности см. Здесь

https://technet.microsoft.com/en-ca/library/dd819434.aspx

4 голосов
/ 24 февраля 2011

Я думаю, что ваше решение добавить ваш «новый» профиль в существующий профиль, вероятно, так же хорошо, как вы собираетесь получить.

2 голосов
/ 05 марта 2018

Вы можете изменить свои $Profile.CurrentUser* пути, изменив путь к своей личной папке Environment.GetFolderPath(Environment.SpecialFolder.Personal)

Либо через regedit

HKEY_CURRENT_USER \ Программное обеспечение \ Microsoft \ Windows \ CurrentVersion \ Explorer \ Папки оболочки пользователя

В столбце Имя выберите Personal и измените значение, где вы хотите, чтобы ваш профиль.

Или через PowerShell

New-ItemProperty 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders' Personal -Value 'Your New Path Here' -Type ExpandString -Force

Вы должны перезагрузиться, чтобы это вступило в силу.

1 голос
/ 11 февраля 2016

Согласно статье сценариста Понимание шести профилей PowerShell , $profile расширено с $PsHome\Microsoft.PowerShell_profile.ps1;$pshome - это каталог установки powershell и переменная только для чтения;согласно сообщению в этой ветке, Microsoft сообщает нам, что это нельзя изменить.

0 голосов
/ 28 мая 2018

Это решение основано на ответе RootLoop:

Получите доступ к своему профилю, перейдя к его местоположению, определенному в $ PROFILE.Затем скопируйте его в место, где вы хотите его сохранить (C: /NewLocation/profile.ps1).Замените содержимое исходного профиля текстом:

$profile = "C:\NewLocation\profile.ps1"
. $profile

Помните, что профиль - это просто скрипт, который запускается сразу после открытия powershell.Этот скрипт выше сначала установит $ profile в новое местоположение, поэтому любые ссылки на переменную $ profile будут работать так же, как если бы вы ее переместили.Следующая строка кода вызовет новый профиль с синтаксисом, который называется точечный источник.Эффективно.В строке $ profile просто запускается ваш новый код профиля.

Прежде чем это сработает в вашей системе, возможно, вам придется ослабить политику выполнения.Подробнее см. https://superuser.com/questions/106360/how-to-enable-execution-of-powershell-scripts.

Далее вы можете уменьшить беспорядок в каталоге «Мои документы», скрыв папку Powershell.Просто щелкните правой кнопкой мыши папку, выберите «Свойства» и на вкладке «Общие» выберите «Скрытый».

0 голосов
/ 14 февраля 2018

Это может быть скорее обходной путь, но я создал символическую ссылку на каталог WindowsPowerShell в том месте, где просматривал PowerShell.Хотя это скорее бандитская техника.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...