Búsqueda de sitios web

Ejecute PowerShell como otro usuario [4 formas]


Usando el comando runas

El comando runas en PowerShell inicia programas usando credenciales diferentes a las del usuario actual. Proporciona a los usuarios privilegios limitados para ejecutar comandos o acceder a recursos disponibles sólo para cuentas más privilegiadas.

La sintaxis del comando es runas /user:UserName ProgramName donde UserName es una cuenta con permiso y ProgramName es el nombre de la aplicación, script o documento. , etc., que pueden abrirse o ejecutarse con esta cuenta.

Para ejecutar PowerShell como otro usuario usando el comando runas, debemos cumplir con los requisitos a continuación.

  • Abra PowerShell como Administrador.
  • Luego, ejecute el comando runas.

Abra PowerShell como Administrador

Para abrir PowerShell como Administrador:

  • Presione la tecla de Windows + R para abrir la ventana Ejecutar.
  • Escriba powershell y presione Ctrl + Shift + Enter para abrir PowerShell como administrador.

Ejecute el comando runas

En la ventana de PowerShell, use el comando runas para abrir PowerShell.

ejecutar como con otro usuario:

runas /user:UserName "powershell.exe"

Reemplace UserName con el nombre de la cuenta deseada. El comando anterior le pedirá al usuario que ingrese la contraseña de la cuenta de usuario. Después de ingresar la contraseña correcta, se abrirá una nueva ventana de PowerShell, que se ejecutará con la cuenta de usuario especificada.

Después de abrir con éxito la ventana de PowerShell, use el comando whoami en la ventana de PowerShell para verificar si la ventana se está ejecutando con la cuenta de usuario especificada.

whoami:

whoami

Uso del cmdlet Start-Process con el parámetro Credential

Start-Process es un cmdlet que inicia uno o más procesos en la computadora local. Por el contrario, el parámetro Credencial permite al usuario proporcionar credenciales alternativas a los procesos que requieren autenticación.

Solución basada en UI

La solución es proporcionar las credenciales a través de un cuadro de diálogo de la interfaz de usuario. Discutimos la apertura de PowerShell como Administrador en la explicación del uso del comando runas. En esta sección, debemos cumplir con los requisitos que se detallan a continuación.

  • Ejecute el cmdlet Start-Process.
  • Cierre la ventana principal de PowerShell.

Ejecute el cmdlet Start-Process

En la ventana de PowerShell, use el comando Start-Process para abrir PowerShell.

Cmdlet de inicio del proceso:

Start-Process powershell.exe -Credential ''

El comando anterior le pedirá al usuario que ingrese el nombre de usuario y la contraseña de la cuenta de usuario.

Después de ingresar la contraseña correcta, se abrirá una nueva ventana de PowerShell, que se ejecutará con la cuenta de usuario especificada.

Cerrar la ventana principal de PowerShell

De forma predeterminada, el sistema operativo Windows no nos permite escribir nada en una ventana de PowerShell recién abierta hasta que cerramos la ventana principal de PowerShell. Así que cierre la ventana principal y use el comando whoami para el proceso de verificación.

Solución basada en scripts

La solución es proporcionar a la línea de comando las credenciales de la cuenta de usuario mediante variables de script. Para hacer esto, debemos cumplir con los requisitos que se detallan a continuación.

  • Declarar el nombre de usuario y contraseña.
  • Genere el objeto credencial.
  • Ejecute el cmdlet Start-Process.

Declarar el nombre de usuario y contraseña

En la ventana de PowerShell, declare el nombre de usuario y la contraseña mediante los siguientes comandos.

Declarar nombre de usuario y contraseña:

$username = 'UserName'
$password = 'Password'
$securePassword = ConvertTo-SecureString $password -AsPlainText -Force

Reemplace el nombre de usuario y la contraseña por los de la cuenta del usuario.

Usamos el cmdlet ConvertTo-SecureString para convertir la contraseña en una securePassword. El cmdlet ConvertTo-SecureString (herramienta de línea de comandos) convierte una cadena o una contraseña de texto sin formato en una cadena segura, es decir, una representación cifrada para almacenar información confidencial, como contraseñas u otros datos confidenciales.

Generar el objeto credencial

Genere el objeto credential usando el siguiente comando:

Genere el objeto de credencial:

$credential = New-Object System.Management.Automation.PSCredential $username, $securePassword

Usamos el cmdlet New-Object para crear una nueva instancia credential de tipo System.Management.Automation.PSCredential con el nombre de usuario y contraseñasegura como argumentos. A menudo se utiliza en scripts y otros procesos automatizados para crear objetos de un tipo específico y manipularlos según sea necesario.

Ejecute el cmdlet Start-Process

Para iniciar una nueva instancia de PowerShell con un usuario diferente, use el cmdlet Start-Process como:

Ejecute el cmdlet Inicio-Proceso:

Start-Process powershell.exe -Credential $credential

Usando el cmdlet Start-Process, iniciamos una nueva instancia de PowerShell donde el parámetro Credential se proporciona con el objeto credential generado.

Se abrirá la nueva ventana de PowerShell. A continuación, cierre la ventana anterior y use el comando whoami en la nueva ventana para verificar si la ventana de PowerShell se está ejecutando con el nuevo usuario.

Artículos relacionados