Terminal: Ejecutar como administrador

Creado en 8 jul. 2019  ·  42Comentarios  ·  Fuente: microsoft/terminal

2019-07-08_14h29_22
2019-07-08_14h29_54

Parece que hay un problema al ejecutar el terminal "Como administrador"

Error: Windows no puede encontrar "C: \ Archivos de programa \ WindowsApps \ Microsoft.WindowsTerminal_0.2.1831.0_x64__8wekyb3d8bbwe \ WindowsTerminal.exe" Asegúrese de haber escrito el nombre correctamente y vuelva a intentarlo

Issue-Bug Needs-Tag-Fix Product-Terminal Resolution-External

Comentario más útil

También como sugerencia en lugar de ejecutar TODO el terminal como administrador desde la barra de tareas, ¿quizás tenga alternativas?

Por ejemplo:

Al abrir una nueva pestaña, se le pregunta al usuario o tiene alguna interfaz de usuario preguntando si desea abrir la nueva instancia como administrador.
suggesstion

O simplemente haga clic derecho en el terminal para abrir una pestaña de administración desde el mismo directorio exacto. (Eso sería muy útil para powershell-core ya que no tiene una buena funcionalidad como sudo)

Todos 42 comentarios

@ DHowett-MSFT Podría haber jurado que teníamos un problema duplicado en algún lugar para esto, pero no puedo encontrarlo ahora. ¿Recuerdas qué causa esto?

Ahh, lo siento si es un duplicado.

no hay razón, inicie la aplicación bien, pero haga clic con el botón derecho y comience cuando el administrador falle, Windows UAC solicita la contraseña de administrador dos veces y luego aparece el error.

También estoy experimentando este problema actualmente. Busqué terminal en la barra de tareas
win-terminal-run-as-admin-issue-1

Luego se me pidió que ingresara mis credenciales de administrador dos veces. Un mensaje de administración tras otro. Luego, cuando terminé de ingresar mis credenciales por segunda vez, apareció este mensaje de error:

win-terminal-run-as-admin-issue

Acabo de instalar la terminal hoy.

Versión de terminal:
Versión: 0.2.1831.0

Versión del sistema operativo:
Windows 10 Pro
10.0.18362 Compilación 18362

También como sugerencia en lugar de ejecutar TODO el terminal como administrador desde la barra de tareas, ¿quizás tenga alternativas?

Por ejemplo:

Al abrir una nueva pestaña, se le pregunta al usuario o tiene alguna interfaz de usuario preguntando si desea abrir la nueva instancia como administrador.
suggesstion

O simplemente haga clic derecho en el terminal para abrir una pestaña de administración desde el mismo directorio exacto. (Eso sería muy útil para powershell-core ya que no tiene una buena funcionalidad como sudo)

La compatibilidad con Windows Terminal que se ejecuta en modo de administrador puede no ser un buen comportamiento, lo que significa que todos los shells en otras pestañas abiertas desde Ctrl + T pueden tener privilegios de administrador. Hasta donde yo sé, Windows Terminal no implementa ningún código del Administrador al usuario restringido. De hecho, lo que le falta a Windows es el tipo de implementación de privilegios que no requiere interacción con la interfaz de usuario, como sudo.

Pero implementar sudo también puede ser engorroso. El flujo del verbo runas es aproximadamente el siguiente (si algo está mal, por favor recuérdamelo):

  1. AppInfo va y habla con la autoridad de seguridad local para obtener el token elevado del usuario que inició sesión en la sesión 1.
  2. AppInfo carga una estructura STARTUPINFOEX (nueva en Vista) y llama a la nueva API de Vista InitializeProcThreadAttributeList () con espacio para un atributo.
  3. Se llama a OpenProcess () para obtener un control del proceso que inició la llamada RPC.
  4. UpdateProcThreadAttribute () se llama con PROC_THREAD_ATTRIBUTE_PARENT_PROCESS y usa el identificador recuperado en el paso 3.
  5. CreateProcessAsUser () se llama con EXTENDED_STARTUPINFO_PRESENT y los resultados de los pasos 1 y 4.
  6. Se llama a DeleteProcThreadAttributeList ().
  7. Se recopilan los resultados y se limpian los mangos.

Podemos sacar una conclusión simple. De hecho, runas es en realidad un proceso normal que inicia una solicitud RPC a un proceso con muchos privilegios. El proceso de alto privilegio (servicio AppInfo) crea un proceso de administrador y establece su proceso principal como un proceso normal.

