83 lines
2.5 KiB
PowerShell
83 lines
2.5 KiB
PowerShell
[Console]::OutputEncoding = [Text.Encoding]::UTF8
|
|
$ErrorActionPreference = 'Continue'
|
|
|
|
Write-Host "[*] Diagnosing winget configuration and connectivity"
|
|
Write-Host ""
|
|
|
|
Write-Host "[1] Checking winget version and status..."
|
|
try {
|
|
$wingetVersion = & winget --version
|
|
Write-Host " winget version: $wingetVersion"
|
|
} catch {
|
|
Write-Host " [!] winget command failed"
|
|
}
|
|
|
|
Write-Host ""
|
|
Write-Host "[2] Checking winget sources..."
|
|
try {
|
|
$sources = & winget source list
|
|
Write-Host " winget sources:"
|
|
Write-Host "$sources"
|
|
} catch {
|
|
Write-Host " [!] Failed to list winget sources"
|
|
}
|
|
|
|
Write-Host ""
|
|
Write-Host "[3] Testing network connectivity..."
|
|
|
|
$testUrls = @(
|
|
"github.com",
|
|
"cdn.winget.microsoft.com",
|
|
"storeedgefd.dsx.mp.microsoft.com"
|
|
)
|
|
|
|
foreach ($url in $testUrls) {
|
|
try {
|
|
$testResult = Test-NetConnection -ComputerName $url -Port 443 -WarningAction SilentlyContinue
|
|
if ($testResult.TcpTestSucceeded) {
|
|
Write-Host " [OK] $url - Accessible"
|
|
} else {
|
|
Write-Host " [!] $url - Not accessible"
|
|
}
|
|
} catch {
|
|
Write-Host " [!] $url - Test failed"
|
|
}
|
|
}
|
|
|
|
Write-Host ""
|
|
Write-Host "[4] Testing simple winget search..."
|
|
try {
|
|
Write-Host " Searching for Chrome..."
|
|
$searchResult = & winget search "Google.Chrome" --exact
|
|
Write-Host " Search result: $searchResult"
|
|
} catch {
|
|
Write-Host " [!] winget search failed"
|
|
}
|
|
|
|
Write-Host ""
|
|
Write-Host "[5] Checking Windows version compatibility..."
|
|
$windowsVersion = Get-ComputerInfo | Select-Object WindowsProductName, WindowsVersion, WindowsBuildLabEx
|
|
Write-Host " OS: $($windowsVersion.WindowsProductName)"
|
|
Write-Host " Version: $($windowsVersion.WindowsVersion)"
|
|
Write-Host " Build: $($windowsVersion.WindowsBuildLabEx)"
|
|
|
|
Write-Host ""
|
|
Write-Host "[6] Testing manual installation with verbose output..."
|
|
Write-Host " Attempting to install 7-Zip with verbose logging..."
|
|
|
|
try {
|
|
$installTest = & winget install 7zip.7zip --accept-package-agreements --accept-source-agreements --verbose 2>&1
|
|
Write-Host " Install output:"
|
|
Write-Host "$installTest"
|
|
} catch {
|
|
Write-Host " [!] Manual install test failed: $($_.Exception.Message)"
|
|
}
|
|
|
|
Write-Host ""
|
|
Write-Host "Diagnosis completed!"
|
|
Write-Host ""
|
|
Write-Host "Possible solutions based on findings:"
|
|
Write-Host "1. If network connectivity issues: Configure proxy or firewall"
|
|
Write-Host "2. If source issues: Reset winget sources"
|
|
Write-Host "3. If permissions issues: Run as Administrator"
|
|
Write-Host "4. If Windows version issues: Update Windows or use manual installation" |