PowerShell HelpFile - about_profiles
 記事記号:[me1557] 初版:2011/May/10

この文書は、Windows PowerShellのヘルプ機能で表示される内容を再構成したものです。

トピック
    about_Profiles

簡易説明
    Windows PowerShell プロファイルを作成および使用する方法について説明します。

詳細説明
    Windows PowerShell プロファイルを作成して、環境をカスタマイズし、起動するす 
    べての Windows PowerShell セッションにセッション固有の要素を追加できます。

    Windows PowerShell プロファイルは、Windows PowerShell の起動時に動作するスク
    リプトです。このプロファイルをログオン スクリプトとして使用して、環境をカス
    タマイズできます。コマンド、エイリアス、関数、変数、スナップイン、モジュール、
    および Windows PowerShell ドライブを追加できます。プロファイルに他のセッショ
    ン固有の要素を追加して、これらの要素をインポートまたは再作成することなくすべ
    てのセッションで利用可能にすることもできます。

    Windows PowerShell は、ユーザーおよびホスト プログラムに対する複数のプロファ
    イルをサポートします。ただし、個々のユーザーに対するプロファイルは作成されま
    せん。このトピックでは、プロファイルについて説明し、コンピューター上でプロフ
    ァイルを作成および保持する方法について説明します。

    Windows PowerShell コンソールの NoProfile パラメーター (PowerShell.exe) 
    を使用して、プロファイルを使用することなく Windows PowerShell を起動する方法
    についても説明します。また、Windows PowerShell 実行ポリシーがプロファイルに
    与える影響についても説明します。

 プロファイル ファイル

    Windows PowerShell は、複数のプロファイル ファイルをサポートします。また、Wi
    ndows PowerShell ホスト プログラムは、それぞれのホスト固有のプロファイルをサ
    ポート可能です。

    たとえば、Windows PowerShell コンソールは、次の基本プロファイル ファイルをサ
    ポートします。プロファイルの優先順位を次に示します。最初のプロファイルの優先
    順位が最も高くなります。

        説明                         パス
        -----------                  ----
        Current User, Current Host   $Home\[My ]Documents\WindowsPowerShell\Prof
                                     ile.ps1
        Current User, All Hosts      $Home\[My ]Documents\Profile.ps1
        All Users, Current Host      $PsHome\Microsoft.PowerShell_profile.ps1
        All Users, All Hosts         $PsHome\Profile.ps1

    プロファイルのパスには次の変数が含まれています。

        - Windows PowerShell のインストール ディレクトリを保存する $PsHome 変数。

        - 現在のユーザーのホーム ディレクトリを保存する $Home 変数。

    さらに、Windows PowerShell をホストする他のプログラムは、独自のプロファイルを
    サポートしている可能性があります。たとえば、Windows PowerShell Integrated Scr
    ipting Environment (ISE) は、次のホスト固有のプロファイルをサポートします。

        説明                         パス
        -----------                  -----
        Current user, Current Host   $Home\[My ]Documents\WindowsPowerShell\Micro
                                     soft.PowerShellISE_profile.ps1
        All users, Current Host      $PsHome\Microsoft.PowerShellISE_profile.ps1

    "CurrentUser, Current Host" プロファイルは、Windows PowerShell ヘルプで "Win
    dows PowerShell プロファイル" と呼ばれることが多いプロファイルです。

 $Profile 変数

    $Profile 自動変数は、現在のセッションで利用可能な Windows PowerShell プロフ
    ァイルへのパスを保存します。

    プロファイルへのパスを確認するには、$Profile 変数の値を表示します。コマンド
    に $Profile 変数を使用してパスを表すこともできます。

    $Profile 変数は、"Current User, Current Host" プロファイルへのパスを保存しま
    す。他のプロファイルは、$profile 変数のメモのプロパティに保存されます。
    
    たとえば、$Profile 変数には、Windows PowerShell コンソールの次の値が保存され
    ます。

        名前                               説明
        -----------                        -----------
        $Profile                           Current User,Current Host
        $Profile.CurrentUserCurrentHost    Current User,Current Host
        $Profile.CurrentUserAllHosts       Current User,All Hosts
        $Profile.AllUsersCurrentHost       All Users, Current Host
        $Profile.AllUsersAllHosts          All Users, All Hosts

    $Profile 変数の値はユーザーおよびホスト アプリケーションごとに異なるので、使
    用する Windows PowerShell の各ホスト アプリケーションのプロファイル変数の値
    を表示する必要があります。

    $Profile 変数の現在の値を確認するには、次のように入力します。

        $profile | get-member -type noteproperty
    
    $Profile 変数は多くのコマンドで使用できます。たとえば、次のコマンドは、"Curr
    ent User, Current Host" プロファイルをメモ帳で開きます。

	notepad $profile

    次のコマンドは、ローカル コンピューター上に "All Users, All Hosts" プロファ
    イルが作成されているかどうかを確認します。

	test-path $profile.AllUsersAllHosts

 方法: プロファイルを作成する

    Windows PowerShell プロファイルを作成するには、次のコマンド形式を使用します。

        if (!(test-path <profile-name>))
           {new-item -type file -path <profile-name> -force}

    たとえば、Windows PowerShell の現在のホスト アプリケーションの現在のユーザー
    のプロファイルを作成するには、次のコマンドを使用します。

        if (!(test-path $profile))
           {new-item -type file -path $profile -force}


    このコマンドでは、if ステートメントによって、既存のプロファイルへの上書きが
    防止されます。<profile-path> プレースホルダーの値を、作成するプロファイル フ
    ァイルへのパスで置き換えます。

    注: Windows Vista 以降のバージョンの Windows で "All Users" プロファイルを作
    成するには、Windows PowerShell を起動する際に [管理者として実行] を指定する
    必要があります。

 方法: プロファイルを編集する

    任意の Windows PowerShell プロファイルをメモ帳などのテキスト エディターで開
    くことができます。

    現在の Windows PowerShell ホスト アプリケーションの現在のユーザーのプロファ
    イルをメモ帳で開くには、次のように入力します。

        notepad $profile

    他のプロファイルを開くには、プロファイル名を指定します。たとえば、すべてのホ
    スト アプリケーションのすべてのユーザーのプロファイルを開くには、次のように
    入力します。

        notepad $profile.AllUsersAllHosts

    変更を適用するには、プロファイル ファイルを保存して、Windows PowerShell を再
    起動します。

 方法: プロファイルを選択する

    複数のホスト アプリケーションを使用する場合、すべてのホスト アプリケーション
    で使用する項目を $Profile.CurrentUserAllHosts プロファイルに追加します。
    ホスト アプリケーションの背景色を設定するコマンドなど、1 つのホスト アプリケ
    ーションに固有の項目は、そのホスト アプリケーションに固有のプロファイルに追
    加します。

    多数のユーザーに対して Windows PowerShell をカスタマイズする管理者である場合
    は、次のガイドラインに従ってください。

        -- 共通項目は $profile.AllUsersAllHosts プロファイルに保存します。

        -- 1 つのホスト アプリケーションに固有の項目は、ホスト アプリケーション
           に固有の $profile.AllUsersCurrentHost プロファイルに保存します。

        -- 特定のユーザーの項目は、ユーザー固有のプロファイルに保存します。

    Windows PowerShell プロファイルの特殊な実装については、ホスト アプリケーショ
    ンのドキュメントを確認してください。

 方法: プロファイルを使用する

    Windows PowerShell で作成する多くの項目および実行するほとんどのコマンドは、
    現在のセッションにのみ影響します。セッションを終了すると、項目は削除されます。

    セッション固有のコマンドと項目には、ユーザーがセッションに追加する変数、ユー
    ザー設定変数、エイリアス、関数、コマンド (Set-ExecutionPolicy を除く)、およ
    び Windows PowerShell スナップインがあります。

    これらの項目を保存して、将来のすべてのセッションで利用可能にするには、Window
    s PowerShell プロファイルにこれらの項目を追加します。

    プロファイルのもう 1 つの一般的な使用方法として、頻繁に使用される関数、エイリ
    アス、および変数の保存があります。プロファイルに項目を保存すると、これらを再
    作成することなく適用可能な任意のセッションで使用できます。

 方法: プロファイルを起動する

    プロファイル ファイルを開くと、空白になっています。このプロファイル ファイル
    には、頻繁に使用する変数、エイリアス、およびコマンドを追加できます。

    起動に関するいくつかの操作方法を紹介します。

    -- プロファイルを簡単に開くためのコマンドを追加します。これは、"Current User, 
       Current Host" プロファイル以外のプロファイルを使用する場合に特に便利です。
       たとえば、次のコマンドを追加します。
               
           function pro {notepad $profile.CurrentUserAllHosts}

    -- コンパイル済み HTML ヘルプ ファイル (.chm) にある Windows PowerShell ヘル
       プを開く関数を追加します。

           function Get-CHM
            {
               (invoke-item $env:windir\help\mui\0409\WindowsPowerShellHelp.chm)
            }
       
       この関数は、.chm ファイルの英語バージョンを開きます。ただし、言語コード 
       (0409) を置き換えて、他のバージョンの .chm ファイルを開くこともできます。

    
    -- 任意のコマンドレットのエイリアスを一覧表示する関数を追加します。

           function Get-CmdletAlias ($cmdletname)
           {
              get-alias | Where {$_.definition -like "*$cmdletname*"} | ft Defin
              ition, Name -auto
           }

    -- Add-PsSnapin コマンドを追加して、使用する任意の Windows PowerShell スナッ
       プインを追加します。

    -- コンソールをカスタマイズします。

           function Color-Console 
           {
	        $host.ui.rawui.backgroundcolor = "white"
	        $host.ui.rawui.foregroundcolor = "black"
                $hosttime = (dir $pshome\powershell.exe).creationtime
                $Host.UI.RawUI.WindowTitle = "Windows PowerShell $hostversion ($
                hosttime)"
                clear-host
           }
           Color-console


    -- コンピューター名と現在のパスを含む、カスタマイズされた Windows PowerShell 
       プロンプトを追加します。

           function prompt 
           {
              $env:computername + "\" + (get-location) + "> "
           }

       Windows PowerShell プロンプトの詳細については、「about_Prompts」を参照し
       てください。

 NoProfile パラメーター

    プロファイルを使用せずに Windows PowerShell を起動するには、Windows PowerShel
    l を起動するプログラムである、PowerShell.exe の NoProfile パラメーターを使用
    します。

    まず、Cmd.exe や Windows PowerShell 自体など、Windows PowerShell 
    を起動可能なプログラムを開きます。Windows で [ファイル名を指定して実行] ダイ
    アログ ボックスを使用することもできます。

    次のように入力します。

	powershell -noprofile

    PowerShell.exe のパラメーターの完全な一覧を表示するには、次のように入力します。

	powershell -?


 プロファイルと実行ポリシー

    Windows PowerShell 実行ポリシーは、ユーザーがスクリプトを実行し、プロファイ
    ルなどの構成ファイルを読み込むことができるかどうかを決定する場合に使用できま
    す。既定では、Restricted 実行ポリシーが使用されます。このポリシーは、プロフ
    ァイルを含むすべてのスクリプトが実行されないようにします。Restricted ポリシ
    ーを使用する場合、プロファイルは実行されず、その内容は適用されません。

    Set-ExecutionPolicy コマンドは、実行ポリシーを設定および変更します。このコマ
    ンドは、値がレジストリに保存されているためにすべての Windows PowerShell セッ
    ションに適用されるいくつかのコマンドの 1 つです。コンソールを開くときに Set-
    ExecutionPolicy コマンドを設定したり、このコマンドをプロファイルに保存する
    必要はありません。

 プロファイルとリモート セッション

    リモート セッションでは Windows PowerShell プロファイルが自動的に実行されな
    いので、プロファイルによって追加されるコマンドはリモート セッションには適用
    されません。さらに、リモート セッションでは、$Profile 自動変数が設定されませ
    ん。

    セッションでプロファイルを実行するには、Invoke-Command コマンドレットを使用
    します。

    たとえば、次のコマンドは、$s のセッションでローカル コンピューターから Curre
    ntUserCurrentHost プロファイルを実行します。

        invoke-command -session $s -filepath $profile

    次のコマンドは、$s のセッションでリモート コンピューターから CurrentUserCurr
    entHost プロファイルを実行します。$Profile 変数が設定されないため、このコマ
    ンドではプロファイルへの明示的なパスが使用されます。

        invoke-command -session $s {invoke-expression "$home\Documents\WindowsP
        owerShell\Microsoft.PowerShell_profile.ps1"}

    このコマンドを実行すると、プロファイルによってセッションに追加されるコマンド
    が $s で利用可能になります。

関連項目
    about_Automatic_Variables
    about_Functions
    about_Prompts
    about_Execution_Policies
    about_Signing
    about_Remote
    Set-ExecutionPolicy
	
記事で解説しているパソコンの環境
 基本ソフト: Windows 7
 キーワード: Windows PowerShell、ヘルプ、HelpFile、about_profiles
ご利用数: 1918574
感想・要望・問い合わせは こちら