你可以使用PowerShell配置文件去个性化你的Shell环境,当你启动Exchange Management Shell会话时,自动导入函数,模块,别名和变量到Exchange Management Shell会话中。这一节,我们将学习下如何创建一个配置文件。
默认情况下配置文件是没有创建的,但是你可以通过如下命令来检查是否创建了配置文件,命令语法如下:
Test-Path $profile
如果返回的值为$True,则表示当前用户已经创建了配置文件,假如没有,则显示为$False。我们可以在Shell会话中通过notepadexe打开一个能够存在的配置文件:
Notepad $profile
当然由于我这里显示的为$False,表示当前还没有创建配置文件,那么我们可以通过如下的命令来为当前用户创建一个配置文件:
New-Item -type file –path $profile –force
配置文件工作原理
一个PowerShell配置文件,仅仅是一个.ps1的脚本文件,只是它每次在你启动Shell时一起启动。你可以认为配置文件是一个登陆运行的PowerShell脚本或Exchange Management Shell。在配置文件中,你可以添加自定义的别名,自定义的变量,加载其它模块,增加自定义的函数。在前面,我们使用了New-Item命令去为当前用户新建了一个配置脚本,创建的配置文件将存放在$env:UserProfile\Document\WindowsPowerShell\directory
中。
因为PowerShell加载我们的配置文件其实就是运行一些简单的.ps1脚本,所以我们必须配置策略让我们的系统可以执行这些脚本.假如不配置这些执行策略,在加载脚本的时候将会收到错误提示.
有四种类型的配置文件可以使用PowerShell:
$Profile.AllUsersAllHosts: 这种配置文件被应用到所有用户和所有Shells中,这种配置文件位于如下路径: $env:Windir\system32\WindowsPowerShell\v1.0\profile.ps1
$Profile.AllUsersCurrentHost: 这种配置文件适用于所有用户以及Powershell.exe主机,配置文件位于如下路径:$env:Windir\system32\WindowsPowerShell\v1.0\Microsoft.PowerShell_profile.ps1
$Profile.CurrentUserAllHosts: 这种配置文件适用于当前用户和所有Shells,位于如下路径: $env:UserProfile\Documents\WindowsPowerShell\profile.ps1
$Profile.CurrentUserCurrentHost: 这种配置只适用于当前用户和当前Powershell.exe主机,位于如下路径: $env:UserProfile\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
使用$Profile变量创建一个配置文件,默认情况下它是CurrentUserCurrentHost位置,这也是使用最多的一种配置文件类型.Powershell可以被第三方应用程序加载运行,所以”All Hosts”配置类型可以应用到这种PowerShell实例.”Current Host”配置类型可以用于powershell.exe和Exchange Management Shell.
除了在配置文件中自定义别名和函数外,你也可能想要加载其它模块.例如,你可能想加载Active Directory模块,这样便于我们启动PowerShell时自动加载并可以使用.
当你对配置文件做了修改后 ,我们需要保存并关闭配置文件.要让配置文件生效,我们可以重新启动Shell,或者dot-source脚本重新加载配置文件,命令如下:
. $profile
我们可以创建多个.ps1脚本,可以包括别名,函数以及变量,然后使用dot-source这些脚本到配置文件中,以后每次启动PowerShell会自动加载进来.
可以通过如下命令参考帮助系统:get-Help about_profiles
技术所有的概要文件类型以及相关脚本的路径可能有点困难.实际上,这里有技巧,可以使用$profile变量去查看所有的配置文件类型和文件路径,可以使用如下命令:
$profile.psextended | Format-List