Men-debug dan memecahkan masalah dengan alat WinGet

Jika WinGet tampaknya tidak diinstal dengan benar, ikuti langkah-langkah ini dari prompt perintah PowerShell:

Install-PackageProvider -Name NuGet -Force | Out-Null
Install-Module -Name Microsoft.WinGet.Client -Force -Repository PSGallery | Out-Null
Repair-WinGetPackageManager -Force -Latest

Ketika perintah WinGet gagal, terkadang perlu untuk melihat file log untuk lebih memahami perilaku.

Log dari WinGet

Pengelola Paket Windows secara default membuat file log saat menjalankan perintah. Log ini berisi informasi yang dapat membantu dalam men-debug masalah dengan WinGet. Perilaku pembersihan log dapat dikonfigurasi melalui logging settings di file settings Anda. Secara default, file log yang lebih lama dari 7 hari atau melebihi total 128 MB secara otomatis dihapus, dan file log individual dibungkus pada 16 MB. logging.file settings Gunakan untuk menyesuaikan batas ini.

Gunakan perintah winget --info untuk menemukan jalur direktori ke file log WinGet Anda. Jalur default untuk file log WinGet adalah:

%LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\DiagOutputDir

Anda dapat menyertakan --logs opsi atau --open-logs ke perintah apa pun untuk membuka direktori log setelah perintah selesai. Berikut adalah beberapa contoh penggunaan --logs opsi:

> winget list --logs
> winget source update --open-logs

--verbose-logs

Jika Anda memerlukan file log yang lebih komprehensif, yang menyediakan komunikasi lengkap dengan CDN dan sumber, sertakan --verbose atau --verbose-logs di baris perintah juga. Berikut adalah beberapa contoh penggunaan --verbose-logs opsi:

> winget install vscode --verbose-logs
> winget search -n visual --verbose-logs
> winget source add -n mysource -t Microsoft.REST -a https://www.contoso.org --verbose

settings

Anda dapat menentukan tingkat pengelogan default untuk digunakan WinGet dalam file Pengaturan WinGet Anda. Perintah settings akan membuka settings file.json di editor JSON default Anda.

Contoh dengan log rinci

{
    "$schema": "https://aka.ms/winget-settings.schema.json",
    "logging": {
        "level": "verbose"
    }
}

Masalah umum

Daftar list masalah yang diketahui terkait sumber dan perilaku terus diperbarui di repositori Windows Package Manager Client. Jika Anda mengalami masalah saat menggunakan alat WinGet, buka di sini untuk pemecahan masalah.

Kode Keluaran

Alat WinGet mengembalikan kode keluar untuk menunjukkan keberhasilan atau kegagalan perintah. Temukan tabel kode keluar dan maknanya dalam file "Kode Pengembalian" dari repositori Klien Pengelola Paket Windows.

Perintah error WinGet menerima kode kesalahan dari "Kode keluar" dan menampilkan deskripsi kode kesalahan yang diketahui untuk penginstal WinGet, MSIX, dan MSI. Banyak penginstal berbasis .exememiliki kode kesalahan non-standar dan mungkin tidak ditampilkan.

> winget error 1603

Cakupan untuk pengguna tertentu vs di seluruh komputer

Tidak semua alat penginstal mendukung penginstalan dalam cakupan "pengguna" vs. cakupan "mesin" secara konsisten.

  • Paket berbasis MSIX: Perilaku WinGet yang andal.
  • Paket berbasis MSI biasanya mendukung konfigurasi WinGet yang andal, tetapi dalam beberapa kasus, disarangkan di dalam alat penginstal berbasis .exe sehingga mungkin ada lebih banyak varianbilitas.
  • Perilaku penginstal berbasis EXE di sekitar cakupan belum tentu deterministik. Dalam beberapa kasus argumen untuk menentukan cakupan tidak tersedia, dan dalam kasus lain alat penginstal dapat membuat penentuan berdasarkan apakah pengguna adalah anggota grup administrator lokal. Paket yang diinstal dalam cakupan pengguna mungkin masih memerlukan otorisasi UAC (Kontrol Akun Pengguna) dari administrator.

Lihat detail selengkapnya tentang masalah terkait cakupan di repositori produk WinGet di GitHub.

Kesalahan 403 Forbidden

Kesalahan Terlarang 403 dapat terjadi saat mencoba mengunduh paket menggunakan alat WinGet. Masalah ini dapat muncul jika Vendor Perangkat Lunak Independen (ISV) memilih tidak memiliki produk mereka yang didistribusikan oleh layanan manajer paket seperti WinGet.

Server yang bertanggung jawab untuk memulai unduhan biasanya memeriksa string agen pengguna yang disertakan dengan permintaan unduhan untuk mengidentifikasi perangkat atau klien (misalnya, browser, WinGet). Jika Anda dapat mengunduh alat penginstal menggunakan browser Anda, tetapi mengalami masalah dengan WinGet, ada kemungkinan bahwa ISV telah memblokir string agen pengguna WinGet.

String agen pengguna untuk WinGet memiliki format berikut:

winget-cli WindowsPackageManager/{Client Version} DesktopAppInstaller/Microsoft.DesktopAppInstaller {AppInstaller Version}

Contoh:

winget-cli WindowsPackageManager/1.9.25200 DesktopAppInstaller/Microsoft.DesktopAppInstaller v1.24.25200.0

Konteks Sistem

WinGet dikirimkan melalui Penginstal Aplikasi sebagai aplikasi yang dipaketkan. Aplikasi MSIX (paket) bergantung pada paket yang didaftarkan untuk pengguna. Karena paket dapat didaftarkan untuk setiap pengguna kecuali NT AUTHORITY\SYSTEM (alias LocalSystem, alias System), WinGet CLI tidak didukung dalam konteks sistem. Modul Microsoft.WinGet.Client PowerShell dapat digunakan dalam konteks sistem dengan aplikasi yang diinstal di seluruh komputer.