添加别名、函数和变量时,实际上仅是在将它们添加到当前的 Windows PowerShell 会话中。如果退出会话或者关闭 Windows PowerShell,则更改将丢失。

若要保留这些更改,可以创建 Windows PowerShell 配置文件,然后将别名、函数和变量添加到配置文件。每次启动 Windows PowerShell 时,都会加载该配置文件。

若要加载配置文件,Windows PowerShell 执行策略必须允许您加载配置文件。如果它不允许,则加载配置文件的尝试将失败,而且 Windows PowerShell 显示一条错误消息。

了解配置文件

在 Windows PowerShell 中可以有四个不同的配置文件。配置文件按加载顺序列出。较特定的配置文件优先于较不特定的配置文件(如果它们适用)。

  • %windir%\system32\WindowsPowerShell\v1.0\profile.ps1

    此配置文件适用于所有用户和所有 shell。

  • %windir%\system32\WindowsPowerShell\v1.0\ Microsoft.PowerShell_profile.ps1

    此配置文件适用于所有用户,但仅适用于 Microsoft.PowerShell shell。

  • %UserProfile%\My Documents\WindowsPowerShell\profile.ps1

    此配置文件仅适用于当前用户,但会影响所有 shell。

  • %UserProfile%\My Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

    此配置文件仅适用于当前用户和 Microsoft.PowerShell shell。

创建配置文件

在创建或者导入变量、别名或函数,或者添加 Windows PowerShell 管理单元时,这些元素只是添加到当前会话中。如果退出该会话或者关闭窗口,这些元素将丢失。

若要保存经常使用的变量、别名、函数和命令并使它们可以在每个 Windows PowerShell 会话中使用,请将它们添加到 Windows PowerShell 配置文件中。

还可以创建、共享和分发配置文件,以便在较大的企业中强制实施 Windows PowerShell 的统一视图。

Windows PowerShell 配置文件不是自动创建的。若要创建配置文件,请在指定位置中创建具有指定名称的文本文件。通常,将使用特定于用户、特定于 shell 的配置文件,这种配置文件称为 Windows PowerShell 用户配置文件。此配置文件的位置存储在 $profile 变量中。

若要显示 Windows PowerShell 配置文件的路径,请键入:

$profile

若要确定是否已经在系统上创建了 Windows PowerShell 配置文件,请键入:

test-path $profile

如果存在配置文件,则响应为 True:否则响应为 False

若要创建 Windows PowerShell 配置文件,请键入:

new-item -path $profile -itemtype file -force

若要在记事本中打开配置文件,请键入:

notepad $profile

若要创建其他配置文件之一,如适用于所有用户和所有 shell 的配置文件,请键入:

new-item -path $env:windir\System32\WindowsPowerShell\v1.0\profile.ps1 -itemtype file -force

仅当配置文件的路径和文件名与 $profile 变量中存储的路径和文件名完全一致时,配置文件才有效。因此,如果在记事本中创建一个配置文件并保存它,或者将一个配置文件复制到您的系统中,则一定要用 $profile 变量中指定的文件名将该文件保存到在此变量中指定的路径下。

如果在记事本中创建配置文件,请将文件名用引号括起来,以保留 PS1 文件扩展名。例如:

"Microsoft.PowerShell_profile.ps1"

如果没有引号,则记事本会将 .txt 文件扩展名追加到文件,而 Windows PowerShell 将无法识别它。

使用配置文件存储日常使用的别名、函数和变量。一个非常有用的函数会在您最喜爱的文本编辑器中打开用户配置文件。例如,以下命令会创建一个名为 pro 的函数,该函数用于在记事本中打开用户配置文件。

function pro { notepad $profile }

有了设计良好的配置文件,就可以更轻松地使用 Windows PowerShell 和管理系统。




目录