Можно ли изменить значение по умолчанию $профиля на новое значение?

Поэтому я бы предпочел не создавать файл моего профиля здесь:

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

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

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

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

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

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

Франк

Ответы

Ответ 1

Я думаю, что ваше решение для источника вашего "нового" профиля в существующем профиле, вероятно, так же хорошо, как и вы.

Ответ 2

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

Например:

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

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

Ответ 3

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

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

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

Ответ 4

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

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

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

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

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

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

Ответ 5

Вы можете изменить пути $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

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

Ответ 6

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

Ответ 7

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

Ответ 8

Это решение вдохновлено ответом RootLoop:

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

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

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

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

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