Este PS1 File
( test.ps1
), enquanto executado, executará os comandos Pushd $Home; bcdedit /enum bootmgr; pause
como administrador por PWSH.exe
conta própria.
# test.ps1
$AL = "-NoProfile -WindowStyle Maximized -ExecutionPolicy Bypass",
"-Command", "Pushd $Home; bcdedit /enum bootmgr; pause"
Start -Verb RunAs -FilePath pwsh.exe -ArgumentList $AL
Qual o formato de escrita, se eu executar ( test.ps1
), será aberto no Windows Terminal Elevado/As Admin?
Tentei:
# test.ps1
$AL = "-M -p 'PowerShell'",
"pwsh.exe -ExecutionPolicy Bypass -Command `"Pushd $Home; bcdedit /enum bootmgr; pause`""
Start -Verb RunAs -FilePath wt.exe -ArgumentList $AL
dando os erros:
[error 2147942402 (0x80070002) when launching `" pause"']
[error 2147942402 (0x80070002) when launching `" bcdedit /enum bootmgr"']
Também tentei outros formatos, mas o erro ainda persiste.
Só funciona se um comando:
# test.ps1
$AL = "-M -p 'PowerShell'",
"pwsh.exe -ExecutionPolicy Bypass -Command `"bcdedit /enum bootmgr`""
Start -Verb RunAs -FilePath wt.exe -ArgumentList $AL
Os sem escape
;
nawt.exe
linha de comando servem para separar vários comandos do Terminal do Windows .Portanto,
;
os caracteres a serem passados para um executável de destino devem ser escapados , ou seja, as\;
, o que infelizmente é sempre necessário - mesmo para;
caracteres dentro (incorporados)"..."
.Portanto:
Observação:
wt.exe
a-d
opção de passar um diretório de inicialização.-ArgumentList
parâmetro, o que geralmente é preferível para solucionar um bug de longa data que não será corrigido - veja esta resposta do SO .