Untitled

 avatar
unknown
plain_text
10 months ago
1.6 kB
18
Indexable
# YÖNETİCİ POWERSHELL

# 1) Eşleşen InstallProperties anahtarlarını tekrar bul
$matches = Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData' -Recurse -ErrorAction SilentlyContinue |
  Where-Object { $_.PSChildName -eq 'InstallProperties' } |
  ForEach-Object {
    try { Get-ItemProperty $_.PSPath -ErrorAction Stop } catch {}
  } | Where-Object { $_.DisplayName -like '*Isochrone*' -or $_.Publisher -like '*Starboard*' }

if (-not $matches) {
  Write-Host "Installer\\UserData altında Isochrone/Starboard kaydı bulunamadı."
} else {
  New-Item -Path 'C:\temp' -ItemType Directory -Force | Out-Null
  foreach ($m in $matches) {
    $psPath = $m.PSPath  # Örn: Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\...

    # Backup için reg.exe biçimine çevir (HKLM:\ ...  ->  HKEY_LOCAL_MACHINE\... )
    $regPath = $psPath -replace '^Microsoft\.PowerShell\.Core\\Registry::',''
    $safe = ($regPath -replace '[\\/:*?"<>|]', '_')
    reg export "$regPath" "C:\temp\backup_$safe.reg" /y | Out-Null

    # Sil (PSPath ile, provider doğru)
    Remove-Item -LiteralPath $psPath -Recurse -Force
  }
}

# Doğrulama: hâlâ bir şey kaldı mı?
Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData' -Recurse -ErrorAction SilentlyContinue |
  Where-Object { $_.PSChildName -eq 'InstallProperties' } |
  ForEach-Object { try { Get-ItemProperty $_.PSPath -ErrorAction Stop } catch {} } |
  Where-Object { $_.DisplayName -like '*Isochrone*' -or $_.Publisher -like '*Starboard*' } |
  Select-Object PSPath, DisplayName, Publisher
Editor is loading...
Leave a Comment