Skip to content

feat(windows): install fixed-path PowerShell 7 MSI and safely migrate Store MSIX #3

Open

Description

@alsd4git

Obiettivo

Usare PowerShell 7 con un eseguibile stabile, ad esempio C:\Program Files\PowerShell\7\pwsh.exe, per l'uso da Windows Terminal, processi non interattivi e OpenSSH, evitando un alias MSIX che può non risolversi in sessioni SSH.

Stato: la PR #6 è stata integrata su main. Questa issue resta aperta per i punti sotto, che possono essere affrontati in una PR successiva.

La PR riporta l’installazione MSI 7.6.9, la rimozione della MSIX dell’utente e l’avvio del percorso assoluto tramite SSH a localhost.

Lavoro rimanente e verifiche

  • Mantenere Microsoft.PowerShell nel manifest, ma forzare WinGet a scegliere il pacchetto MSI / wix invece del MSIX predefinito.
  • Distinguere il file fisico pwsh.exe nel percorso Program Files dalla registrazione MSIX (Get-AppxPackage).
  • In presenza di Store/MSIX, chiedere consenso separato (default No); -Force da solo non deve autorizzare la rimozione.
  • Fornire helper dedicato da Windows PowerShell 5.1; non disinstallare la PowerShell MSIX attualmente in esecuzione.
  • Aggiungere test di pianificazione dei casi e configurazione CI Windows 5.1/7.
  • Aggiornare il pin MSI a 7.6.9: presente su main e installato nella prova riportata nella PR feat(windows): migrate PowerShell to SSH-friendly MSI #6.
  • Proteggere wingup / winget upgrade --all da un passaggio automatico alla variante MSIX: valutare un version gate 7.6.* o una gestione esplicita di upgrade MSI/WinGet; documentare anche il recupero dei pin.
  • Verificare che il rilevamento di MSI usi, quando appropriato, anche la registrazione di installazione (non solo un pwsh.exe con major 7 nel percorso previsto), senza scambiare installazioni non gestite per MSI.
  • Testare MSIX già presente, MSI già presente, entrambi presenti, corrente processo MSIX, altri processi MSIX aperti, mancanza di Get-AppxPackage, privilegi negati, -DryRun, -Force e idempotenza.
  • Estendere la prova OpenSSH: la PR feat(windows): migrate PowerShell to SSH-friendly MSI #6 documenta l’avvio tramite percorso assoluto via SSH a localhost; verificare anche la risoluzione di pwsh.exe. Non modificare implicitamente sshd o HKLM:\SOFTWARE\OpenSSH\DefaultShell.
  • Completare le prove Windows mancanti, comprese PATH e profili in un nuovo terminale. La PR feat(windows): migrate PowerShell to SSH-friendly MSI #6 documenta test di pianificazione e una migrazione manuale sul host.
  • Tenere distinta la strategia futura per PowerShell 7.7+, per cui Microsoft ha annunciato la rimozione dell'MSI; non aggiornare automaticamente da MSI a MSIX.

Criteri di accettazione

  1. Installazione pulita: pwsh.exe reale in Program Files, avviabile anche tramite percorso assoluto da SSH.
  2. Un'installazione Store/MSIX non viene rimossa senza opt-in e non viene mai rimossa mentre il processo corrente (o altri processi MSIX riconosciuti) la utilizza.
  3. Windows PowerShell 5.1 resta sempre disponibile come modalità di recupero.
  4. Aggiornamenti globali WinGet non introducono una seconda installazione MSIX involontaria.
  5. CI e prove Windows reali completate per gli scenari rimanenti.

Prossima integrazione

Aprire una PR dedicata ai punti rimanenti, partendo da main aggiornata dopo le PR #6 e #7.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions