Windows RE に更新プログラム パッケージを追加する
https://learn.microsoft.com/ja-jp/windows-hardware/manufacture/desktop/add-update-to-winre?view=windows-11#extend-the-windows-re-partition
情報の取得とその出力部分だけコピー(スクリプトの# Log message~ # Checking the BackupFolder parameter まで丸ごと)して Windows 11 で実行してみたところ、Windows PowerShell 5.1 では期待通りに動くんですが、PowerShell 7.4.1(旧称、PowerShell Core)だと以下の行でエラーに。
$diskInfo = Get-Disk -number $OSDiskIndex
エラーの原因は...
その少し上の以下の行が、PowerShell Core と Windows PowerShell で動きが異なるみたい。WinREの場所(\\?\GLOBALROOT\device\harddisk1\partition4\Recovery\WindowsRE とか)を \ で分割しているんですけど...
$WinRELocationItems = $WinRELocation.Split('\\')
次のように、PowerShel Core だと "文字列".Split('\\') (Splitメソッド)で分割できていない。
スクリプトの問題の行はSplitメソッドで
$WinRELocationItems = $WinRELocation.Split('\')
または-Split演算子で
$WinRELocationItems = $WinRELocation -Split '\\'
と書き換えてあげれば、PowerShell Core と Windows PowerShell どちらでも問題なく動くように。スクリプトの後半のほうにも同じコードあるのでご注意ください。
この Split (メソッドの方)の挙動の違いが、バグなのか仕様なのか、分かりません。1月の WinRE 更新プロググラムの出来もアレでしたけど、最近、いろいろと品質劣化というか、テストが足りん、いやしてるの?って感じです。
こちらにフィードバック済み
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。