如何创build永久的PowerShell别名

我想创build一个在closures当前Powershell会话后不会过期的cmdletalias ,假设我有这个别名:

 C:\Users\Aymen> New-Alias Goto Set-Location 

这完全创build了Goto别名,但是即使在closures当前会话之后,我也想使用它,我该如何实现这一点。

注意:

PowerShell帮助系统build议我可以导出我创build的别名,并在下次打开新会话时导入它们,实际上这不是我正在查找的内容,有没有一种直接明确的方法可以在我之后保留一个别名通过不同的会话创build它

更新 – 2017年1月

可以在profile.ps1文件中存储每次PowerShell启动时要执行的任何PowerShell代码。 至less有6个不同的path来存储代码,取决于哪个用户必须执行它。 我们只能考虑其中的2个:“所有用户”和“唯一的用户”path。

所以要回答你的问题,你只需要创build一个profile.ps1文件,其中包含你想要执行的代码

 New-Alias Goto Set-Location 

并保存在正确的path:

  • "$Home\Documents" (C:\ Users \ yourname \ Documents):只有您的用户会执行代码。
  • $PsHome (C:\ Windows \ System32 \ WindowsPowerShell \ v1.0):每个用户都将执行代码。

要应用更改,请closures所有打开的PowerShell实例并重新启动它们。

提示

  • 如果两个path都包含profile.ps1文件,则首先执行所有用户,然后是用户特定的。

  • 如果不需要将执行扩展到每个用户,请始终将代码放在用户特定的configuration文件中。 您不需要pipe理员权限将文件添加到您的用户空间(否则您可以),而且不会污染其他用户的空间。

  • 记得! $PsHomepath在32位和64位的$PsHome实例之间是不同的,所以如果你总是想要执行configuration文件代码,你必须考虑这两个环境。 对于64位环境,path通常为C:\Windows\System32\WindowsPowerShell\v1.0对于C:\Windows\System32\WindowsPowerShell\v1.0位环境,path为C:\Windows\System32\WindowsPowerShell\v1.0 C:\Windows\SysWow64\WindowsPowerShell\v1.0

把这种东西直接添加到你的$env:WINDIR powershell文件夹中并不是个好主意。
build议的方法是将其添加到您的个人资料:

 cd $env:USERPROFILE\Documents md WindowsPowerShell -ErrorAction SilentlyContinue cd WindowsPowerShell New-Item Microsoft.PowerShell_profile.ps1 -ItemType "file" -ErrorAction SilentlyContinue powershell_ise.exe .\Microsoft.PowerShell_profile.ps1 

现在将您的别名添加到现在打开的Microsoft.PowerShell_profile.ps1文件中:

 function Do-ActualThing { # do actual thing } Set-Alias MyAlias Do-ActualThing 

然后保存它,并刷新当前会话:

 . $profile 

要创buildprofile1.psl文件,请input以下命令:

新项目$ PROFILE.CurrentUserAllHosts -ItemType文件-Force

要访问该文件,请input下一个命令:

ise $ PROFILE.CurrentUserAllHosts

请注意,如果您之前没有这样做,则会看到由于您的执行策略(您需要将其更改为“Unrestricted from Restricted(默认)”),您将无法运行脚本。

要做到这一点closures脚本,然后键入此命令:

Set-ExecutionPolicy -Scope CurrentUser

然后:

无限制

然后再次这个命令:

ise $ PROFILE.CurrentUserAllHosts

那么最后在脚本中input你的别名,保存它,并且每次运行powershell时都应该运行它们,即使在重新启动计算机之后。

只是要添加到这个可能的位置列表…

这不适用于我: \Users\{ME}\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

但是,这样做: \Users\{ME}\OneDrive\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

如果您没有configuration文件,或者您正在设置configuration文件,请运行以下命令,它将创build所需的文件夹/文件,甚至可以告诉您它的位置! New-Item -path $profile -type file -force