官术网_书友最值得收藏!

Creating and using PowerShell profiles

User profiles are used to set up user customized PowerShell sessions. These profiles can be blank, contain aliases, custom functions, load modules, or any other PowerShell tasks. When you open a PowerShell session, the contents of the profile are executed the same as executing any other PowerShell script.

How to do it...

In this recipe, we will modify the PowerShell console profile for the current user on the current host. By default the profile file does not exist, so we will create the file, and then configure it to create a transcript of our actions. To do this, carry out the following steps:

  1. Open the PowerShell console (not the ISE) and list your current profile locations by executing $PROFILE or $PROFILE | Format-List * -Force|:
    How to do it...
  2. If the CurrentUserCurrentHost profile file doesn't already exist, create the folder and file structure:
    $filePath = $PROFILE.CurrentUserCurrentHost
    if(!(Test-Path $filePath))
    {
        New-Item -Path $filePath -ItemType File
    }
  3. Edit the CurrentUserCurrentHost profile by opening it in a text editor. Make the necessary changes and save the file.
    How to do it...

Tip

NOTE: It is best practice to sign your profiles after making changes. This ensures that the profile is secure and hasn't been unintentionally changed.

More information about code signing in PowerShell can be found in the recipe Signing PowerShell scripts

How it works...

When a PowerShell session is started, the profile files are executed before the session is handed over to the user. At that time, any aliases or modules that were loaded will be in effect. Additionally, any background commands, such as Start-Transcript, will continue to operate in the background.

We start by opening PowerShell and listing our profile files. By default, $PROFILE command only returns the CurrentUserCurrentHost profile. By piping the output through Format-List with the –Force switch, we can see all applicable profile files.

Note

In this example we are specifically using the PowerShell console, instead of the PowerShell ISE, because the Start-Transcript command is only supported in the console.

There's more…

There are six user profile files in total, and they are applied to PowerShell sessions one at a time. First the more general profiles, such as AllUsersAllHosts are applied, ending with more specific profiles such as CurrentUserCurrentHost. As the individual profiles are applied, any conflicts that arise are simply overwritten by the more specific profile.

Not all six profiles are used at a time, and by default, these profiles are empty. Two of the profiles are specific to the PowerShell console, and two of them are specific to the PowerShell ISE. At the most, you can have four active profiles on a given session.

See also

主站蜘蛛池模板: 莒南县| 霍山县| 临颍县| 正宁县| 古交市| 房山区| 玛纳斯县| 蒲城县| 尼玛县| 靖安县| 阳高县| 九江市| 漠河县| 乌兰察布市| 宜阳县| 东光县| 万盛区| 宝山区| 聂拉木县| 长兴县| 天全县| 上杭县| 太白县| 香河县| 石首市| 易门县| 南汇区| 唐海县| 黑河市| 惠州市| 澳门| 东至县| 尖扎县| 昌乐县| 淅川县| 扶沟县| 临武县| 五台县| 张家口市| 铁岭县| 新民市|