Tente colocar o comando em carrapatos simples e mover as aspas duplas para a frente do comando real. Isso é o que eu faço no meu ambiente.
Start-Process Powershell -Verb Runas -ArgumentList '-command "&{cd $here; $SomeCode}"'
estou fazendo um script como o sudo, a idéia é que a função sudo irá executar um scriptblock em elevação. Estou tendo problemas com as variáveis strings, que eu passo nesse scriptblock. É como as duplas citações desaparecem. O que há de errado com a minha abordagem? Aqui está o código.
function sud([ScriptBlock]$SomeCode){
$here = Get-Location;
Start-Process Powershell -Verb Runas -ArgumentList "-command &{cd $here; $SomeCode}"
}
e eu quero executar comandos como este:
$var ="Path"
$newpath = $env:path + ";c:\somedir"
$target = "Machine"
sud -somecode { [Environment]::SetEnvironmentVariable($var, $newpath, $target)}
para fins de teste, pode-se adicionar o parâmetro -noexit à lista de argumentos.
Start-Process Powershell -Verb Runas -ArgumentList "-noexit","-command &{cd $here; $SomeCode}"
Tente colocar o comando em carrapatos simples e mover as aspas duplas para a frente do comando real. Isso é o que eu faço no meu ambiente.
Start-Process Powershell -Verb Runas -ArgumentList '-command "&{cd $here; $SomeCode}"'
Tags sudo powershell strings