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

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

主站蜘蛛池模板: 瑞安市| 星座| 陈巴尔虎旗| 满洲里市| 高唐县| 涟源市| 南漳县| 郁南县| 昭平县| 色达县| 遵义市| 年辖:市辖区| 邢台县| 通河县| 卢龙县| 屯门区| 旬邑县| 香格里拉县| 沁阳市| 海盐县| 西乌珠穆沁旗| 喜德县| 万年县| 济宁市| 崇信县| 伊川县| 江华| 沂南县| 阿克陶县| 保山市| 郎溪县| 昭觉县| 丹东市| 漯河市| 雷波县| 文安县| 垣曲县| 玉环县| 安化县| 秦安县| 塔河县|