Actualmente, AppInfo no admite la configuración de un directorio de trabajo, entrada y salida (aunque llame a CreateProcessAsUser) al iniciar el proceso de administrador. Este es un problema que debe resolverse para permitir que el soporte de sudo se ejecute en la Terminal de Windows. (ShellExecuteEx SEE_MASK_NO_CONSOLE no funciona)

SHELLEXECUTEINFOW :

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;

Ver: https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-updateprocthreadattribute

| Valor | Significado |
| --- | --- |
| PROC_THREAD_ATTRIBUTE_PARENT_PROCESS | El parámetro lpValue es un puntero a un identificador de un proceso para usar en lugar del proceso de llamada como padre del proceso que se está creando. El proceso a utilizar debe tener el derecho de acceso PROCESS_CREATE_PROCESS.

Los atributos heredados del proceso especificado incluyen identificadores, el mapa de dispositivos, la afinidad del procesador, la prioridad, las cuotas, el token de proceso y el objeto de trabajo. (Tenga en cuenta que algunos atributos, como el puerto de depuración, vendrán del proceso de creación, no del proceso especificado por este identificador).

Este es definitivamente un problema de la plataforma Windows. Me lo estoy asignando a mí mismo para hacer un seguimiento con el equipo que lo posee y cerrar esto. Gracias.

Me gusta la propuesta de @ YMba9g8j9CJp0wLoQf5y de autorizar una pestaña con privilegios escalados. Soy de ConEmu, donde podemos crear una pestaña con o sin privilegios de administrador. Al crear una pestaña de administración, se me solicitará UAC (para siempre).

¿No es este un comportamiento normal de las aplicaciones de la tienda de Windows? Esto parece la aplicación Vista previa lanzada recientemente.
Pero necesito una forma de ejecutar proyectiles elevados. No parece posible hacer eso hoy (abrir pestañas como administrador).

Oye, no estamos seguros de que podamos hacer algo al respecto. ¿Le importaría enviar comentarios en la categoría "Plataforma para desarrolladores> Implementación de aplicaciones"? Eso ayudará a que se dirija al equipo correcto y recopila información de diagnóstico muy útil.

Vinculación: esto también es # 1538

Aunque estoy de acuerdo con la decisión. Hace que sea bastante doloroso usar chocolatey sin que se ejecute explícitamente en modo de administrador. (

@musm Acabo de tener esto en mi configuración de PowerShell 6:

function GoAdmin { start-process pwsh –verb runAs }

(reemplace pwsh con powershell si está usando el antiguo PowerShell)

Entonces, siempre que necesito instalar / actualizar paquetes a través de chocolatey, escribo GoAdmin (en el PowerShell alojado de Windows Terminal), lo que me lleva a una ventana de PowerShell de administrador separada. Allí puedo ejecutar todos los comandos de administración de chocolate. Luego, simplemente cierro la ventana de administración y escribo refreshenv en mi sesión de Windows Terminal para actualizar todas las variables PATH. Es bastante sencillo.

Definitivamente me gustaría una manera de lanzar wt (Terminal de Windows) en lugar de ir directamente a un pwsh "simple", pero eso no parece posible. Pero es una queja menor. Meh. :-)

Sigo recibiendo un error cuando quiero iniciar WT (0.9.433.0) como administrador:

image

Ocurre en varias máquinas, con la última versión de WT y Windows (v10.0.18363.657).
No entiendo muy bien por qué se ha cerrado este problema y cuál es la solución.

En realidad, nunca funcionó, el último comentario que recibí fue, es un problema de Windows y lo plantearán al equipo.

lo plantearán con el equipo.

No lo creo. Es más como “deberías subir con el equipo”.

Estoy seguro de que no están pensando en lanzar Win Terminal v1 con una de las funciones más importantes rota.
Lástima, ya que inutiliza las versiones preliminares actuales de WT.

Esto abrirá una nueva ventana de PowerShell con el administrador. No es exactamente lo que queremos, pero es una solución. Cree un nuevo perfil con la siguiente línea de comando.

"commandline": "powershell.exe -Command \"Start-Process powershell.exe -Verb RunAs\"",

¿Por qué esta cerrado? Todavía es necesario que haya una función de pestaña elevada.

Esto se está rastreando en un montón de otros problemas en este repositorio, por eso.

@ DHowett-MSFT Gracias. ¿Qué tema debemos seguir? No creo que se haya mencionado anteriormente.

@musm Acabo de tener esto en mi configuración de PowerShell 6:

function GoAdmin { start-process pwsh –verb runAs }

(reemplace pwsh con powershell si está usando el antiguo PowerShell)

Entonces, siempre que necesito instalar / actualizar paquetes a través de chocolatey, escribo GoAdmin (en el PowerShell alojado de Windows Terminal), lo que me lleva a una ventana de PowerShell de administrador separada. Allí puedo ejecutar todos los comandos de administración de chocolate. Luego, simplemente cierro la ventana de administración y escribo refreshenv en mi sesión de Windows Terminal para actualizar todas las variables PATH. Es bastante sencillo.

Definitivamente me gustaría una manera de lanzar wt (Terminal de Windows) en lugar de ir directamente a un pwsh "simple", pero eso no parece posible. Pero es una queja menor. Meh. :-)

En Windows, ¿dónde se encuentra este archivo de configuración?

Encontré una solución. Puede usar chocolatey para instalar un paquete llamado sudo (choco install -y sudo). Entonces puedes usar sudo como se esperaba.

Parece que actualmente puedo abrir la terminal como administrador; al menos funciona en mi máquina. Sería incluso mejor si pudiéramos crear una pestaña como administrador como ConEmu (que se analiza en el n. ° 632), pero actualmente no tiene sentido volver a abrir este problema.

Otras solicitudes de funciones pendientes relacionadas:

  • # 146 sudo que @ Pens99 podría estar interesado
  • # 576 jumplist de la barra de tareas; Considero esto como una sustitución del # 632 debido a las implicaciones de seguridad (que entiendo perfectamente que proviene de la industria de la seguridad), especialmente cuando se combina con el # 3246.

Espero que esto ayude a todos los que siguen este hilo.

@ DHowett-MSFT ¿Qué problema debemos seguir y marcar para resolverlo? El único otro problema mencionado que puedo ver es el # 1538, que también está cerrado.

Estoy seguro de que la postura de Microsoft no puede ser que todo el mundo deba tener derechos administrativos sobre su usuario estándar en lugar de utilizar una cuenta de administrador separada si quieren utilizar aplicaciones modernas de Windows. Después de todo, esto es contrario a las prácticas de seguridad estándar.

@danstur Lo mejor que puedo ofrecer para esa preocupación es el # 4217. Estamos buscando una solución con el equipo propietario de la implementación de la aplicación. El problema es que las aplicaciones se _instalan_ globalmente, pero solo se registran por usuario. Esta fue una infraestructura que se creó para Windows 8 que ha evolucionado muy lentamente para admitir incluso la ejecución de aplicaciones win32 estándar como Terminal. # 1386 rastrea cómo salimos del paquete y distribuimos como algo más tradicional para clientes empresariales y personas que tienen problemas con el motor de implementación de paquetes.

@ DHowett-MSFT Gracias por los problemas, me alegra saber que se está rastreando.

Para aclarar: si instalo la aplicación a través de las opciones mencionadas en el n. ° 1386, ¿podré ejecutarla como un usuario diferente o aún no funcionaría? No me importaría tener que registrar la aplicación (¿eso significa ejecutar Add-AppxPackage ?) Con los otros usuarios.

@ DHowett-MSFT Dustin Howett FTE Gracias por los problemas, me alegra saber que se está rastreando.

Para aclarar: si instalo la aplicación a través de las opciones mencionadas en el n. ° 1386, ¿podré ejecutarla como un usuario diferente o aún no funcionaría? No me importaría tener que registrar la aplicación (¿eso significa ejecutar Add-AppxPackage ?) Con los otros usuarios.

Eso debería funcionar bien. Necesitará Add-AppxPackage como esos usuarios, sí. :sonreír:

Me alegra ver que está siendo tachado.

Esto debe resolverse, ya que ahora en cualquier entorno de Windows configurado con cuentas de administrador y usuario separadas (como debería ser), el terminal no se puede usar para los administradores si se instala desde MS Store (recomendado)

Me alegra ver que está siendo tachado.

Esto debe resolverse, ya que ahora en cualquier entorno de Windows configurado con cuentas de administrador y usuario separadas (como debería ser), el terminal no se puede usar para los administradores si se instala desde MS Store (recomendado)

