Ответ 1
Я думаю, что ваше решение для источника вашего "нового" профиля в существующем профиле, вероятно, так же хорошо, как и вы.
Поэтому я бы предпочел не создавать файл моего профиля здесь:
C:\Users\fmerrow\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
Я имею в виду, не поймите меня неправильно, это еще не конец света, и я могу жить с ним. Тем не менее, мне нравится укоренять корневые "Мои документы", и я действительно не хочу создавать каталог там каждый раз, когда я начинаю использовать новое приложение.
Я обошел вокруг, глядя, где эта настройка может быть скрыта, но пока не повезло. Кажется, что это не в реестре или в файлах $PsHome
.
Я просто должен научиться жить с этим?,, или есть способ изменить значение $профиля, который будет "придерживаться" в этой системе на все время? То есть, чтобы изменить "значение по умолчанию" $profile
?
Самое лучшее, о чем я думал до сих пор, - это игнорировать $profile
и вместо этого поместить некоторый код в $profile.AllUsersAllHosts
в исходный/исполняемый файл, из которого я хочу поместить его, а не из местоположения $default по умолчанию.
Комментарии и/или другие предложения приветствуются.
Франк
Я думаю, что ваше решение для источника вашего "нового" профиля в существующем профиле, вероятно, так же хорошо, как и вы.
Единственное, о чем я могу думать, это "dot sourcing" ваш профиль в вызове powershell.
Например:
powershell -noprofile -noexit -command "invoke-expression '. ''C:\My profile location\profile.ps1''' "
Изменив script, который указывает на команды вызова-выражения, вы можете разместить свой "профиль" в любом месте. Затем создайте ярлык, запускающий PowerShell, и установите цель в приведенную выше команду.
Попробуйте соединения, выполнив эту команду в powershell:
cmd /c mklink /J c:\Users\Name\Documents\WindowsPowerShell\ d:\Powershell\Engine\Profile\
Для получения дополнительной информации о переходах см. здесь.
Вы также можете разместить свой профиль здесь
C:\Windows\System32\WindowsPowerShell\v1.0\profile.ps1
Если вы хотите иметь отдельное местоположение для всех ваших профилей и сценариев, вы можете изменить свой файл profile.ps1 выше как
$profile = "NewLocation\profile.ps1"
. $profile
Убедитесь, какой тип профиля вы используете, подробности смотрите здесь
Вы можете изменить пути $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
Вы должны перезагрузиться, чтобы это вступило в силу.
Согласно статье Scripting Guy Понимание шести профилей PowerShell, $profile
расширяется от $PsHome\Microsoft.PowerShell_profile.ps1
; $pshome
- это каталог установки powershell и переменная только для чтения; согласно сообщению на этот поток, Microsoft сообщает, что это не может быть изменено.
Это может быть скорее обходной путь, но я создал символическую ссылку на каталог WindowsPowerShell в том месте, где просматривал PowerShell. Это скорее бандитская техника.
Это решение вдохновлено ответом 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. Просто щелкните правой кнопкой мыши папку, выберите "Свойства" и на вкладке "Общие" выберите "Скрытый".