about_Pwsh
簡単な説明
コマンド-line インターフェイスのpwsh
使用方法について説明します。 コマンド-line パラメーターを表示し、構文について説明します。
長い説明
Windows PowerShell 5.1 のコマンド-line オプションの詳細については、「about_PowerShell_exe」を参照してください。
構文
Usage: pwsh[.exe]
[-Login]
[[-File] <filePath> [args]]
[-Command { - | <script-block> [-args <arg-array>]
| <string> [<CommandParameters>] } ]
[-ConfigurationFile <filePath>]
[-ConfigurationName <string>]
[-CustomPipeName <string>]
[-EncodedCommand <Base64EncodedCommand>]
[-ExecutionPolicy <ExecutionPolicy>]
[-InputFormat {Text | XML}]
[-Interactive]
[-MTA]
[-NoExit]
[-NoLogo]
[-NonInteractive]
[-NoProfile]
[-NoProfileLoadTime]
[-OutputFormat {Text | XML}]
[-SettingsFile <filePath>]
[-SSHServerMode]
[-STA]
[-Version]
[-WindowStyle <style>]
[-WorkingDirectory <directoryPath>]
pwsh[.exe] -h | -Help | -? | /?
パラメーター
すべてのパラメーターは大文字と小文字-iが区別されます。
-File | -f
の File
値が の -
場合、コマンド テキストは標準入力から読み取られます。
リダイレクトされた標準入力なしでを実行すると pwsh -File -
、通常のセッションが開始されます。 これは、 パラメーターをまったく指定しないの File
と同じです。
これは、パラメーターが存在せず、コマンド ラインに値が存在する場合の既定のパラメーターです。 指定したスクリプトは、新しいセッションのローカル スコープ ("dot-sourced") で実行されるため、スクリプトによって作成される関数と変数は新しいセッションで使用できます。 スクリプト ファイルパスとパラメーターを入力します。 File パラメーター名の後に入力されたすべての文字はスクリプト ファイルパスの後にスクリプト パラメーターが続くものとして解釈されるため、File はコマンドの最後のパラメーターである必要があります。
通常、スクリプトのスイッチ パラメーターは、含めるか省略するかのいずれかです。
たとえば、次のコマンドでは、Get-Script.ps1 スクリプト ファイルの All パラメーターを使用します。 -File .\Get-Script.ps1 -All
まれに、switch パラメーターに ブール 値を指定することが必要になる場合があります。 File パラメーターの値に switch パラメーターのブール値を指定するには、通常、パラメーターの直後にコロンとブール値 (例: -File .\Get-Script.ps1 -All:$False
) を使用します。
スクリプトに渡されるパラメーターは、(現在のシェルによる解釈の後で) リテラル文字列として渡されます。 たとえば、環境変数の cmd.exe
値を渡す場合は、次の構文を使用します cmd.exe
。 pwsh -File .\test.ps1 -TestParam %windir%
これに対し、 で cmd.exe
を実行するとpwsh -File .\test.ps1 -TestParam $env:windir
、スクリプトは現在cmd.exe
のシェルに特別な意味を持たないため、リテラル文字列$env:windir
を受け取ります。 環境変数参照のスタイルは$env:windir
、PowerShell コードとして解釈されるため、Command パラメーター内で使用できます。
同様に、Batch スクリプトから同じコマンドを実行する場合は、 または $PSScriptRoot
の.\
代わりに を使用%~dp0
して、現在の実行ディレクトリを表します。 pwsh -File %~dp0test.ps1 -TestParam %windir%
代わりに を使用 .\test.ps1
した場合、PowerShell ではリテラル パスが見つからないため、エラーがスローされます .\test.ps1
注意
File パラメーターは、引数値の配列を必要とするパラメーターを使用するスクリプトをサポートできません。 残念ながら、これはネイティブ コマンドが引数値を取得する方法の制限です。 ネイティブ実行可能ファイル (や pwsh
などpowershell
) を呼び出すと、配列の処理が認識されないため、文字列として渡されます。
スクリプト ファイルが コマンドで exit
終了すると、プロセス終了コードは コマンドで使用される数値引数に exit
設定されます。 通常の終了では、終了コードは常に 0
です。
詳細については、「about_Automatic_Variables」を参照してください$LASTEXITCODE
。
と同様に -Command
、スクリプト終了エラーが発生すると、終了コードは に 1
設定されます。 ただし、 とは-Command
異なり、CtrlCキーを押+して実行が中断されると、終了コードは です0
。
注意
PowerShell 7.2 の時点では、 File パラメーターは Windows 上の .ps1
ファイルのみを受け入れます。 別のファイルの種類が指定されている場合は、エラーがスローされます。 この動作は Windows 固有です。 他のプラットフォームでは、PowerShell は他の種類のファイルを実行しようとします。
-Command | -c
指定したコマンド (およびパラメーター) を PowerShell コマンド プロンプトで入力したかのように実行し、パラメーターが指定されていない限り NoExit
終了します。
Command の値には、、スクリプト ブロック、または文字列を指定できます-
。 Command の値が の場合、-
コマンド テキストは標準入力から読み取られます。
Command パラメーターは、Command に渡された値を ScriptBlock 型として認識できる場合にのみ、実行用のスクリプト ブロックを受け入れます。 これは、別の PowerShell ホストから実行しているpwsh
場合にのみ可能です。 ScriptBlock 型は、既存の変数に含まれているか、式から返されるか、PowerShell ホストによって中かっこ ({}
) で囲まれたリテラル スクリプト ブロックとして解析されてから にpwsh
渡すことができます。
pwsh -Command {Get-WinEvent -LogName security}
では cmd.exe
、スクリプト ブロック (または ScriptBlock 型) は存在しないため、 Command に渡される値は 常に 文字列です。 スクリプト ブロックは文字列内に記述できますが、実行されるのではなく、一般的な PowerShell プロンプトで入力したのとまったく同じように動作し、スクリプト ブロックの内容を出力します。
Command に渡される文字列は引き続き PowerShell コードとして実行されるため、 からcmd.exe
を実行する場合、スクリプト ブロックの中かっこは最初は必要ありません。 文字列内で定義されたインライン スクリプト ブロックを実行するには、 呼び出し演算子&
を使用できます。
pwsh -Command "& {Get-WinEvent -LogName security}"
Command の値が文字列の場合、その後のすべての引数が実行するコマンドの一部として解釈されるため、Command は pwsh の最後のパラメーターである必要があります。
既存の PowerShell セッション内から呼び出されると、結果は、ライブ オブジェクトではなく、逆シリアル化された XML オブジェクトとして親シェルに返されます。 その他のシェルの場合、結果は文字列として返されます。
Command の値が の場合、-
コマンド テキストは標準入力から読み取られます。 標準入力で Command パラメーターを使用する場合は、標準入力をリダイレクトする必要があります。 次に例を示します。
@'
"in"
"hi" |
% { "$_ there" }
"out"
'@ | powershell -NoProfile -Command -
この例を実行すると、次の出力が生成されます。
in
hi there
out
プロセス終了コードは、スクリプト ブロック内の最後の (実行された) コマンドの状態によって決まります。 終了コードは、 が 0
$true
の場合$?
、または 1
が の場合$?
です$false
。 最後のコマンドが、 または 以外0
1
の終了コードを明示的に設定する外部プログラムまたは PowerShell スクリプトの場合、プロセス終了コードの終了コードは に1
変換されます。 特定の終了コードを保持するには、コマンド文字列またはスクリプト ブロックに を追加 exit $LASTEXITCODE
します。
詳細については、「about_Automatic_Variables」を参照してください$LASTEXITCODE
。
同様に、 や -ErrorAction Stop
などのthrow
スクリプト終了 (runspace-terminating) エラーが発生したとき、または CtrlCで+実行が中断されると、値 1 が返されます。
-ConfigurationName | -config
PowerShell を実行する構成エンドポイントを指定します。 これには、既定の PowerShell リモート処理エンドポイントや、特定のユーザー ロール機能を持つカスタム エンドポイントなど、ローカル コンピューターに登録されている任意のエンドポイントを指定できます。
例: pwsh -ConfigurationName AdminRoles
-ConfigurationFile
セッション構成 (.pssc
) ファイル パスを指定します。 構成ファイルに含まれる構成は、PowerShell セッションに適用されます。
例: pwsh -ConfigurationFile "C:\ProgramData\PowerShell\MyConfig.pssc"
-CustomPipeName
デバッグやその他のプロセス間通信に使用される追加の IPC サーバー (名前付きパイプ) に使用する名前を指定します。 これにより、他の PowerShell インスタンスに接続するための予測可能なメカニズムが提供されます。 通常、 の CustomPipeName パラメーターと共に使用されます Enter-PSHostProcess
。
このパラメーターは、PowerShell 6.2 で導入されました。
例:
# PowerShell instance 1
pwsh -CustomPipeName mydebugpipe
# PowerShell instance 2
Enter-PSHostProcess -CustomPipeName mydebugpipe
-EncodedCommand | -e | -ec
コマンドの Base64-encoded 文字列バージョンを受け入れます。 複雑で入れ子になった引用符を必要とするコマンドを PowerShell に送信するには、このパラメーターを使用します。 Base64 表現は、UTF-16LE でエンコードされた文字列である必要があります。
例:
$command = 'dir "c:\program files" '
$bytes = [System.Text.Encoding]::Unicode.GetBytes($command)
$encodedCommand = [Convert]::ToBase64String($bytes)
pwsh -encodedcommand $encodedCommand
-ExecutionPolicy | -ex | -ep
現在のセッションの既定の実行ポリシーを設定し、環境変数に $env:PSExecutionPolicyPreference
保存します。 このパラメーターは、永続的に構成された実行ポリシーを変更しません。
このパラメーターは、Windows コンピューターにのみ適用されます。 Windows 以外のプラットフォームでは、 パラメーターと指定された値は無視されます。
-InputFormat | -inp | -if
PowerShell に送信されるデータの形式を記述します。 使用できる値は、"Text" (テキスト文字列) と "XML" (シリアル化された CLIXML 形式) です。
-Interactive | -i
ユーザーに対話型プロンプトを表示します。 NonInteractive パラメーターの逆関数。
-Login | -l
Linux および macOS では、/bin/sh を使用してログイン シェルとして PowerShell を起動し、/etc/profile や ~/.profile などのログイン プロファイルを実行します。 Windows では、このスイッチは何も行いません。
重要
このパラメーターは、ログイン シェルとして PowerShell を起動するために最初に来る必要があります。 このパラメーターは、別の位置に渡される場合は無視されます。
UNIX-lIke オペレーティング システムでログイン シェルとして設定pwsh
するには、次の手順を実行します。
への完全な絶対パスが の下に
pwsh
表示されていることを確認します/etc/shells
- このパスは通常、Linux または macOS の場合
/usr/local/bin/pwsh
のようなもの/usr/bin/pwsh
です - 一部のインストール方法では、このエントリはインストール時に自動的に追加されます
- が に
/etc/shells
存在しない場合pwsh
は、エディターを使用して、最後の行に へのpwsh
パスを追加します。 これには、編集するために昇格された特権が必要です。
- このパスは通常、Linux または macOS の場合
chsh ユーティリティを使用して、現在のユーザーのシェルを に
pwsh
設定します。chsh -s /usr/bin/pwsh
警告
ログイン シェルとしての設定pwsh
は現在、Linux 用 Windows サブシステム (WSL) ではサポートされていません。ログイン シェルとして を設定pwsh
しようとすると、WSL を対話形式で起動できなくなる可能性があります。
-MTA
マルチスレッド アパートメントを使用して PowerShell を起動します。 このスイッチは Windows でのみ使用できます。 Windows 以外のプラットフォームでこのパラメーターを使用すると、エラーが発生します。
-NoExit | -noe
スタートアップ コマンドを実行後、終了しません。
例: pwsh -NoExit -Command Get-Date
-NoLogo | -nol
対話型セッションの起動時にバナーを非表示にします。
-NonInteractive | -noni
このスイッチは、ユーザー入力を必要としないセッションを作成するために使用されます。 これは、スケジュールされたタスクまたは CI/CD パイプラインで実行されるスクリプトに役立ちます。 や確認プロンプトなどの Read-Host
対話型機能を使用しようとすると、ステートメントがハングするのではなく、エラーを終了します。
-NoProfile | -nop
PowerShell プロファイルは読み込まれません。
-NoProfileLoadTime
読み込み時間が 500 ミリ秒を超えたときに起動時に表示される PowerShell プロファイルの読み込み時間テキストを非表示にします。
-OutputFormat | -o | -of
PowerShell からの出力の形式を決定します。 使用できる値は、"Text" (テキスト文字列) と "XML" (シリアル化された CLIXML 形式) です。
例: pwsh -o XML -c Get-Date
PowerShell セッション内で呼び出されると、逆シリアル化されたオブジェクトが出力ではなくプレーンな文字列として取得されます。 他のシェルから呼び出されると、出力は CLIXML テキストとして書式設定された文字列データです。
-SettingsFile | -settings
セッションのシステム-wIDE powershell.config.json
設定ファイルをオーバーライドします。 既定では、システム-wIDE 設定は ディレクトリ内の powershell.config.json
$PSHOME
から読み取られます。
これらの設定は、 引数で指定されたエンドポイントでは使用されないことに -ConfigurationName
注意してください。
例: pwsh -SettingsFile c:\myproject\powershell.config.json
-SSHServerMode | -sshs
powerShell を SSH サブシステムとして実行するために、sshd_configで使用されます。 これは、他の用途では意図もサポートもされていません。
-STA
シングルスレッド アパートメントを使用して PowerShell を起動します。 既定値です。 このスイッチは、Windows プラットフォームでのみ使用できます。 Windows 以外のプラットフォームでこのパラメーターを使用すると、エラーが発生します。
-Version | -v
PowerShell のバージョンを表示します。 追加のパラメーターは無視されます。
-WindowStyle | -w
セッションのウィンドウ スタイルを設定します。 使用できる値は、Normal、Minimized、Maximized、Hidden です。 このパラメーターは Windows にのみ適用されます。 Windows 以外のプラットフォームでこのパラメーターを使用すると、エラーが発生します。
-WorkingDirectory | -wd | -wO
起動時に を実行して、最初の作業ディレクトリを設定します。 有効な PowerShell ファイル パスがサポートされています。
ホーム ディレクトリで PowerShell を起動するには、次を使用します。 pwsh -WorkingDirectory ~
-Help, -?, /?
のヘルプを pwsh
表示します。 PowerShell で pwsh コマンドを入力する場合は、コマンド パラメーターの先頭にスラッシュ/
() ではなくハイフン (-
) を付けます。