Una solución que funcionó para mí fue iniciar sesión como usuario administrador en la máquina local e "instalar" nuevamente el terminal desde la Tienda. Luego, cuando inicie sesión como usuario estándar, podría ejecutar la terminal como administrador

Sí, el problema parece ser que Store registra la aplicación solo para el usuario actual. Eso está bien para la mayoría de las aplicaciones (en realidad, así es como la mayoría de las aplicaciones deben instalarse de todos modos) pero no es bueno para aplicaciones administrativas como terminales.

Hola, futuro yo: el problema del registro de la tienda se está rastreando internamente con MSFT: 20356613 y se analiza en detalle en el n. ° 4217

Hola,
También encontré este problema en mi cuenta habitual. La solución es instalar la aplicación Terminal nuevamente mientras está conectado a una cuenta de administrador. Entonces podrá ejecutar como administrador en su cuenta habitual.

Igual que aquí. el problema parece no estar resuelto

Tengo otra solución menos que perfecta que no permite abrir una _tab_ ejecutándose como administrador, pero sí permite abrir una ventana de PowerShell como Administrador desde una pestaña existente (no administrador):

https://github.com/jt-github/elevate

Esto funciona de la misma manera que agregar el perfil sugerido por @CraigHead arriba:
"commandline": "powershell.exe -Command \"Start-Process powershell.exe -Verb RunAs\"",

Excepto que mi versión my se ejecuta ejecutando el comando elevate .

@ jt-github Eso es como sudo.

Ver aquí: https://github.com/pldmgg/Sudo

Exactamente, solo sudo es mucho más genial que el mío, pero el mío es tan simple que es fácil de entender y usar.

Como muchos de ustedes, también me he encontrado con este problema, así que creé las siguientes funciones para abrir un shell de administración desde powershell.exe, pwsh.exe o la terminal de 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
    }
}

Espero que alguien los encuentre útiles. Los he agregado a mis perfiles de PowerShell, por lo que siempre están disponibles.

Hola,
También encontré este problema en mi cuenta habitual. La solución es instalar la aplicación Terminal nuevamente mientras está conectado a una cuenta de administrador. Entonces podrá ejecutar como administrador en su cuenta habitual.

Esto también funcionó para mí, es súper molesto pero en una red corporativa esa es prácticamente la única forma en que me ha funcionado. Si no tiene un administrador local, esta aplicación es prácticamente un fracaso para los privilegios elevados en una red corporativa.

Me alegra ver que está siendo tachado.
Esto debe resolverse, ya que ahora en cualquier entorno de Windows configurado con cuentas de administrador y usuario separadas (como debería ser), el terminal no se puede usar para los administradores si se instala desde MS Store (recomendado)

Una solución que funcionó para mí fue iniciar sesión como usuario administrador en la máquina local e "instalar" nuevamente el terminal desde la Tienda. Luego, cuando inicie sesión como usuario estándar, podría ejecutar la terminal como administrador

No, eso no funcionó para mí :(

Así que lo descubrí.

Debes tenerlo instalado TANTO en la cuenta de administrador como en la cuenta principal, pero también la cuenta administrativa debe estar registrada para que funcione. Con esto, quiero decir que la computadora debe iniciar sesión en el administrador, luego cambiar el usuario (no cerrar la sesión) e iniciar sesión en la otra cuenta. Esto permitirá que la aplicación se ejecute en modo administrador.

Supongo que las aplicaciones de la tienda instaladas en ambas cuentas no se pueden ejecutar como administrador a menos que se haya iniciado sesión con una cuenta de administrador.

Así que lo descubrí.

Debes tenerlo instalado TANTO en la cuenta de administrador como en la cuenta principal, pero también la cuenta administrativa debe estar registrada para que funcione. Con esto, quiero decir que la computadora debe iniciar sesión en el administrador, luego cambiar el usuario (no cerrar la sesión) e iniciar sesión en la otra cuenta. Esto permitirá que la aplicación se ejecute en modo administrador.

Supongo que las aplicaciones de la tienda instaladas en ambas cuentas no se pueden ejecutar como administrador a menos que se haya iniciado sesión con una cuenta de administrador.

Esto funciona para mi. 👍

¿Fue útil esta página
0 / 5 - 0 calificaciones