Il semble qu'il y ait un problème lors de l'exécution du terminal "En tant qu'administrateur"
Erreur: Windows ne trouve pas "C: \ Program Files \ WindowsApps \ Microsoft.WindowsTerminal_0.2.1831.0_x64__8wekyb3d8bbwe \ WindowsTerminal.exe" Assurez-vous que vous avez correctement tapé le nom, puis réessayez
@ DHowett-MSFT J'aurais pu jurer que nous avions un problème de doublon quelque part pour ça, mais je ne peux pas le trouver maintenant. Vous rappelez-vous ce qui cause cela?
Ahh mec, désolé si c'est un double.
il n'y a aucune raison, démarrez bien l'application mais r-cliquez et démarrez en cas d'échec de l'administrateur, Windows UAC demande le mot de passe administrateur deux fois puis vous obtenez l'erreur.
Je rencontre également actuellement ce problème. J'ai recherché le terminal dans la barre des tâches
Ensuite, j'ai été invité à entrer deux fois mes informations d'identification d'administrateur! Une invite d'administration après l'autre. Puis, lorsque j'ai fini de saisir mes informations d'identification la deuxième fois, ce message d'erreur est apparu:
Je viens d'installer le terminal aujourd'hui.
Version du terminal:
La dernière version: 0.2.1831.0
Version du système d'exploitation:
Windows 10 Professionnel
10.0.18362 Construire 18362
Aussi comme suggestion au lieu d'exécuter le terminal ENTIER en tant qu'administrateur à partir de la barre des tâches, peut-être avoir des alternatives?
Par exemple:
Lors de l'ouverture d'un nouvel onglet, l'utilisateur ou une interface utilisateur lui demande-t-il s'il souhaite ouvrir la nouvelle instance en tant qu'administrateur?
Ou faites simplement un clic droit sur le terminal pour ouvrir un onglet d'administration à partir du même répertoire. (Ce serait très utile pour powershell-core car il n'a pas de fonctionnalités intéressantes comme sudo)
La prise en charge de Windows Terminal en mode administrateur peut ne pas être un bon comportement, ce qui signifie que tous les shells dans d'autres onglets ouverts à partir de Ctrl + T peuvent être des privilèges d'administrateur. Autant que je sache, Windows Terminal n'implémente aucun code de l'administrateur à l'utilisateur restreint. En fait, ce qui manque à Windows, c'est le type d'implémentation de privilèges qui ne nécessite pas d'interaction avec l'interface utilisateur, comme sudo.
Mais la mise en œuvre de sudo peut également être fastidieuse. Le flux du verbe runas est à peu près le suivant (si quelque chose ne va pas, veuillez me le rappeler):
PROC_THREAD_ATTRIBUTE_PARENT_PROCESS
, et utilise le handle récupéré à l'étape 3.EXTENDED_STARTUPINFO_PRESENT
et les résultats des étapes 1 et 4.Nous pouvons tirer une conclusion simple. En fait, runas
est en fait un processus normal qui lance une requête RPC à un processus à privilèges élevés. Le processus à privilèges élevés (service AppInfo) crée un processus administrateur et définit son processus parent comme un processus normal.
AppInfo ne prend actuellement pas en charge la configuration d'un répertoire de travail, d'une entrée et d'une sortie (bien qu'en appelant CreateProcessAsUser) lors du lancement du processus administrateur. Il s'agit d'un problème qui doit être résolu pour permettre à la prise en charge sudo de s'exécuter dans Windows Terminal. (ShellExecuteEx SEE_MASK_NO_CONSOLE ne fonctionne pas)
typedef struct _SHELLEXECUTEINFOW {
DWORD cbSize;
ULONG fMask;
HWND hwnd;
LPCWSTR lpVerb;
LPCWSTR lpFile;
LPCWSTR lpParameters;
LPCWSTR lpDirectory;
int nShow;
HINSTANCE hInstApp;
void *lpIDList;
LPCWSTR lpClass;
HKEY hkeyClass;
DWORD dwHotKey;
union {
HANDLE hIcon;
HANDLE hMonitor;
} DUMMYUNIONNAME;
HANDLE hProcess;
} SHELLEXECUTEINFOW, *LPSHELLEXECUTEINFOW;
| Valeur | Signification |
| --- | --- |
| PROC_THREAD_ATTRIBUTE_PARENT_PROCESS | Le paramètre lpValue est un pointeur vers un descripteur vers un processus à utiliser à la place du processus appelant en tant que parent du processus en cours de création. Le processus à utiliser doit disposer du droit d'accès PROCESS_CREATE_PROCESS.
Les attributs hérités du processus spécifié incluent les poignées, le mappage de périphériques, l'affinité du processeur, la priorité, les quotas, le jeton de processus et l'objet de travail. (Notez que certains attributs tels que le port de débogage proviendront du processus de création, pas du processus spécifié par ce handle.)
C'est certainement un problème de plate-forme Windows. Je me l'attribue pour faire un suivi avec l'équipe qui le possède et clôturer cela. Merci.
J'aime la proposition de @ YMba9g8j9CJp0wLoQf5y d'autoriser un onglet avec un privilège accru. Je viens de ConEmu où nous pouvons créer un onglet avec ou sans privilège d'administrateur. Lors de la création d'un onglet d'administration, je serai invité avec UAC (pour de bon).
N'est-ce pas seulement le comportement normal des applications Windows Store? Cela ressemble à l'application Preview récemment publiée.
Mais j'ai besoin d'un moyen d'exécuter des obus surélevés. Cela ne semble pas possible aujourd'hui (ouvrez les onglets en tant qu'administrateur).
Hé, nous ne sommes pas sûrs que nous puissions faire quoi que ce soit à ce sujet. Pourriez-vous déposer vos commentaires dans la catégorie "Plateforme développeur> Déploiement d'applications"? Cela aidera à le diriger vers la bonne équipe et collectera des informations de diagnostic très utiles.
Lien: c'est aussi # 1538
Même si je suis d'accord avec la décision. Cela rend assez pénible d'utiliser chocolatey
sans l'exécuter explicitement en mode administrateur. (
@musm J'ai juste ceci dans ma configuration PowerShell 6:
function GoAdmin { start-process pwsh –verb runAs }
(remplacez pwsh
par powershell
si vous utilisez l'ancien PowerShell)
Donc, chaque fois que j'ai besoin d'installer / mettre à jour des packages via chocolatey, je tape GoAdmin
(dans PowerShell hébergé par Windows Terminal), ce qui m'amène à une fenêtre PowerShell d'administration distincte. Là, je peux exécuter toutes les commandes d'administration chocolatées. Ensuite, je ferme simplement la fenêtre d'administration et tapez refreshenv
dans ma session Windows Terminal pour mettre à jour toutes les variables PATH. C'est assez simple.
Je voudrais certainement un moyen de lancer wt
(Windows Terminal) au lieu d'aller directement à un pwsh "nu", mais cela ne semble pas possible. Mais c'est un petit reproche. Meh. :-)
Je reçois toujours une erreur lorsque je veux démarrer WT (0.9.433.0) en tant qu'administrateur:
Se produit sur plusieurs machines, avec les derniers WT et Windows (v10.0.18363.657).
Je ne comprends pas très bien pourquoi ce problème est clos et quelle est la solution de contournement.
En fait, cela n'a jamais fonctionné, le dernier commentaire que j'ai eu était, c'est un problème de Windows et ils le soulèveront avec l'équipe.
ils le soulèveront avec l'équipe.
Je ne pense pas. C'est plutôt « vous devriez le soulever avec l'équipe».
Je suis sûr qu'ils ne pensent pas à publier Win Terminal v1 avec l'une des fonctionnalités les plus importantes cassées.
Dommage car cela rend les versions actuelles de pré-version de WT inutilisables.
Cela fera apparaître une nouvelle fenêtre PowerShell avec l'administrateur. Pas exactement ce que nous voulons, mais c'est un travail autour. Créez un nouveau profil avec la ligne de commande suivante.
"commandline": "powershell.exe -Command \"Start-Process powershell.exe -Verb RunAs\"",
Pourquoi est-ce fermé? Il doit encore y avoir une fonction d'élévation de l'onglet.
Ceci est suivi dans un tas d'autres problèmes sur ce référentiel, c'est pourquoi.
@ DHowett-MSFT Merci. Quelle question devons-nous suivre? Je ne pense pas que ce soit mentionné ci-dessus.
@musm J'ai juste ceci dans ma configuration PowerShell 6:
function GoAdmin { start-process pwsh –verb runAs }
(remplacez
pwsh
parpowershell
si vous utilisez l'ancien PowerShell)Donc, chaque fois que j'ai besoin d'installer / mettre à jour des packages via chocolatey, je tape
GoAdmin
(dans PowerShell hébergé par Windows Terminal), ce qui m'amène à une fenêtre PowerShell d'administration distincte. Là, je peux exécuter toutes les commandes d'administration chocolatées. Ensuite, je ferme simplement la fenêtre d'administration et tapezrefreshenv
dans ma session Windows Terminal pour mettre à jour toutes les variables PATH. C'est assez simple.Je voudrais certainement un moyen de lancer
wt
(Windows Terminal) au lieu d'aller directement à un pwsh "nu", mais cela ne semble pas possible. Mais c'est un petit reproche. Meh. :-)
Dans Windows, où se trouve ce fichier de configuration?
@ mian-muhammad Je pense qu'il parlait du profil PowerShell. https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_profiles
J'ai trouvé une solution de contournement. Vous pouvez utiliser chocolatey pour installer un package appelé sudo (choco install -y sudo). Ensuite, vous pouvez utiliser sudo comme prévu.
Il semble que je puisse actuellement ouvrir le terminal en tant qu'administrateur; au moins ça marche sur ma machine. Ce serait encore mieux si nous pouvions créer un onglet en tant qu'administrateur comme ConEmu (qui est discuté dans # 632), mais il n'y a actuellement aucun intérêt à rouvrir ce problème.
Autres demandes de fonctionnalités en attente associées:
sudo
qui pourrait intéresser @ Pens99J'espère que cela aidera tout le monde à suivre ce fil.
@ DHowett-MSFT Quel problème devrions-nous suivre et commencer pour résoudre ce problème? Le seul autre problème référencé que je peux voir est le # 1538 qui est également fermé.
Je suis sûr que la position de Microsoft ne peut pas être que tout le monde devrait avoir des droits administratifs sur son utilisateur standard au lieu d'utiliser un compte administrateur distinct s'il souhaite utiliser des applications Windows modernes. Ceci est après tout contraire aux pratiques de sécurité standard.
@danstur Le mieux que je puisse offrir pour ce problème est le # 4217. Nous recherchons un correctif avec l'équipe propriétaire du déploiement de l'application. Le problème est que les applications sont _installées_ globalement, mais uniquement enregistrées par utilisateur. Il s'agissait d'une infrastructure conçue pour Windows 8 qui n'a évolué que très lentement pour prendre en charge même l'exécution d'applications Win32 standard telles que Terminal. # 1386 nous permet de sortir du package et de le distribuer comme quelque chose de plus traditionnel pour les entreprises clientes et les personnes qui rencontrent des problèmes avec le moteur de déploiement de packages.
@ DHowett-MSFT Merci pour les problèmes, heureux d'apprendre qu'ils sont suivis.
Pour clarifier: si j'installe l'application via les options mentionnées dans # 1386, pourrais-je alors l'exécuter en tant qu'utilisateur différent ou est-ce que cela ne fonctionnera toujours pas? Cela ne me dérangerait pas d'avoir à enregistrer l'application (cela signifie-t-il exécuter Add-AppxPackage
?) Avec les autres utilisateurs.
@ DHowett-MSFT Dustin Howett FTE Merci pour les problèmes, heureux d'apprendre qu'ils sont suivis.
Pour clarifier: si j'installe l'application via les options mentionnées dans # 1386, pourrais-je alors l'exécuter en tant qu'utilisateur différent ou est-ce que cela ne fonctionnera toujours pas? Cela ne me dérangerait pas d'avoir à enregistrer l'application (cela signifie-t-il exécuter
Add-AppxPackage
?) Avec les autres utilisateurs.
Cela devrait bien fonctionner. Vous devrez ajouter-AppxPackage en tant que ces utilisateurs, oui. :sourire:
Heureux de voir son clouage.
Ce problème doit être résolu, car maintenant dans tout environnement Windows configuré avec des comptes administrateur et utilisateur séparés (comme il se doit), le terminal n'est pas utilisable pour les administrateurs s'il est installé à partir du MS Store (recommandé)
Heureux de voir son clouage.
Ce problème doit être résolu, car maintenant dans tout environnement Windows configuré avec des comptes administrateur et utilisateur séparés (comme il se doit), le terminal n'est pas utilisable pour les administrateurs s'il est installé à partir du MS Store (recommandé)
Une solution de contournement qui a fonctionné pour moi était de se connecter en tant qu'utilisateur administrateur sur la machine locale et de «réinstaller» le terminal à partir du magasin. Ensuite, une fois connecté en tant qu'utilisateur standard, je pourrais exécuter le terminal en tant qu'administrateur
Oui, le problème semble être que Store enregistre l'application uniquement pour l'utilisateur actuel. C'est bien pour la plupart des applications (en fait c'est comme ça que la plupart des applications devraient être installées de toute façon) mais ce n'est pas bon pour les applications administratives comme les terminaux.
Hey future me: le problème d'enregistrement du magasin est suivi en interne avec MSFT: 20356613 et discuté en détail dans # 4217
Bonjour,
J'ai également rencontré ce problème sur mon compte régulier. La solution consiste à réinstaller l'application Terminal tout en étant connecté à un compte administrateur. Ensuite, vous pourrez exécuter en tant qu'administrateur sur votre compte régulier.
Pareil ici. le problème semble ne pas être résolu
J'ai encore une autre solution de contournement moins que parfaite qui ne permet pas d'ouvrir un _tab_ en tant qu'administrateur, mais cela permet d'ouvrir une fenêtre PowerShell en tant qu'administrateur à partir d'un onglet existant (non-admin):
https://github.com/jt-github/elevate
Cela fonctionne de la même manière que l'ajout du profil comme suggéré par @CraigHead ci-dessus:
"commandline": "powershell.exe -Command \"Start-Process powershell.exe -Verb RunAs\"",
Sauf que ma version est exécutée en exécutant la commande elevate
.
@ jt-github C'est comme sudo.
Voir ici: https://github.com/pldmgg/Sudo
Exactement, seul sudo
est bien plus cool que le mien mais le mien est tellement simple qu'il est facile à comprendre et à utiliser.
Comme beaucoup d'entre vous, j'ai également rencontré ce problème, j'ai donc créé les fonctions suivantes afin d'ouvrir un shell d'administration à partir de powershell.exe, pwsh.exe ou terminal Microsoft
# Function Test-IsAdmin
function Test-IsAdmin {
<#
.Synopsis
Tests if the user is an administrator
.Description
Returns true if a user is an administrator, false if the user is not an administrator
.Example
Test-IsAdmin
#>
$identity = [Security.Principal.WindowsIdentity]::GetCurrent()
$principal = New-Object Security.Principal.WindowsPrincipal $identity
$principal.IsInRole([Security.Principal.WindowsBuiltinRole]::Administrator)
}
# Function New-AdminShell
function New-AdminShell {
<#
.Synopsis
Starts an Elevated PowerShell Console.
.Description
Opens a new PowerShell Console Elevated as Administrator. If the user is already running an elevated
administrator shell, a message is displayed in the console session.
.Example
New-AdminShell
#>
$Process = Get-Process | Where-Object { $_.Id -eq "$($PID)" }
if (Test-IsAdmin = $True) {
Write-Warning -Message "Admin Shell already running!"
}
else {
if ($Process.Name -eq "powershell") {
Start-Process -FilePath "powershell.exe" -Verb runas -PassThru
}
if ($Process.Name -eq "pwsh") {
Start-Process -FilePath "pwsh.exe" -Verb runas -PassThru
}
}
}
# Function New-AdminTerminal
function New-AdminTerminal {
<#
.Synopsis
Starts an Elevated Microsoft Terminal.
.Description
Opens a new Microsoft Terminal Elevated as Administrator. If the user is already running an elevated
Microsoft Terminal, a message is displayed in the console session.
.Example
New-AdminShell
#>
if (Test-IsAdmin = $True) {
Write-Warning -Message "Admin Shell already running!"
}
else {
Start-Process "wt.exe" -ArgumentList "-p pwsh" -Verb runas -PassThru
}
}
J'espère que quelqu'un les trouvera utiles. Je les ai ajoutés à mes profils PowerShell afin qu'ils soient toujours disponibles.
Bonjour,
J'ai également rencontré ce problème sur mon compte régulier. La solution consiste à réinstaller l'application Terminal tout en étant connecté à un compte administrateur. Ensuite, vous pourrez exécuter en tant qu'administrateur sur votre compte régulier.
Cela a fonctionné pour moi aussi, c'est super ennuyeux mais sur un réseau d'entreprise c'est à peu près la seule façon qui a fonctionné pour moi. Si vous n'avez pas d'administrateur local, cette application est à peu près un buste pour les particuliers élevés sur un réseau d'entreprise.
Heureux de voir son clouage.
Ce problème doit être résolu, car maintenant dans tout environnement Windows configuré avec des comptes administrateur et utilisateur séparés (comme il se doit), le terminal n'est pas utilisable pour les administrateurs s'il est installé à partir du MS Store (recommandé)Une solution de contournement qui a fonctionné pour moi était de se connecter en tant qu'utilisateur administrateur sur la machine locale et de «réinstaller» le terminal à partir du magasin. Ensuite, une fois connecté en tant qu'utilisateur standard, je pourrais exécuter le terminal en tant qu'administrateur
Non, cela n'a pas fonctionné pour moi :(
Alors je l'ai compris.
Vous devez l'avoir installé à la fois dans le compte administrateur et dans le compte principal, mais le compte administratif doit également être connecté pour que cela fonctionne. Par cela, je veux dire que l'ordinateur doit être connecté à l'administrateur, puis changer d'utilisateur (ne pas se déconnecter) et se connecter à l'autre compte. Cela permettra à l'application de s'exécuter en mode administrateur.
J'imagine que les applications de magasin installées sur les deux comptes ne peuvent pas être exécutées en tant qu'administrateur à moins qu'un compte administrateur ne soit connecté.
Alors je l'ai compris.
Vous devez l'avoir installé à la fois dans le compte administrateur et dans le compte principal, mais le compte administratif doit également être connecté pour que cela fonctionne. Par cela, je veux dire que l'ordinateur doit être connecté à l'administrateur, puis changer d'utilisateur (ne pas se déconnecter) et se connecter à l'autre compte. Cela permettra à l'application de s'exécuter en mode administrateur.
J'imagine que les applications de magasin installées sur les deux comptes ne peuvent pas être exécutées en tant qu'administrateur à moins qu'un compte administrateur ne soit connecté.
Cela fonctionne pour moi. 👍
Commentaire le plus utile
Aussi comme suggestion au lieu d'exécuter le terminal ENTIER en tant qu'administrateur à partir de la barre des tâches, peut-être avoir des alternatives?
Par exemple:
Lors de l'ouverture d'un nouvel onglet, l'utilisateur ou une interface utilisateur lui demande-t-il s'il souhaite ouvrir la nouvelle instance en tant qu'administrateur?
Ou faites simplement un clic droit sur le terminal pour ouvrir un onglet d'administration à partir du même répertoire. (Ce serait très utile pour powershell-core car il n'a pas de fonctionnalités intéressantes comme sudo)