Quero criar um alias
de um cmdlet
que não expire após o encerramento da sessão atual do Powershell, digamos que tenho esse alias:
C:\Users\Aymen> New-Alias Goto Set-Location
Isso cria perfeitamente o Goto
alias, mas eu quero usá-lo mesmo depois de fechar a sessão atual, como posso conseguir isso.
Nota:
O sistema de Ajuda do PowerShell sugere que eu posso exportar os aliases criados e importá-los na próxima vez em que abrir uma nova sessão. Na verdade, não é isso que estou procurando, existe uma maneira clara e direta de manter um alias depois que eu criá-lo através de diferentes sessões
powershell
AymenDaoudi
fonte
fonte
Respostas:
ATUALIZADO - Jan de 2017
É possível armazenar em um
profile.ps1
arquivo qualquer código do PowerShell a ser executado sempre que o PowerShell for iniciado. Existem pelo menos 6 caminhos diferentes onde armazenar o código, dependendo de qual usuário deve executá-lo. Podemos considerar apenas dois deles: os caminhos "todos os usuários" e "apenas o seu usuário".Portanto, para responder sua pergunta, você só precisa criar um
profile.ps1
arquivo contendo o código que deseja executar, ou seja,e salve-o no caminho correto:
"$Home\Documents"
(C: \ Users \ seunome \ Documents): somente seu usuário executará o código.$PsHome
(C: \ Windows \ System32 \ WindowsPowerShell \ v1.0): todo usuário executará o código.Para aplicar as alterações, feche todas as instâncias do PowerShell abertas e reinicie-as.
DICAS
Se os dois caminhos contiverem um
profile.ps1
arquivo, todos os usuários serão executados primeiro, e os usuários serão específicos.Sempre coloque o código no perfil específico do usuário se não houver necessidade de estender sua execução a cada usuário. Você não precisa de direitos de administrador para adicionar o arquivo ao espaço do usuário (caso contrário, precisa) e não polui o espaço de outros usuários.
LEMBRAR! O
$PsHome
caminho é diferente entre as instâncias de 32 bits e 64 bits do PowerShell, portanto, você deve considerar os dois ambientes se quiser sempre executar o código do perfil. Geralmente, os caminhos sãoC:\Windows\System32\WindowsPowerShell\v1.0
para o ambiente de 64 bits eC:\Windows\SysWow64\WindowsPowerShell\v1.0
para o de 32 bits.fonte
\Users\{ME}\Documents\WindowsPowerShell
e adicionarMicrosoft.PowerShell_profile.ps1
não dos outros caminhos funciona para mim."$HOME\Documents\WindowsPowerShell"
e a nomeaçãoMicrosoft.PowerShell_profile.ps1
restringem o escopo ao ISE e ao host atual, mas não devem ser uma questão de permissões (o mesmo"$Home\Documents\profile.ps1" should apply
). Talvez não seja realmente assim, vou dar-lhe uma tentativa, obrigado pela informaçãoNew-Item -path $profile -type file -force
que criou a pasta e arquivoDocuments\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
Não é uma boa ideia adicionar esse tipo de coisa diretamente às
$env:WINDIR
pastas do PowerShell.A maneira recomendada é adicioná-lo ao seu perfil pessoal:
Agora adicione seu alias ao arquivo Microsoft.PowerShell_profile.ps1 que agora está aberto:
Em seguida, salve-o e atualize a sessão atual com:
Nota: Apenas no caso, se você receber um problema de permissão como
Tente o comando abaixo e atualize a sessão novamente.
fonte
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
. A-Scope
opção o torna um pouco mais seguro.MyAlias
. Além disso, para passar argumentos, use@Args
, por exemplo,function gs { git status @Args }
Set-Alias
porque eu gosto de nomear meus métodos usando as convenções PS apropriadas com os verbos apropriados. Mas sim, se você não for exigente, basta nomear seu método como deseja invocar.2018, Windows 10
Você pode vincular a qualquer arquivo ou diretório com a ajuda de um script simples do PowerShell.
Escrevendo um script de atalho de arquivo
Abra o Windows PowerShell ISE. No painel de script, escreva:
Em seguida, vá para o painel da linha de comandos. Encontre o seu endereço de perfil de usuário do PowerShell com
echo $profile
. Salve o script neste endereço.O script no endereço do perfil do PowerShell será executado sempre que você abrir o PowerShell. O atalho deve funcionar com todas as novas janelas do PowerShell.
Escrevendo um script de atalho de diretório
Requer outra linha em nosso script.
O resto é exatamente o mesmo.
Habilitar scripts do PowerShell
Por padrão, os scripts do PowerShell estão bloqueados. Para habilitá-los, abra as configurações -> Atualização e segurança -> Para desenvolvedores. Selecione Modo de desenvolvedor (pode exigir reinicialização). .
Role para baixo até a seção PowerShell, marque a opção "Alterar política de execução ..." e aplique.
fonte
echo $profile
é uma dica incrível para ajudar a encontrar o local correto para adicionar o arquivo. Obrigado pela resposta abrangenteSimples. Por exemplo...
Abra uma janela do Windows PowerShell e digite:
Em seguida, crie uma função, como:
Em seguida, digite isso sob o nome da função:
Agora você pode digitar a palavra "google" no Windows PowerShell e executar o código em sua função!
fonte
Apenas para adicionar a esta lista de locais possíveis ...
Isso não funcionou para mim:
\Users\{ME}\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
No entanto, isso fez:
\Users\{ME}\OneDrive\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
Se você não possui um perfil ou deseja configurá-lo, execute o seguinte comando: ele criará a pasta / arquivos necessários e até dirá onde ele mora!
New-Item -path $profile -type file -force
fonte
para criar o arquivo profile1.psl, digite o seguinte comando:
new-item $ PROFILE.CurrentUserAllHosts -ItemType arquivo -Force
para acessar o arquivo, digite o próximo comando:
ise $ PROFILE.CurrentUserAllHosts
note que se você não tiver feito isso antes, verá que não poderá executar o script devido à sua política de execução, que precisa mudar para Irrestrito de Restrito (padrão).
para fazer isso, feche o script e digite este comando:
Set-ExecutionPolicy -Scope CurrentUser
então:
RemoteSigned
então este comando novamente:
ise $ PROFILE.CurrentUserAllHosts
finalmente, digite seus aliases no script, salve-os e eles deverão ser executados toda vez que você executar o PowerShell, mesmo após reiniciar o computador.
fonte
Set-ExecutionPolicy RemoteSigned
. Não recomendeUnrestricted
. Fonte: itprotoday.com/management-mobility/…Isso é um pouco chique ... mas funciona:
Etapa 1: Crie um perfil do PowerShell:
Etapa 2: depois em tools ~ / Documents / tools / profile.ps1:
Etapa 3:
$ Set-ExecutionPolicy -Scope CurrentUser irrestrito $. ./install_profile.ps1
fonte