1 votos

Entrada de menú de contexto Script de PowerShell para ejecutar el Script como administrador sin salir

Estoy muy cerca de este. Básicamente, quiero crear un menú contextual de la entrada .ps1 archivos que ejecutar la secuencia de comandos como administrador, sin salir de la ventana de la consola después de correr. Así puedo crear la clave:

Computer\HKEY_CURRENT_USER\SOFTWARE\Classes\SystemFileAssociations\.ps1\shell\RunasAdministratorNoExit

con los valores:

enter image description here

y todo eso está bien y dandy para crear la entrada. Sin embargo, con el fin de realmente hacer que hacer algo, tengo que añadir otra tecla, la tecla de comando:

Computer\HKEY_CURRENT_USER\SOFTWARE\Classes\SystemFileAssociations\.ps1\shell\RunasAdministratorNoExit\command

Y en esta clave, tengo algo que casi funciona, pero no del todo. Por lo que el valor por defecto de la anterior tecla de comando es:

Powershell.exe -WindowStyle Hidden -Command "& {Start-Process PowerShell.exe -Verb RunAs -ArgumentList '-NoLogo -NoExit -File """%1"""'}"

Pero hay un gran problema con este método; cuando el script finaliza, me devuelve a la "C:\Windows\system32" el directorio en lugar de en el directorio de la secuencia de comandos de sí mismo. Ver mi imagen siguiente aclaración:

enter image description here Además, al utilizar el menú contextual de la entrada que he creado para ejecutar secuencias de comandos que contiene las líneas tales como:

$settingsfiles = Get-ChildItem -Recurse $scanPath

En lugar de ello recursing a través de todas las carpetas locales a la secuencia de comandos me corrió, intenta buscar recursivamente a través de todas las carpetas en "C:\Windows\system32!" Claramente este es el indeseable. Así que aquí está mi pregunta:

¿Qué necesito para cambiar el valor predeterminado de la tecla de comando con el fin de obtener la secuencia de comandos de PowerShell para actuar como si se ejecuta desde el mismo directorio que el script?

1voto

postanote Puntos 159

Trate de aprovechar la... Set-Location o Push-Ubicación cmdlet, o la scritpblock ...

División de la Ruta $guión:MyInvocation.MyCommand.Camino

... en el último comando.

O simplemente crear un nuevo acceso directo, configurado de la manera que usted desea y utilizar a la Derecha-haga Clic en menú SendTo, no reg hacking necesario.

Ver este hilo mostrando la SendTo enfoque de PowerShell.

PowerShell Límite De Teclas Aceptado Por Una Pausa De Secuencia De Comandos

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: