web-dev-qa-db-ja.com

「変更を元に戻す更新を完了できませんでした」エラーでPowerShellを更新できません

PowerShell4.0からPowerShell5.1に更新しようとしているHyper-Vで実行されているWindowsServer 2012R2インスタンスがあります。更新が適用されたら、サーバーを再起動して更新を適用すると、すぐにWindowsに次のように表示されます。

更新を完了できませんでした

変更を元に戻す

コンピュータの電源を切らないでください

オンラインで調査した結果、Hyper-Vのセキュアブートオプションの問題であると私は信じました。 Powershellでこのオプションを編集しようとすると:

Set-VMFirmware "Build Server" -EnableSecureBoot Off

エラーが発生しました:

Set-VMFirmware:パラメーターが無効です。第1世代の仮想マシンはVMFirmwareコマンドレットをサポートしていません

この問題の根本原因を見つけるにはどうすればよいですか。Hyper-Vでセキュアブートを無効にすることが解決策である場合、Gen1 VMでこれを行うにはどうすればよいですか?

編集:最新のパッチでWindowsを更新しようとした後、同じ「更新を完了できませんでした」というメッセージが表示されました。これは、特にPowerShellではなく、WindowsUpdateの問題のようです...

3
PrestonM

数時間の調査の結果、問題はVMのセキュアブートが原因でではなくであったようですが、代わりにコンテンツ/ボリュームが原因でした。 Windowsの一時ディレクトリの。これは、Azure WindowsVMでも問題のようです。私のVMのC:\ Windows\Tempディレクトリは〜2.8GBでした。私が従った手順は次のとおりです。

  1. C:\ Windows\Tempのハンドルをすべて削除します
  2. 削除C:\ Windows\Temp
  3. 実行Windows Update
  4. 仮想マシンを再起動します
  5. Windows Server 2012 R2Windows Mangement Framework 5.1インストーラーを実行します
  6. 仮想マシンを再起動します

注:一部のソースでは、[〜#〜] temp [〜#〜]環境変数をC:\ Windows\Tempを直接指すように設定することを提案しています。すでにしていません。私のTEMP変数は、管理者アカウントの一時ディレクトリを指しています。上記の手順を実行するときに、 not これを変更しました。この場合、違いは見られませんでした。

1
PrestonM