Я создаю сценарий вроде sudo, идея состоит в том, что функция sudo будет запускать блок сценария на повышении. У меня проблемы со строковыми переменными, которые я передаю в этом блоке сценария. Как будто двойные кавычки исчезают. Что не так с моим подходом? Вот код.
function sud([ScriptBlock]$SomeCode){
$here = Get-Location;
Start-Process Powershell -Verb Runas -ArgumentList "-command &{cd $here; $SomeCode}"
}
и я хочу запускать такие команды:
$var ="Path"
$newpath = $env:path + ";c:\somedir"
$target = "Machine"
sud -somecode { [Environment]::SetEnvironmentVariable($var, $newpath, $target)}
в целях тестирования можно добавить параметр -noexit в список аргументов ..
Start-Process Powershell -Verb Runas -ArgumentList "-noexit","-command &{cd $here; $SomeCode}"
Попробуйте заключить команду в одинарные галочки и переместить двойные кавычки в начало фактической команды. Это то, что я делаю в своем окружении.
Start-Process Powershell -Verb Runas -ArgumentList `-command "&{cd $here; $SomeCode}"`