PowerSell起動時にコマンドやスクリプトを実行する/PowerShellスクリプトをショートカットに登録する

基本

 PowerShellの実行ファイル(PowerShell.exe)は、起動時に自動的に実行するコマンドを指定することができます。次のように指定すると、起動時にGet-ChildItemコマンドレットが実行されます。

PowerShell -Command "Get-ChildItem"

 ただし、PowerShellの場所が環境変数のPATHに登録されていない場合、[PowerShell]の所はフルパスで指定する必要があります。フルパスの取得方法はこのページの最後に掲載しています。

 なお、コマンドが終了すると自動的にPowerShellは終了します。

 次のようにすると、起動時にスクリプトを実行できます。

PowerShell -File U:\Scripts\TestScript.ps1

 いずれの場合も、スクリプトやコマンドを実行するとPowerShellのウインドーが自動的に閉じられます。自動的に閉じないようにするには -NoExit オプションをつけます。

 次の例は、起動状態を確かめるためにCMD.EXEからPowerShellを呼びだしたものです。PowerShellのプロンプトに変化したことに注意して下さい。

U:\>Powershell -NoExit -Command '1+2'
1+2
PS U:\>

 もちろん、[ファイル名を指定して実行]から起動した場合も-NoExitをつけていれば終了しません。

PowerShellスクリプトをショートカットに登録する

 上記の -File オプションを使えば、PowerShellスクリプトをショートカットに登録することもできます。また、Windows 7やWindows 2008 Serverではショートカットのプロパティで、起動時に最小化する設定にしておけば、ウインドーが表示されずにスクリプトだけ実行できます。

[おまけ] PowerShellのパスを取得する

 PowerShell起動中であれば、Get-ProcessコマンドレットでPowerShellのコマンドを取得することで、PowerShell.exeのパスが分かります。

PS U:\> $process = Get-Process powershell | Select-Object -First 1
PS U:\> $process.Path
C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe
PS U:\>
inserted by FC2 system