135 lines
4.9 KiB
PowerShell
135 lines
4.9 KiB
PowerShell
[Console]::OutputEncoding = [Text.Encoding]::UTF8
|
|
$ErrorActionPreference = 'Continue'
|
|
|
|
Write-Host "[*] Investigating application installation failures"
|
|
Write-Host ""
|
|
|
|
# Error code analysis
|
|
Write-Host "=== Error Code Analysis ==="
|
|
Write-Host "Error code -1978335212 (0x8A150054) typically indicates:"
|
|
Write-Host "- APPINSTALLER_CLI_ERROR_INSTALLER_FAILED"
|
|
Write-Host "- The package installer failed during execution"
|
|
Write-Host ""
|
|
|
|
Write-Host "[1] Checking system requirements and dependencies..."
|
|
|
|
# Check Windows version
|
|
$osInfo = Get-ComputerInfo | Select-Object WindowsProductName, WindowsVersion, WindowsBuildLabEx
|
|
Write-Host "OS: $($osInfo.WindowsProductName)"
|
|
Write-Host "Version: $($osInfo.WindowsVersion)"
|
|
Write-Host "Build: $($osInfo.WindowsBuildLabEx)"
|
|
|
|
# Check available disk space
|
|
$disk = Get-WmiObject -Class Win32_LogicalDisk | Where-Object {$_.DeviceID -eq "C:"}
|
|
$freeSpaceGB = [math]::Round($disk.FreeSpace / 1GB, 2)
|
|
Write-Host "Free space on C: drive: $freeSpaceGB GB"
|
|
|
|
Write-Host ""
|
|
Write-Host "[2] Checking for conflicting installations..."
|
|
|
|
# Check if any versions are already partially installed
|
|
$installedApps = Get-WmiObject -Class Win32_Product | Where-Object {
|
|
$_.Name -like "*AnyDesk*" -or
|
|
$_.Name -like "*LINE*" -or
|
|
$_.Name -like "*Adobe*Reader*"
|
|
} | Select-Object Name, Version, IdentifyingNumber
|
|
|
|
if ($installedApps) {
|
|
Write-Host "Found existing installations:"
|
|
foreach ($app in $installedApps) {
|
|
Write-Host " - $($app.Name) v$($app.Version)"
|
|
}
|
|
} else {
|
|
Write-Host "No conflicting installations found"
|
|
}
|
|
|
|
Write-Host ""
|
|
Write-Host "[3] Testing individual app availability..."
|
|
|
|
$failedApps = @(
|
|
@{Name="AnyDesk"; Id="AnyDeskSoftwareGmbH.AnyDesk"},
|
|
@{Name="LINE"; Id="LINE.LINE"},
|
|
@{Name="Adobe Reader"; Id="Adobe.Acrobat.Reader.64-bit"}
|
|
)
|
|
|
|
foreach ($app in $failedApps) {
|
|
Write-Host "Testing $($app.Name)..."
|
|
|
|
# Check if app is available in winget
|
|
try {
|
|
$searchResult = & winget show $app.Id --source winget 2>&1
|
|
if ($LASTEXITCODE -eq 0) {
|
|
Write-Host " [OK] Package found in winget"
|
|
|
|
# Extract some key info
|
|
$lines = $searchResult -split "`n"
|
|
foreach ($line in $lines) {
|
|
if ($line -like "*Version:*" -or $line -like "*Publisher:*" -or $line -like "*Package Url:*") {
|
|
Write-Host " $line"
|
|
}
|
|
}
|
|
} else {
|
|
Write-Host " [!] Package not found or access denied"
|
|
}
|
|
} catch {
|
|
Write-Host " [!] Search failed: $($_.Exception.Message)"
|
|
}
|
|
|
|
Write-Host ""
|
|
}
|
|
|
|
Write-Host "[4] Checking system policies and restrictions..."
|
|
|
|
# Check execution policy
|
|
$execPolicy = Get-ExecutionPolicy -Scope LocalMachine
|
|
Write-Host "Execution Policy: $execPolicy"
|
|
|
|
# Check if running as administrator
|
|
$isAdmin = ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
|
|
Write-Host "Running as Administrator: $isAdmin"
|
|
|
|
# Check Windows Defender status
|
|
try {
|
|
$defender = Get-MpPreference -ErrorAction SilentlyContinue
|
|
if ($defender) {
|
|
Write-Host "Windows Defender Real-time Protection: $($defender.DisableRealtimeMonitoring -eq $false)"
|
|
}
|
|
} catch {
|
|
Write-Host "Cannot check Windows Defender status"
|
|
}
|
|
|
|
Write-Host ""
|
|
Write-Host "[5] Testing direct download availability..."
|
|
|
|
$downloadTests = @(
|
|
@{Name="AnyDesk"; Url="https://download.anydesk.com/AnyDesk.exe"},
|
|
@{Name="LINE"; Url="https://desktop.line-scdn.net/win/new/LineInst.exe"},
|
|
@{Name="Adobe Reader"; Url="https://ardownload2.adobe.com/pub/adobe/reader/win/AcrobatDC/2300820555/AcroRdrDC2300820555_en_US.exe"}
|
|
)
|
|
|
|
foreach ($test in $downloadTests) {
|
|
Write-Host "Testing $($test.Name) direct download..."
|
|
try {
|
|
$webRequest = Invoke-WebRequest -Uri $test.Url -Method Head -UseBasicParsing -TimeoutSec 10
|
|
Write-Host " [OK] Direct download available (Status: $($webRequest.StatusCode))"
|
|
} catch {
|
|
Write-Host " [!] Direct download failed: $($_.Exception.Message)"
|
|
}
|
|
}
|
|
|
|
Write-Host ""
|
|
Write-Host "=== Investigation Summary ==="
|
|
Write-Host ""
|
|
Write-Host "Possible reasons for failures:"
|
|
Write-Host "1. Package installer requirements not met (missing dependencies)"
|
|
Write-Host "2. Antivirus/Windows Defender blocking installation"
|
|
Write-Host "3. Insufficient permissions despite administrator status"
|
|
Write-Host "4. Network connectivity issues to specific download servers"
|
|
Write-Host "5. Package conflicts with existing system components"
|
|
Write-Host "6. Windows version compatibility issues"
|
|
Write-Host ""
|
|
Write-Host "Recommended solutions:"
|
|
Write-Host "1. Try direct installer downloads with elevated permissions"
|
|
Write-Host "2. Temporarily disable real-time protection during installation"
|
|
Write-Host "3. Use alternative installation sources or older versions"
|
|
Write-Host "4. Install dependencies manually before main applications" |