problema com strings no script powershell sudo

3

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}" 
    
por mjsr 03.08.2010 / 22:43

1 resposta

2

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}"'
    
por 10.07.2012 / 23:50