Я хочу создать alias
объект cmdlet
, срок действия которого не истекает после закрытия текущего сеанса Powershell, допустим, у меня есть этот псевдоним:
C:\Users\Aymen> New-Alias Goto Set-Location
Это прекрасно создает Goto
псевдоним, но я хочу использовать его даже после закрытия текущего сеанса, как мне этого добиться.
Примечание:
Справочная система PowerShell предлагает мне экспортировать созданные мной псевдонимы и импортировать их в следующий раз, когда я открою новый сеанс, на самом деле это не совсем то, что я ищу, есть ли прямой и понятный способ сохранить псевдоним после того, как я создать его через разные сессии
powershell
AymenDaoudi
источник
источник
Ответы:
ОБНОВЛЕНО - январь 2017
В
profile.ps1
файле можно хранить любой код powershell, который будет выполняться при каждом запуске powershell. Существует как минимум 6 различных путей хранения кода в зависимости от того, какой пользователь должен его выполнить. Мы можем рассмотреть только 2 из них: пути «все пользователи» и «только ваш пользователь».Таким образом, чтобы ответить на ваш вопрос, вам нужно всего лишь создать
profile.ps1
файл, содержащий код, который вы хотите выполнить, то естьи сохраните его на правильном пути:
"$Home\Documents"
(C: \ Users \ ваше имя \ Documents): только ваш пользователь будет выполнять код.$PsHome
(C: \ Windows \ System32 \ WindowsPowerShell \ v1.0): каждый пользователь выполнит код.Чтобы применить изменения, закройте все открытые экземпляры PowerShell и перезапустите их.
ЧАЕВЫЕ
Если оба пути содержат
profile.ps1
файл, сначала выполняется весь пользовательский, а затем пользовательский.Всегда помещайте код в пользовательский профиль, если нет необходимости расширять его выполнение для каждого пользователя. Вам не нужны права администратора, чтобы добавить файл в свое пространство пользователя (иначе вы делаете это), и вы не загрязняете пространство других пользователей.
ПОМНИТЕ!
$PsHome
Путь отличается от 32 - битных и 64 - битных экземпляров PowerShell, так что вы должны учитывать и окружающую среду , если вы хотите всегда , чтобы выполнить код профиля. Обычно путиC:\Windows\System32\WindowsPowerShell\v1.0
для 64-битной среды иC:\Windows\SysWow64\WindowsPowerShell\v1.0
для 32-битной.источник
\Users\{ME}\Documents\WindowsPowerShell
а затем добавитьMicrosoft.PowerShell_profile.ps1
не другие пути работает для меня."$HOME\Documents\WindowsPowerShell"
и именованиеMicrosoft.PowerShell_profile.ps1
ограничивают область не-ISE и текущим хостом, но не должны быть вопросом разрешений (то же самое из"$Home\Documents\profile.ps1" should apply
). Может быть, это не так, я попробую, спасибо за информациюNew-Item -path $profile -type file -force
который создал папку и файлDocuments\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
Не стоит добавлять подобные вещи прямо в ваш
$env:WINDIR
папки PowerShell.Рекомендуется добавить его в свой личный профиль:
Теперь добавьте свой псевдоним в файл Microsoft.PowerShell_profile.ps1, который теперь открыт:
Затем сохраните его и обновите текущий сеанс:
Примечание: на всякий случай, если вы получите разрешение, например
Попробуйте команду ниже и обновите сессию снова.
источник
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
.-Scope
Вариант делает его немного более безопасным.MyAlias
. Также для передачи аргументов используйте@Args
, например,function gs { git status @Args }
Set-Alias
потому что я люблю называть свои методы, используя соответствующие соглашения PS с соответствующими глаголами. Но да, если вы не придирчивы, вы можете просто назвать свой метод так, как вы собираетесь вызывать.2018, Windows 10
Вы можете связать любой файл или каталог с помощью простого скрипта PowerShell.
Написание сценария ярлыка файла
Откройте Windows PowerShell ISE. В панели скриптов напишите:
Затем перейдите на панель командной строки. Найдите свой профиль пользователя PowerShell с помощью
echo $profile
. Сохраните скрипт в этом адресе.Сценарий в адресе профиля PowerShell будет запускаться каждый раз, когда вы открываете PowerShell. Ярлык должен работать с каждым новым окном PowerShell.
Написание сценария быстрого доступа к каталогу
Это требует другой строки в нашем скрипте.
В остальном точно так же.
Включить сценарии PowerShell
По умолчанию скрипты PowerShell заблокированы. Чтобы включить их, откройте настройки -> Обновление и безопасность -> Для разработчиков. Выберите режим разработчика (может потребоваться перезагрузка). ,
Прокрутите вниз до раздела PowerShell, установите флажок «Изменить политику выполнения ...» и примените.
источник
echo $profile
отличный совет, помогающий найти правильное место для добавления файла. Спасибо за исчерпывающий ответПросто. Например...
Откройте окно Windows PowerShell и введите:
Затем создайте функцию, такую как:
Затем введите это под именем функции:
Теперь вы можете ввести слово «google» в Windows PowerShell и заставить его выполнять код в вашей функции!
источник
Просто чтобы добавить в этот список возможных мест ...
Это не сработало для меня:
\Users\{ME}\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
Однако это сделало:
\Users\{ME}\OneDrive\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
Если у вас нет профиля или вы хотите его настроить, запустите следующую команду, он создаст необходимую папку / файлы и даже скажет вам, где он живет!
New-Item -path $profile -type file -force
источник
чтобы создать файл profile1.psl, введите следующую команду:
новый элемент $ PROFILE.CurrentUserAllHosts -ItemType file -Force
чтобы получить доступ к файлу, введите следующую команду:
ise $ PROFILE.CurrentUserAllHosts
нота если вы не сделали этого раньше, вы увидите, что не сможете запустить сценарий из-за своей политики выполнения, которую необходимо изменить на Неограниченный с Ограниченный (по умолчанию).
чтобы сделать это, закройте скрипт и затем введите эту команду:
Set-ExecutionPolicy -Scope CurrentUser
затем:
RemoteSigned
тогда эта команда снова:
ise $ PROFILE.CurrentUserAllHosts
затем, наконец, введите псевдонимы в сценарии, сохраните их, и они должны запускаться при каждом запуске powershell, даже после перезагрузки компьютера.
источник
Set-ExecutionPolicy RemoteSigned
. Не ходи рекомендоватьUnrestricted
. Источник: itprotoday.com/management-mobility/…Это немного необычно ... но это работает:
Шаг 1. Создайте профиль Powershell:
Шаг 2: затем в инструменты ~ / Documents / tools / profile.ps1:
Шаг 3:
$ Set-ExecutionPolicy -Scope CurrentUser Неограниченный $. ./install_profile.ps1
источник