どーも、データアナリティクス事業本部コンサルティングチームのsutoです。
Amazon Workspacesでイメージを作成する際にエラーが発生して作成できなかったため、Image Checker Toolを起動したところ、 No Appx packages can be in a staged state
という項目で「FAILED」になる事象が発生しました。
公式ドキュメントに載っている手順だけでは解消されなかったので、追加で実施してみた内容も含めて本記事にまとめました。
対処したこと
Staged状態パッケージの削除
- まずはImage Checkerの項目をクリアできるように、公式ドキュメントにも載っている「Staged状態のAppXパッケージ」の削除を試みてみます。
-
該当のWorkspacesにログインして、「Power shell」を「管理者として実行」します。
- Windows PowerShell ウィンドウで、以下のコマンドを入力して、ステージングされたすべての AppX パッケージを一覧表示します。
$workSpaceUserName = $env:username
$allAppxPackages = Get-AppxPackage -AllUsers
$packages = $allAppxPackages | Where-Object { `
(($_.PackageUserInformation -like "*S-1-5-18*" -and !($_.PackageUserInformation -like "*$workSpaceUserName*")) -and `
($_.PackageUserInformation -like "*Staged*" -or $_.PackageUserInformation -like "*Installed*")) -or `
((!($_.PackageUserInformation -like "*S-1-5-18*") -and $_.PackageUserInformation -like "*$workSpaceUserName*") -and `
$_.PackageUserInformation -like "*Staged*")
}
- ここで変数「$packages」を表示してみると以下の表示例のように「Staged」状態のパッケージが複数表示されました。
system32> $packages
〜省略
Name : Windows.xxxxxxxxx
Publisher : CN=Microsoft Windows, O=Microsoft Corporation, L=Redmond, S=Washington, C=US
Architecture : Neutral
ResourceId : neutral
Version : x.x.x.x
PackageFullName : Windows.xxxxxxxxx_x.x.x.x_neutral_neutral_cw5n1h2txyewy
InstallLocation : C:\Windows\xxxxxxxxx
IsFramework : False
PackageFamilyName : Windows.xxxxxxxxx_cw5n1h2txyewy
PublisherId : cw5n1h2txyewy
PackageUserInformation : {S-1-5-18-1234567890-1234567890-1234567890-1110 [WORKSPACES\testuser]: Staged}
IsResourcePackage : False
IsBundle : False
IsDevelopmentMode : False
NonRemovable : True
IsPartiallyStaged : False
SignatureKind : System
Status : Ok
〜省略
- 上記で取得できた「Staged」状態のパッケージを以下のコマンドで削除を試みます。
$packages | Remove-AppxPackage -ErrorAction SilentlyContinue
- ここで再度Image Checker Toolを実行してみたところ、
- 項目「No Appx packages can be in a staged state」は変わらずFAILEDのままであった
- 再度「Staged」状態のパッケージ一覧を取得して確認してみたところ、削除できていなかった
- 原因調査のため「-ErrorAction SilentlyContinue」を外して
$packages | Remove-AppxPackage
を実行してみると、Windows機能の一部であるため削除できなかったパッケージがあった模様 - Windows UpdateやWorkspacesの再起動してから再度実施しても結果は変わらなかった
- よって次に以下のコマンドですべての AppX パッケージを削除を試みました。
Get-AppxProvisionedPackage -Online | Remove-AppxProvisionedPackage -Online -ErrorAction SilentlyContinue
Get-AppxPackage -AllUsers | Remove-AppxPackage -ErrorAction SilentlyContinue
この後に再度確認しても事象は変わらずFAILEDのままで解決できませんでした。
そのため別の方法を模索することにしました。
Staged状態パッケージをInstalledにする
- 以下のリンクを参考にStaged状態パッケージをインストール済みのステータスにできないか試してみました。
- 以下のコマンドを実行して、AppX リスト全体の中から、まだインストール済み状態になっていないリストされたパッケージをインストールします。
Get-AppxPackage -AllUsers | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
- この後に改めて「Staged」状態のパッケージ一覧を取得して確認してみたところ、何も表示されず該当パッケージがゼロになってくれました。
system32> $packages = $allAppxPackages | Where-Object { `
(($_.PackageUserInformation -like "*S-1-5-18*" -and !($_.PackageUserInformation -like "*$workSpaceUserName*")) -and `
($_.PackageUserInformation -like "*Staged*" -or $_.PackageUserInformation -like "*Installed*")) -or `
((!($_.PackageUserInformation -like "*S-1-5-18*") -and $_.PackageUserInformation -like "*$workSpaceUserName*") -and `
$_.PackageUserInformation -like "*Staged*")
}
system32> $packages
system32>
- Image Checker Toolの方も実行してみると、FAILEDが解消され、イメージ作成も成功となりました。
最後に
以上、「No Appx packages can be in a staged state」という項目がFAILEDになった際に対処したことをまとめました。
似たような事象にあった方々にこの記事が参考になれば幸いです。