Obtención de privilegios de administrador en PowerShell

27

Solo tengo una cuenta en mi máquina con Windows Vista, y ese usuario tiene privilegios administrativos. Sin embargo, cuando trato de ejecutar un comando dentro de PowerShell para matar un determinado proceso, recibo el mensaje "Acceso denegado". ¿Cómo me convierto en administrador?

Brian
fuente

Respuestas:

14

La forma más fácil de hacer esto es iniciar Powershell con tokens de administración. Para hacer esto, haga clic derecho en Powershell (o un acceso directo) y haga clic en "ejecutar como administrador". Alternativamente, puede usar elevate.cmd .

Knox
fuente
25

La forma Powershell v2, según Microsoft , es hacer clic derecho en el acceso directo y elegir Ejecutar como administrador .

Y para elevar dentro de una ventana de Powershell:

start-process powershell verb runAs

Cuál de un archivo por lotes cmd.exe, acceso directo o línea de ejecución se vería algo (repetidamente) así:

powershell "start-process powershell -verb runas"
Nathan Hartley
fuente
10

Esto abre una nueva instancia de PowerShell:

function Run-Elevated ($scriptblock)
{
  # TODO: make -NoExit a parameter
  # TODO: just open PS (no -Command parameter) if $scriptblock -eq ''
  $sh = new-object -com 'Shell.Application'
  $sh.ShellExecute('powershell', "-NoExit -Command $scriptblock", '', 'runas')
}

Espero que haya problemas con esto, en particular, no obtendrá la salida de su bloque de script en el script de llamada. Por otro lado, estará allí en la nueva instancia de PS para que puedas hackearla allí.

usuario2278
fuente
5

Si desea siempre ejecutar PowerShell con privilegios de administrador, puede hacer clic en el acceso directo de PowerShell, a continuación, haga clic en el botón "Avanzado ..." en la pestaña "Acceso directo", a continuación, seleccione "Ejecutar como Administrador".

Ryan Fisher
fuente
0

La manera fácil...

¡Así es cómo configurar un comando fácil para obtener privilegios de administrador en cualquier momento, desde cualquier sesión de PowerShell!

Paso 1: abra su perfil de PowerShell. (Permita que el bloc de notas cree el archivo si falta).

notepad "$profile"

Paso 2: pegue el siguiente código en cualquier parte de ese archivo.

function GoAdmin { start-process powershell verb runAs }

Paso 3: reinicie PowerShell. El comando ahora está permanentemente disponible.

Paso 4: cada vez que quiera pasar a administrador, simplemente escriba GoAdmin(y no se preocupe por escribir el caso correcto; las funciones de PS no distinguen entre mayúsculas y minúsculas). Por supuesto, puede nombrar la función como algo diferente Elevateo lo que sea, pero no quería ningún riesgo de conflictos, así que lo llamé una frase de dos palabras sin guiones, para garantizar que nunca entre en conflicto con las características de PowerShell.

Tenga en cuenta que la ventana del administrador se abre en un shell separado. Puede cerrar el caparazón original o mantenerlo abierto. Si su trabajo de administrador hace algo "grande", como agregar / modificar variables de entorno, entonces su shell de usuario (no administrador) puede simplemente escribir refreshenvpara recargar su entorno y obtener los cambios.

Básicamente, solo GoAdminhaga las tareas de administración, como instalar paquetes (¡con https://chocolatey.org/, por supuesto!), Y luego cierre la ventana de administración y ejecute refreshenven su shell de usuario. Voila

Mitch McMabers
fuente