Estou muito perto disso. Basicamente, eu quero criar uma entrada de menu de contexto para arquivos .ps1 que executam o script como administrador sem sair da janela do console após a execução. Então eu posso criar a chave:
Computer\HKEY_CURRENT_USER\SOFTWARE\Classes\SystemFileAssociations\.ps1\shell\RunasAdministratorNoExit
com os valores:
eestátudobemeeleganteparacriaraentrada.Noentanto,pararealmentefazerfazeralgo,precisoadicionaroutrachave,achavedecomando:
Computer\HKEY_CURRENT_USER\SOFTWARE\Classes\SystemFileAssociations\.ps1\shell\RunasAdministratorNoExit\command
Enessachave,tenhoalgoquequasefunciona,masnãocompletamente.Portanto,ovalorpadrãodachavedecomandoacimaé:
Powershell.exe-WindowStyleHidden-Command"& {Start-Process PowerShell.exe -Verb RunAs -ArgumentList '-NoLogo -NoExit -File """%1"""'}"
Mas há um grande problema com esse método; Quando o script termina, ele me retorna ao diretório "C: \ Windows \ system32" em vez do diretório do próprio script. Veja minha imagem abaixo para esclarecimentos:
Alémdisso,quandoeuusoaentradadomenudecontextoquecrieiparaexecutarscriptscontendolinhascomo:
$settingsfiles=Get-ChildItem-Recurse$scanPath
Emvezderecorreratodasaspastaslocaisparaoscriptqueacabeideexecutar,eletentarecorreratodasaspastasem"C: \ Windows \ system32!" Claramente isso é indesejado. Então aqui está a minha pergunta:
O que preciso alterar no valor padrão da chave de comando para que o script do PowerShell funcione como se fosse executado no mesmo diretório do script?