Différence de démarrage de PowerShell via "Exécuter" -GUI et Win + X

Aug 21 2020

Si j'exécute PowerShell en tant qu'administrateur sur Windows 10 v1909 et que j'apporte des modifications à la fenêtre du terminal (par exemple, en changeant le tampon), les modifications sont enregistrées comme il se doit, voici un exemple, en modifiant la taille du tampon en 999:

Mais seulement si je le lance "de la même manière". Une deuxième procédure de démarrage semble avoir son propre "stockage" et ne me donne pas le même résultat:

  • Exécutez le dialogue en utilisant avec la commande powershellet en appuyant sur Ctrl+ Shift+ OK pour exécuter (pour le faire fonctionner en tant qu'administrateur

contre

  • Menu Win + X, en choisissant Windows PowerShell (Administrator)

Que se passe-t-il exactement différemment (en interne) lors de l'ouverture de PowerShell de l'une ou l'autre manière? Puis-je le forcer à ouvrir le "même" Powershell en utilisant un commutateur avec la boîte de dialogue Exécuter?

Ma première hypothèse était qu'il y avait deux copies de powershell.exelà-bas, mais les deux processus montrent qu'ils ont commencé le même binaire %WinDir%\System32\WindowsPowerShell\v1.0, l'un apparaissant comme PowerShell.exeet l'autre powershell.exe. Cela ressemble à une sorte de paramètre via les options Win + X, pour démarrer un deuxième profil?!

Réponses

2 Thomas Aug 23 2020 at 18:44

Si vous démarrez PowerShell directement en exécutant son exécutable:

  • 32 bits: %SystemRoot%\syswow64\WindowsPowerShell\v1.0\powershell.exe
  • 64 bits: %SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe

C'est en effet différent d'utiliser les raccourcis fournis sous ⊞ Win+ Xou d'utiliser les raccourcis que vous trouvez dans le menu démarrer lorsque vous recherchez "PowerShell". Ces raccourcis sont stockés dans %AppData%\Microsoft\Windows\Start Menu\Programs\Windows PowerShellet fournissent leurs propres paramètres:

postanote Aug 23 2020 at 06:13

Revenez à votre requête d'origine ... quant à ceci ...

Ce qui est exactement différent lors de l'ouverture de PowerShell en interne

... ce n'est pas du tout une chose. Windows PowerShell fait partie du système d'exploitation. Le démarrage de PowerShell est le même quoi qu'il arrive. Il n'y a pas de concept de lancement interne / externe de PowerShell.

Lorsque vous utilisez la commande Exécuter cmd.exe, Win + X, etc., ce sont toutes les nouvelles instances PowerShell à chaque fois et elles n'ont rien à voir avec le stockage, etc. Tous les paramètres que vous définissez dans une session sont uniquement pour cette session.

Si vous souhaitez conserver ces paramètres, la seule façon de le faire est de créer des raccourcis sur le bureau ou de modifier les raccourcis existants (c'est-à-dire, cliquez avec le bouton droit sur le raccourci et cliquez sur Propriétés - comme vous le feriez avec tout autre raccourci Windows) et définissez les propriétés souhaitées.

La deuxième méthode, pour PowerShell, consiste à créer et à utiliser des profils PowerShell. C'est vraiment 1 heure 1 dans un cours de formation PowerShell.

Les répertoires PowerShell n'existent que lorsque vous créez un profil ou que vous les créez manuellement, c'est ce que @ JW0914 essaie de dire ici. Démarrez simplement powershell.exe, puis faites ceci ...

New-Item –Path $Profile –Type File –Force

.. le démarrer powershell_ise.exe et faire la même chose et cela crée le répertoire 'WindowsPowerShell' ...

C: \ Users \ YourUserName \ Documents \ WindowsPowerShell

et les deux profils seront là comme

Microsoft.PowerShell_profile.ps1
Microsoft.PowerShellISE_profile.ps1

Ce ne sont que des fichiers vides, comme indiqué ci-dessus, un emplacement où vous pouvez définir les préférences de votre choix et ils seront utilisés à moins que vous ne démarriez powershell.exe ou powershell_ise en utilisant le paramètre -noprofile.

Consultez la documentation d'aide Powershell à ce sujet.

Il existe une autre version de PowerShell appelée PowerShell Core (pwsh.exe) et il est multiplateforme (Win / OSX / Linux) mais ne met pas à niveau / remplace Windows PowerShell. Ils sont conçus pour fonctionner côte à côte. Il possède également ses propres chemins et profils, distincts des chemins Windows PowerShell.

C: \ Users \ YourUserName \ Documents \ PowerShell

Microsoft.PowerShell_profile.ps1

Il n'y a pas d'ISE pour PowerShell Core . Le remplacement de l'ISE pour le noyau PowerShell s'appelle Visual Studio Code . Et il a aussi son propre profil et cela doit être dans les dossiers PowerShell.

Microsoft.VSCode_profile.ps1