PowerShell 7.6への移行は「毒」か「薬」か “破壊的変更”の正体:情シス実務への衝撃
Windows標準の自動化ツール「PowerShell」に最新LTS版が登場した。利便性が向上する一方で、既存スクリプトを動かなくさせる「破壊的変更」も含まれている。詳細を解説する。
Microsoftは2026年3月18日(米国時間)、「PowerShell 7.6」の一般提供を開始したと発表した。「Windows」が標準搭載するコマンド実行ツールの最新の長期サポート(LTS)リリースだ。
PowerShell 7.6は、Microsoftのクロスプラットフォームでオープンソースのアプリケーション開発・実行環境「.NET」の最新LTSリリースである「.NET 10」を基盤として構築されている。Microsoftは、PowerShell 7.6は自動化を実行する本番環境向けの推奨バージョンだとしている。
PowerShell 7.6では、エンジン、モジュール、対話型シェル(コンピュータに対する命令を解釈するソフトウェア)体験全体にわたって信頼性が向上している他、ネイティブコマンドの処理やタブ補完の一貫性も改善されているという。PowerShell 7.6を使えば、情報システム(情シス)部門担当者の仕事はどう変わるのか。
PowerShell 7.6の新しい機能と破壊的変更
併せて読みたいお薦め記事
PowerShellの知識を深めるには
Microsoftは、PowerShell 7.6の主な特徴として以下を挙げている。
コアモジュールの更新
「Microsoft.PowerShell.PSResourceGet v1.2.0」「PSReadLine v2.4.5」「Microsoft.PowerShell.ThreadJob v2.2.0」など、更新されたコアモジュールを搭載している。
タブ補完機能の改善
数十件のタブ補完機能が改善されている。例えば、幾つかのコマンドレット(PowerShellで利用可能なコマンド)でパラメーターの値が補完されるようになった。他にも、より多くのコンテキストやスコープ(範囲)での補完が有効化され、短縮名によるモジュールの補完機能も追加された。
既存コマンドへの機能追加
以下のような機能追加がされている。
- 「Get-Clipboard」に「-Delimiter」パラメーターを追加
- ネイティブコマンド向けの包括的な補完機能の登録をしやすくするために、「Register-ArgumentCompleter」に「-NativeFallback」パラメーターを追加
- 「New-Item」において「-Target」をリテラルとして扱う
- 「Get-Command」に「-ExcludeModule」パラメーターを追加
- 「Start-Process -Wait」のポーリング効率を改善
エンジンの改善
以下のような改善がされている。
- PowerShell固有のメソッド「Where()」と「Foreach()」のエイリアスとして、「PSWhere()」と「PSForEach()」を追加
- 「SystemPolicy」のパブリックAPIをUNIXプラットフォーム上で表示可能にしつつ、操作不可にすることで、「PowerShellStandard.Library」パッケージへの組み込みを可能に
- 「X509Certificate2」の「DnsNameList」を、「X509SubjectAlternativeNameExtension.EnumerateDnsNames()」メソッドを使用するように更新
- コンソールホストの標準エラー出力を、「NO_COLOR」環境変数を反映するように修正
試験的機能のメインストリームへの移行
PowerShell 7.6では、これまでのPowerShellリリースに追加された以下の試験的機能がメインストリーム(正式)機能に移行した。
- PSFeedbackProvider
- PowerShellはコマンドが見つからないときに、新しいフィードバックプロバイダーを使用してフィードバックを提供する。
- PSNativeWindowsTildeExpansion
- PowerShellでは、ネイティブコマンドを呼び出す前に、引用符で囲まれていないチルダ(〜)がユーザーの現在のホームフォルダに展開される。
- PSRedirectToVariable
- 「Variable:」ドライブへのリダイレクトのサポートが追加される。
- PSSubsystemPluginModel
- PowerShellでサブシステムプラグインモデルが有効になる。
破壊的変更
PowerShell 7.6には、長期的な一貫性の向上を目的として、少数の破壊的変更(古いバージョンで開発したプログラムが動作しなくなる原因となる変更)が含まれている。
- 「Join-Path」コマンドレットの「-ChildPath」パラメーターを「string[]」に変更
- これによって、ユーザーは子パスの配列を指定でき、「-AdditionalChildPath」の余分な使用を回避できる。
- 「WildcardPattern.Escape()」を、単独のバッククォート(`)を正しくエスケープするように修正
- 「GetHelpCommand」トレースソース名から末尾のスペースを削除
情シス担当はPowerShell 7.6を使うことによって、さまざまな手作業の自動化を図れる。具体的には、以下のことが可能になる。
- サーバ設定変更の一括実行
- アカウント管理の自動化(作成や削除、権限付与)
- 定期作業(ログ取得やバックアップ確認)のスクリプト化
情シス担当者はこうした作業を自動化することで、スクリプトの設計や実行といった作業に集中できる環境を作れる。
Copyright © ITmedia, Inc. All Rights Reserved.