Exchange 2013 PowerShell配置文件

你可以使用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.exeExchange Management Shell.

除了在配置文件中自定义别名和函数外,你也可能想要加载其它模块.例如,你可能想加载Active Directory模块,这样便于我们启动PowerShell时自动加载并可以使用.

当你对配置文件做了修改后 ,我们需要保存并关闭配置文件.要让配置文件生效,我们可以重新启动Shell,或者dot-source脚本重新加载配置文件,命令如下:

. $profile

我们可以创建多个.ps1脚本,可以包括别名,函数以及变量,然后使用dot-source这些脚本到配置文件中,以后每次启动PowerShell会自动加载进来.

可以通过如下命令参考帮助系统:get-Help about_profiles

技术所有的概要文件类型以及相关脚本的路径可能有点困难.实际上,这里有技巧,可以使用$profile变量去查看所有的配置文件类型和文件路径,可以使用如下命令:

$profile.psextended | Format-List

技术分享

本文出自 “Robin's Home” 博客,谢绝转载!

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。