VMware Workstation PlayerにWindows Server 2022をインストールし、デスクトップOSのような設定をした。
shigeo-t.hatenablog.com
shigeo-t.hatenablog.com
次はwingetである。確認してみるとWindows Server 2022 Standard デスクトップエクスペリエンスには入っていない。wingetがあるほうがコマンドでインストールできて簡単だし、Windows Server 2022でデスクトップエクスペリエンスにしない場合もあるので、ここはまずwingetをインストールしたい。
インストール方法はあるのだが、普通はMicrosoft Storeからである。
atmarkit.itmedia.co.jp
しかしWindows ServerにはStoreアプリが無い。Windows Server 2022で変わったかもと検索してみると設定を開いた。
プルダウンしてみる。
元々の設定が一番緩いが、Storeアプリが無いと簡単にはインストールできない。
ということでGithubのwinget-cliを開く。
github.com
右ペインのReleasesをクリックし、
最新が開いたらスクロールして
Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle をダウンロードする。
ところがこんなエラーが出る。
msixbundleの
bitto.jp
管理者権限の PowerShell からインストールしよう
やってみる。
エラーである。
エラーメッセージはこんな感じ。
PS C:\Users\Administrator\Downloads> Add-AppxPackage .\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle
Add-AppxPackage : 次の HRESULT で展開に失敗しました: 0x80073CF3, パッケージの更新、依存関係、または競合の検証に失敗しま
した。
パッケージ Microsoft.DesktopAppInstaller_1.17.10271.0_x64__8wekyb3d8bbwe は、見つからないフレームワークに依存しているた
めインストールできません。インストールするこのパッケージには、フレームワーク "Microsoft.UI.Xaml.2.7" (公開元 "CN=Micros
oft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US"、ニュートラルまたは x64 プロセッサ アーキテク
チャ、最少バージョン 7.2109.13004.0) が必要です。現在インストールされている "Microsoft.UI.Xaml.2.7" という名前のフレー
ムワークは次のとおりです: {}
注: 詳細については、イベント ログで [ActivityId] 2035a5a1-7165-0002-7bc2-35206571d801 を検索するか、コマンド ラインの G
et-AppPackageLog-ActivityId 2035a5a1-7165-0002-7bc2-35206571d801 を使用してください
発生場所 行:1 文字:1
+ Add-AppxPackage .\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbun ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : WriteError: (C:\Users\Admini...bbwe.msixbundle:String) [Add-AppxPackage], IOException
+ FullyQualifiedErrorId : DeploymentError,Microsoft.Windows.Appx.PackageManager.Commands.AddAppxPackageCommand
探してみる。あった。
dev.classmethod.jp
インストールスクリプトはこれ。
function Install-LatestWinGet ([bool]$installVCLibs = $true) {
if ($installVCLibs) {
$vcLibsUrl = 'https://aka.ms/Microsoft.VCLibs.x64.14.00.Desktop.appx'
$vcLibsPath = Join-Path -Path ([IO.Path]::GetTempPath()) ($vcLibsUrl -split '/')[-1]
Write-Host -ForegroundColor Green "Download $vcLibsUrl"
Invoke-WebRequest -Uri $vcLibsUrl -OutFile $vcLibsPath
Write-Host -ForegroundColor Green "Install $vcLibsPath"
Add-AppxPackage -Path $vcLibsPath
if (Test-Path -LiteralPath $vcLibsPath) {
Write-Host -ForegroundColor Green "Remove $vcLibsPath"
Remove-Item -LiteralPath $vcLibsPath
}
}
$latest = Invoke-RestMethod -Uri 'https://api.github.com/repos/microsoft/winget-cli/releases/latest'
$msixUrl = $latest.assets | Where-Object { $_.browser_download_url -like '*.msixbundle' } | Select-Object -ExpandProperty browser_download_url
$msixPath = Join-Path -Path ([IO.Path]::GetTempPath()) ($msixUrl -split '/')[-1]
$licenseUrl = $latest.assets | Where-Object { $_.browser_download_url -like '*License1.xml' } | Select-Object -ExpandProperty browser_download_url
$licensePath = Join-Path -Path ([IO.Path]::GetTempPath()) ($licenseUrl -split '/')[-1]
( @{Url = $msixUrl ; LocalPath = $msixPath}, @{Url = $licenseUrl ; LocalPath = $licensePath} ) | ForEach-Object {
Write-Host -ForegroundColor Green "Download $($_.Url)"
Invoke-WebRequest -Uri $_.Url -OutFile $_.LocalPath
}
Write-Host -ForegroundColor Green "Install $msixPath"
Write-Host -ForegroundColor Green " : License $licensePath"
Add-AppxProvisionedPackage -Online -PackagePath $msixPath -LicensePath $licensePath
($msixPath, $licensePath) | ForEach-Object {
if (Test-Path -LiteralPath $_) {
Write-Host -ForegroundColor Green "Remove $_"
Remove-Item -LiteralPath $_
}
}
Write-Host -ForegroundColor Green "Installation complete!"
}
Install-LatestWinGet
Windows Server 2022のPowerShell管理者で実行してみる。
うまくいったっぽい。でも、wingetコマンドが見つからない。
ということで、時間を置いてやってみる。