Windows PowerShellで動くスクリプトがPowerShellでも動くとは限らない、なぜなのか?:山市良のうぃんどうず日記(279)
Microsoftは2024年2月初め、「回復パーティション」のサイズを拡張するサンプルスクリプトを公開しました。もし、このサンプルスクリプトを実行したい場合は、クロスプラットフォーム対応の「PowerShell 7.x」ではなく、Windowsのコンポーネントである「Windows PowerShell 5.1」の使用をお勧めします。なぜなら、サンプルスクリプト内で使用されている「Split」メソッドの挙動に重大な違いがあるからです。
Windowsコンポーネントの「Windows PowerShell」とオープンソースの「PowerShell」
Windowsのコンポーネントである「Windows PowerShell」は「5.1」が現行バージョンであり、その後のロードマップは示されていません。
その代わり、Microsoftはオープンソースプロジェクトである「PowerShell」(旧称:PowerShell Core)を提供し、機能強化やパフォーマンス改善を実施してきました。現在の最新バージョンは「7.4.1」です。「PowerShell Core 6」のリリース以降、Windows PowerShellを起動すると、「新しいクロスプラットフォームのPowerShell」を試すように案内されるようになりました(画面1)。ちなみに、「powershell.exe -nologo」を実行すれば、この案内なしでWindows PowerShellを起動できます。
「.NET Framework」上に構築されたWindows PowerShellに対し、PowerShellは「.NET」(旧称、.NET Core)上に構築され、Windows、macOS、Linuxのクロスプラットフォーム対応です。Windows上ではWindows PowerShellとの共存が可能で、既存のWindows PowerShellモジュールとの互換性を提供します。Windows PowerShellに含まれるモジュールやコマンドの一部は、さまざまな理由からPowerShellから削除されていますが、削除されていないモジュールやコマンドを使用する限り、Windows PowerShellで動作するスクリプトはそのままPowerShellでも動くはずです。
- Windows PowerShell 5.1とPowerShell 7.xの相違点(Microsoft Learn)
Windows PowerShellでは問題ないのにPowerShellではエラー! なぜなのか?
冒頭で触れたMicrosoft提供のサンプルスクリプトは、2024年1月の「Windows回復環境(Windows RE、WinRE)」更新プログラムのインストールエラー回避策の一つとして示されたものです。
- 2024年1月のWindows RE更新プログラムのインストールに失敗する場合があります(Microsoft Learn)
- Windows REに更新プログラムパッケージを追加する > Windows REのパーティションを拡張する(Microsoft Learn)
以下の画面2は、このサンプルスクリプトのコピーを管理者として開いたWindows PowerShell(powershell.exe)とPowerShell(pwsh.exe)でそれぞれ実行した結果です。
Windows PowerShellでは問題なくスクリプトが進みますが(実際の拡張にはユーザーの指示が必要です)、PowerShellでは「Get-Partiton」コマンドレットがエラーとなり、スクリプトが途中でストップしてしまいます。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- Windows 11登場! 11で変わること、思ったほど変わらないこと
新しいWindows OS「Windows 11」の正式出荷が2021年10月5日に開始された。Windows 10からの無償アップグレードが可能であるため、どのような新機能が実装されたのか気になる人も多いのではないだろうか。そこで、本稿ではWindows 11の新機能、削除された機能などを簡単にまとめてみた。 - Windows 11一般提供開始、企業での導入/展開時に注意すべきポイントは?
MicrosoftはWindowsデスクトップOSの最新バージョンである「Windows 11」を正式にリリースし、Windows 11対応ハードウェアを搭載したWindows 10デバイスに対して、無料アップグレードの段階的なロールアウトを開始しました。 - 買って、試して分かったWindows 365(契約・セットアップ編)
Microsoftからクラウド上でWindows 10が動く「クラウドPC」の利用可能なサブスクリプションサービス「Windows 365」の提供が開始された。早速、サブスクリプションを契約し、クラウドPCの設定を行ってみた。契約からセットアップまでで見えてきた便利な点、不便な点などをまとめてみた。 - いよいよ完全終了へ。Internet Explorer(IE)サポート終了スケジュール
長らくWindows OSに標準装備されてきたInternet Explorer(IE)。その「寿命」は各種サポートの終了時期に左右される。Windows OSごとにIEのサポート終了時期を分かりやすく図示しつつ、見えてきた「終わり」について解説する。